changeset 8762:dcc2194ac748 draft

(svn r12458) -Codechange: split acquiring the sprite ID for cargos from the actual drawing of them.
author rubidium <rubidium@openttd.org>
date Fri, 28 Mar 2008 04:57:32 +0000
parents 30b1c1db062a
children d6e363672edb
files src/cargotype.h src/station_gui.cpp
diffstat 2 files changed, 21 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/cargotype.h
+++ b/src/cargotype.h
@@ -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
+++ b/src/station_gui.cpp
@@ -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;