src/economy.cpp
changeset 8727 797f81c2e88e
parent 8726 5ae45b46506b
child 8734 b7fc8c6fd379
--- a/src/economy.cpp	Wed Jan 09 16:55:48 2008 +0000
+++ b/src/economy.cpp	Wed Jan 09 17:09:53 2008 +0000
@@ -1548,7 +1548,10 @@
 		return;
 	}
 
-	if (v->type == VEH_TRAIN && !IsTileType(v->tile, MP_STATION)) {
+	StationID last_visited = v->last_station_visited;
+	Station *st = GetStation(last_visited);
+
+	if (v->type == VEH_TRAIN && (!IsTileType(v->tile, MP_STATION) || GetStationIndex(v->tile) != st->index)) {
 		/* The train reversed in the station. Take the "easy" way
 		 * out and let the train just leave as it always did. */
 		SetBit(v->vehicle_flags, VF_LOADING_FINISHED);
@@ -1568,9 +1571,6 @@
 
 	v->cur_speed = 0;
 
-	StationID last_visited = v->last_station_visited;
-	Station *st = GetStation(last_visited);
-
 	for (; v != NULL; v = v->Next()) {
 		if (v->cargo_cap == 0) continue;