forked from mirror/OpenTTD
(svn r18410) -Codechange: Move GetCargoSprite() to CargoSpec::GetCargoIcon().
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "cargotype.h"
|
#include "cargotype.h"
|
||||||
#include "core/bitmath_func.hpp"
|
#include "core/bitmath_func.hpp"
|
||||||
|
#include "newgrf_cargo.h"
|
||||||
|
|
||||||
#include "table/sprites.h"
|
#include "table/sprites.h"
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
@@ -89,3 +90,19 @@ CargoID GetCargoIDByBitnum(uint8 bitnum)
|
|||||||
return CT_INVALID;
|
return CT_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Get sprite for showing cargo of this type.
|
||||||
|
* @return Sprite number to use.
|
||||||
|
*/
|
||||||
|
SpriteID CargoSpec::GetCargoIcon() const
|
||||||
|
{
|
||||||
|
SpriteID sprite = this->sprite;
|
||||||
|
if (sprite == 0xFFFF) {
|
||||||
|
/* A value of 0xFFFF indicates we should draw a custom icon */
|
||||||
|
sprite = GetCustomCargoSprite(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sprite == 0) sprite = SPR_CARGO_GOODS;
|
||||||
|
|
||||||
|
return sprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -113,6 +113,8 @@ struct CargoSpec {
|
|||||||
return &CargoSpec::array[index];
|
return &CargoSpec::array[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SpriteID GetCargoIcon() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static CargoSpec array[NUM_CARGO]; ///< Array holding all CargoSpecs
|
static CargoSpec array[NUM_CARGO]; ///< Array holding all CargoSpecs
|
||||||
|
|
||||||
@@ -123,8 +125,6 @@ extern uint32 _cargo_mask;
|
|||||||
|
|
||||||
/* Set up the default cargo types for the given landscape type */
|
/* Set up the default cargo types for the given landscape type */
|
||||||
void SetupCargoForClimate(LandscapeID l);
|
void SetupCargoForClimate(LandscapeID l);
|
||||||
/* Get the cargo icon for a given cargo ID */
|
|
||||||
SpriteID GetCargoSprite(CargoID i);
|
|
||||||
/* Get the cargo ID with the cargo label */
|
/* Get the cargo ID with the cargo label */
|
||||||
CargoID GetCargoIDByLabel(CargoLabel cl);
|
CargoID GetCargoIDByLabel(CargoLabel cl);
|
||||||
CargoID GetCargoIDByBitnum(uint8 bitnum);
|
CargoID GetCargoIDByBitnum(uint8 bitnum);
|
||||||
|
@@ -25,7 +25,6 @@
|
|||||||
#include "viewport_func.h"
|
#include "viewport_func.h"
|
||||||
#include "gfx_func.h"
|
#include "gfx_func.h"
|
||||||
#include "widgets/dropdown_func.h"
|
#include "widgets/dropdown_func.h"
|
||||||
#include "newgrf_cargo.h"
|
|
||||||
#include "station_base.h"
|
#include "station_base.h"
|
||||||
#include "waypoint_base.h"
|
#include "waypoint_base.h"
|
||||||
#include "tilehighlight_func.h"
|
#include "tilehighlight_func.h"
|
||||||
@@ -751,23 +750,6 @@ static const NWidgetPart _nested_station_view_widgets[] = {
|
|||||||
EndContainer(),
|
EndContainer(),
|
||||||
};
|
};
|
||||||
|
|
||||||
SpriteID GetCargoSprite(CargoID i)
|
|
||||||
{
|
|
||||||
const CargoSpec *cs = CargoSpec::Get(i);
|
|
||||||
SpriteID sprite;
|
|
||||||
|
|
||||||
if (cs->sprite == 0xFFFF) {
|
|
||||||
/* A value of 0xFFFF indicates we should draw a custom icon */
|
|
||||||
sprite = GetCustomCargoSprite(cs);
|
|
||||||
} else {
|
|
||||||
sprite = cs->sprite;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sprite == 0) sprite = SPR_CARGO_GOODS;
|
|
||||||
|
|
||||||
return sprite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draws icons of waiting cargo in the StationView window
|
* Draws icons of waiting cargo in the StationView window
|
||||||
*
|
*
|
||||||
@@ -783,7 +765,7 @@ static void DrawCargoIcons(CargoID i, uint waiting, int left, int right, int y)
|
|||||||
uint num = min((waiting + 5) / 10, (right - left) / 10); // maximum is width / 10 icons so it won't overflow
|
uint num = min((waiting + 5) / 10, (right - left) / 10); // maximum is width / 10 icons so it won't overflow
|
||||||
if (num == 0) return;
|
if (num == 0) return;
|
||||||
|
|
||||||
SpriteID sprite = GetCargoSprite(i);
|
SpriteID sprite = CargoSpec::Get(i)->GetCargoIcon();
|
||||||
|
|
||||||
int x = _dynlang.text_dir == TD_RTL ? right - num * 10 : left;
|
int x = _dynlang.text_dir == TD_RTL ? right - num * 10 : left;
|
||||||
do {
|
do {
|
||||||
|
Reference in New Issue
Block a user