changeset 6093:1f2c064d8490 draft

(svn r8828) -Fix -Regression (r7585): On load calculate the station rectangle for all savegames, not just savegames with at least version 27
author tron <tron@openttd.org>
date Wed, 21 Feb 2007 07:37:31 +0000
parents 1921ab72b54d
children eb3c03bb3f1c
files src/openttd.cpp src/station_cmd.cpp
diffstat 2 files changed, 9 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1288,20 +1288,23 @@
 	DoZoomInOutWindow(ZOOM_NONE, w); // update button status
 	MarkWholeScreenDirty();
 
-	/* From this version on there can be multiple road stops of the same type per
-	 * station. Convert the existing stops to the new internal data structure.
-	 */
 	for (TileIndex t = 0; t < map_size; t++) {
 		switch (GetTileType(t)) {
-			case MP_STATION:
+			case MP_STATION: {
+				Station *st = GetStationByTile(t);
+
+				st->rect.BeforeAddTile(t, StationRect::ADD_FORCE);
+
 				switch (GetStationType(t)) {
 					case STATION_TRUCK:
 					case STATION_BUS:
 						if (CheckSavegameVersion(6)) {
+							/* From this version on there can be multiple road stops of the
+							 * same type per station. Convert the existing stops to the new
+							 * internal data structure. */
 							RoadStop *rs = new RoadStop(t);
 							if (rs == NULL) error("Too many road stops in savegame");
 
-							Station *st = GetStationByTile(t);
 							RoadStop **head =
 								IsTruckStop(t) ? &st->truck_stops : &st->bus_stops;
 							*head = rs;
@@ -1330,6 +1333,7 @@
 					default: break;
 				}
 				break;
+			}
 
 			default: break;
 		}
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -2647,11 +2647,6 @@
 			st->speclist[i].spec = GetCustomStationSpecByGrf(st->speclist[i].grfid, st->speclist[i].localidx);
 		}
 	}
-
-	for (TileIndex tile = 0; tile < MapSize(); tile++) {
-		if (GetTileType(tile) != MP_STATION) continue;
-		GetStationByTile(tile)->rect.BeforeAddTile(tile, StationRect::ADD_FORCE);
-	}
 }