summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cargotype.cpp17
-rw-r--r--src/cargotype.h4
-rw-r--r--src/station_gui.cpp20
3 files changed, 20 insertions, 21 deletions
diff --git a/src/cargotype.cpp b/src/cargotype.cpp
index 901326c18..6920cf17f 100644
--- a/src/cargotype.cpp
+++ b/src/cargotype.cpp
@@ -12,6 +12,7 @@
#include "stdafx.h"
#include "cargotype.h"
#include "core/bitmath_func.hpp"
+#include "newgrf_cargo.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -89,3 +90,19 @@ CargoID GetCargoIDByBitnum(uint8 bitnum)
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;
+}
+
diff --git a/src/cargotype.h b/src/cargotype.h
index ef7e76ee8..f8ecdbdcc 100644
--- a/src/cargotype.h
+++ b/src/cargotype.h
@@ -113,6 +113,8 @@ struct CargoSpec {
return &CargoSpec::array[index];
}
+ SpriteID GetCargoIcon() const;
+
private:
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 */
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 */
CargoID GetCargoIDByLabel(CargoLabel cl);
CargoID GetCargoIDByBitnum(uint8 bitnum);
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
index 724b45d1b..1b991b686 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -25,7 +25,6 @@
#include "viewport_func.h"
#include "gfx_func.h"
#include "widgets/dropdown_func.h"
-#include "newgrf_cargo.h"
#include "station_base.h"
#include "waypoint_base.h"
#include "tilehighlight_func.h"
@@ -751,23 +750,6 @@ static const NWidgetPart _nested_station_view_widgets[] = {
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
*
@@ -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
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;
do {