summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-05-20 09:17:42 +0000
committerpeter1138 <peter1138@openttd.org>2007-05-20 09:17:42 +0000
commitee2feef6e702432e835ba6c1c1e3786e763734f1 (patch)
tree562dbef75052d1b7e5c5635c813896dbc7f68ea5 /src
parent72972a171272461e1609e2db7959943c1208c467 (diff)
downloadopenttd-ee2feef6e702432e835ba6c1c1e3786e763734f1.tar.xz
(svn r9888) -Codechange: [NewGRF] allow non-spec cargo action2s to work, and using the goods sprite if really nothing is returned.
Diffstat (limited to 'src')
-rw-r--r--src/newgrf_cargo.cpp8
-rw-r--r--src/station_gui.cpp2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/newgrf_cargo.cpp b/src/newgrf_cargo.cpp
index 788e2fbe5..6724edb53 100644
--- a/src/newgrf_cargo.cpp
+++ b/src/newgrf_cargo.cpp
@@ -39,10 +39,12 @@ static uint32 CargoGetVariable(const ResolverObject *object, byte variable, byte
static const SpriteGroup *CargoResolveReal(const ResolverObject *object, const SpriteGroup *group)
{
- /* Cargo action 2s should always have only 1 "loaded" state */
- if (group->g.real.num_loaded == 0) return NULL;
+ /* Cargo action 2s should always have only 1 "loaded" state, but some
+ * times things don't follow the spec... */
+ if (group->g.real.num_loaded > 0) return group->g.real.loaded[0];
+ if (group->g.real.num_loading > 0) return group->g.real.loading[0];
- return group->g.real.loaded[0];
+ return NULL;
}
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
index e17f9ac56..045f927b9 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -686,7 +686,7 @@ static void DrawCargoIcons(CargoID i, uint waiting, int x, int y)
sprite = cs->sprite;
}
- if (sprite == 0) return;
+ if (sprite == 0) sprite = SPR_CARGO_GOODS;
do {
DrawSprite(sprite, PAL_NONE, x, y);