changeset 8928:f256fabe6441 draft

(svn r12698) -Codechange: skip orders to stations that do not have a train part anymore, just like is done for road vehicles and ships.
author rubidium <rubidium@openttd.org>
date Mon, 14 Apr 2008 07:08:43 +0000
parents 34ca25f0c6bd
children 2b6a37a13245
files src/ship_cmd.cpp src/train_cmd.cpp
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ship_cmd.cpp
+++ b/src/ship_cmd.cpp
@@ -243,7 +243,7 @@
 {
 	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 {
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -2563,7 +2563,14 @@
 {
 	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()