(svn r12458) -Codechange: split acquiring the sprite ID for cargos from the actual drawing of them.
authorrubidium
Fri, 28 Mar 2008 04:57:32 +0000
changeset 9258 c00ebaa5bf90
parent 9257 02376670f6b6
child 9259 088d3649dd4f
(svn r12458) -Codechange: split acquiring the sprite ID for cargos from the actual drawing of them.
src/cargotype.h
src/station_gui.cpp
--- a/src/cargotype.h	Fri Mar 28 03:23:49 2008 +0000
+++ b/src/cargotype.h	Fri Mar 28 04:57:32 2008 +0000
@@ -59,6 +59,8 @@
 void SetupCargoForClimate(LandscapeID l);
 /* Retrieve cargo details for the given cargo ID */
 const CargoSpec *GetCargo(CargoID c);
+/* 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);
--- a/src/station_gui.cpp	Fri Mar 28 03:23:49 2008 +0000
+++ b/src/station_gui.cpp	Fri Mar 28 04:57:32 2008 +0000
@@ -682,19 +682,8 @@
 {   WIDGETS_END},
 };
 
-/**
- * Draws icons of wainting cargo in the StationView window
- *
- * @param i type of cargo
- * @param waiting number of wainting units
- * @param x x on-screen coordinate where to start with drawing icons
- * @param y y coordinate
- */
-static void DrawCargoIcons(CargoID i, uint waiting, int x, int y, uint width)
+SpriteID GetCargoSprite(CargoID i)
 {
-	uint num = min((waiting + 5) / 10, width / 10); // maximum is width / 10 icons so it won't overflow
-	if (num == 0) return;
-
 	const CargoSpec *cs = GetCargo(i);
 	SpriteID sprite;
 
@@ -707,6 +696,24 @@
 
 	if (sprite == 0) sprite = SPR_CARGO_GOODS;
 
+	return sprite;
+}
+
+/**
+ * Draws icons of waiting cargo in the StationView window
+ *
+ * @param i type of cargo
+ * @param waiting number of waiting units
+ * @param x x on-screen coordinate where to start with drawing icons
+ * @param y y coordinate
+ */
+static void DrawCargoIcons(CargoID i, uint waiting, int x, int y, uint width)
+{
+	uint num = min((waiting + 5) / 10, width / 10); // maximum is width / 10 icons so it won't overflow
+	if (num == 0) return;
+
+	SpriteID sprite = GetCargoSprite(i);
+
 	do {
 		DrawSprite(sprite, PAL_NONE, x, y);
 		x += 10;