summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-04-14 07:08:43 +0000
committerrubidium <rubidium@openttd.org>2008-04-14 07:08:43 +0000
commit760a57867f865e6bf9b072f61d481090fbde441f (patch)
treea7b873b3abac42f171ee86f9562c8946a1b2bb7f /src
parent60102c9d7393e0b48e399d4258c3f1e7d90921a8 (diff)
downloadopenttd-760a57867f865e6bf9b072f61d481090fbde441f.tar.xz
(svn r12698) -Codechange: skip orders to stations that do not have a train part anymore, just like is done for road vehicles and ships.
Diffstat (limited to 'src')
-rw-r--r--src/ship_cmd.cpp2
-rw-r--r--src/train_cmd.cpp9
2 files changed, 9 insertions, 2 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp
index 6d55a3658..e111cf77b 100644
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
@@ -243,7 +243,7 @@ TileIndex Ship::GetOrderStationLocation(StationID station)
{
if (station == this->last_station_visited) this->last_station_visited = INVALID_STATION;
- Station *st = GetStation(station);
+ const Station *st = GetStation(station);
if (st->dock_tile != 0) {
return TILE_ADD(st->dock_tile, ToTileIndexDiff(GetDockOffset(st->dock_tile)));
} else {
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp
index 39236c261..076a9e225 100644
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -2563,7 +2563,14 @@ TileIndex Train::GetOrderStationLocation(StationID station)
{
if (station == this->last_station_visited) this->last_station_visited = INVALID_STATION;
- return GetStation(station)->xy;
+ const Station *st = GetStation(station);
+ if (!(st->facilities & FACIL_TRAIN)) {
+ /* The destination station has no trainstation tiles. */
+ this->cur_order_index++;
+ return 0;
+ }
+
+ return st->xy;
}
void Train::MarkDirty()