mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r18410) -Codechange: Move GetCargoSprite() to CargoSpec::GetCargoIcon().
This commit is contained in:
parent
1e7403d372
commit
c38f3ce380
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue