summaryrefslogtreecommitdiff
path: root/src/openttd.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-11-25 20:20:16 +0000
committerrubidium <rubidium@openttd.org>2007-11-25 20:20:16 +0000
commitd736a04b59a202023c0c72ff1d2347c0eb83ecff (patch)
treea31c7fedefb93556d61a465412c7d2f8318928e2 /src/openttd.cpp
parent77b6a2674e9e9d7acbe969b26622e67d40bbf579 (diff)
downloadopenttd-d736a04b59a202023c0c72ff1d2347c0eb83ecff.tar.xz
(svn r11525) -Fix: do not do all kinds of 'updates' for town, waypoint, station and other signs when you haven't converted the map to the 'current' format as that means you are going to read data in the 'old' format when you assume that it is in the 'current' format.
Diffstat (limited to 'src/openttd.cpp')
-rw-r--r--src/openttd.cpp36
1 files changed, 17 insertions, 19 deletions
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 156f563f3..e877b08b2 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1312,16 +1312,10 @@ bool AfterLoadGame()
/* Update all waypoints */
if (CheckSavegameVersion(12)) FixOldWaypoints();
- UpdateAllWaypointSigns();
-
/* in version 2.2 of the savegame, we have new airports */
if (CheckSavegameVersionOldStyle(2, 2)) UpdateOldAircraft();
- UpdateAllStationVirtCoord();
-
- /* Setup town coords */
AfterLoadTown();
- UpdateAllSignVirtCoords();
/* make sure there is a town in the game */
if (_game_mode == GM_NORMAL && !ClosestTownFromTile(0, (uint)-1)) {
@@ -1815,19 +1809,6 @@ bool AfterLoadGame()
if (!CheckSavegameVersion(27)) AfterLoadStations();
- {
- /* Set up the engine count for all players */
- Player *players[MAX_PLAYERS];
- const Vehicle *v;
-
- for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) players[i] = GetPlayer(i);
-
- FOR_ALL_VEHICLES(v) {
- if (!IsEngineCountable(v)) continue;
- players[v->owner]->num_engines[v->engine_type]++;
- }
- }
-
/* Time starts at 0 instead of 1920.
* Account for this in older games by adding an offset */
if (CheckSavegameVersion(31)) {
@@ -2205,6 +2186,12 @@ bool AfterLoadGame()
DoZoomInOutWindow(ZOOM_NONE, w); // update button status
MarkWholeScreenDirty();
+ /* Update coordinates of the signs. */
+ UpdateAllStationVirtCoord();
+ UpdateAllSignVirtCoords();
+ UpdateAllTownVirtCoords();
+ UpdateAllWaypointSigns();
+
/* Recalculate */
Group *g;
FOR_ALL_GROUPS(g) {
@@ -2218,6 +2205,17 @@ bool AfterLoadGame()
}
}
+ /* Set up the engine count for all players */
+ Player *players[MAX_PLAYERS];
+ const Vehicle *v;
+
+ for (PlayerID i = PLAYER_FIRST; i < MAX_PLAYERS; i++) players[i] = GetPlayer(i);
+
+ FOR_ALL_VEHICLES(v) {
+ if (!IsEngineCountable(v)) continue;
+ players[v->owner]->num_engines[v->engine_type]++;
+ }
+
return true;
}