summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()