diff options
author | rubidium <rubidium@openttd.org> | 2008-03-28 04:57:32 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-03-28 04:57:32 +0000 |
commit | d8cfb4f064d5492770d3325ef6e288b630e34e7c (patch) | |
tree | 054d82fc3797d11e8a32609a8112e9799cc33682 | |
parent | 79f033c78fe7a92cabce880225b8466a3a68c61c (diff) | |
download | openttd-d8cfb4f064d5492770d3325ef6e288b630e34e7c.tar.xz |
(svn r12458) -Codechange: split acquiring the sprite ID for cargos from the actual drawing of them.
-rw-r--r-- | src/cargotype.h | 2 | ||||
-rw-r--r-- | src/station_gui.cpp | 31 |
2 files changed, 21 insertions, 12 deletions
diff --git a/src/cargotype.h b/src/cargotype.h index 67b63e3dd..7d770b1b9 100644 --- a/src/cargotype.h +++ b/src/cargotype.h @@ -59,6 +59,8 @@ extern CargoSpec _cargo[NUM_CARGO]; 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); diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 82fe883c9..8a4f7a6f5 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -682,19 +682,8 @@ static const Widget _station_view_widgets[] = { { 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 @@ static void DrawCargoIcons(CargoID i, uint waiting, int x, int y, uint width) 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; |