summaryrefslogtreecommitdiff
path: root/openttd.c
diff options
context:
space:
mode:
Diffstat (limited to 'openttd.c')
-rw-r--r--openttd.c51
1 files changed, 30 insertions, 21 deletions
diff --git a/openttd.c b/openttd.c
index e26bb7e0f..98ab0206b 100644
--- a/openttd.c
+++ b/openttd.c
@@ -1130,22 +1130,22 @@ bool AfterLoadGame(uint version)
Player *p;
// in version 2.1 of the savegame, town owner was unified.
- if (version <= 0x200) ConvertTownOwner();
+ if (CheckSavegameVersionOldStyle(2, 1)) ConvertTownOwner();
// from version 4.1 of the savegame, exclusive rights are stored at towns
- if (version <= 0x400) UpdateExclusiveRights();
+ if (CheckSavegameVersionOldStyle(4, 1)) UpdateExclusiveRights();
// from version 4.2 of the savegame, currencies are in a different order
- if (version <= 0x401) UpdateCurrencies();
+ if (CheckSavegameVersionOldStyle(4, 2)) UpdateCurrencies();
- // from version 6.0 of the savegame, signs have an "owner"
- if (version <= 0x600) UpdateSignOwner();
+ // from version 6.1 of the savegame, signs have an "owner"
+ if (CheckSavegameVersionOldStyle(6, 1)) UpdateSignOwner();
/* In old version there seems to be a problem that water is owned by
OWNER_NONE, not OWNER_WATER.. I can't replicate it for the current
- (0x402) version, so I just check when versions are older, and then
+ (4.3) version, so I just check when versions are older, and then
walk through the whole map.. */
- if (version <= 0x402) {
+ if (CheckSavegameVersionOldStyle(4, 3)) {
TileIndex tile = TileXY(0, 0);
uint w = MapSizeX();
uint h = MapSizeY();
@@ -1172,12 +1172,12 @@ bool AfterLoadGame(uint version)
AfterLoadVehicles();
// Update all waypoints
- if (version < 0x0C00) FixOldWaypoints();
+ if (CheckSavegameVersion(12)) FixOldWaypoints();
UpdateAllWaypointSigns();
// in version 2.2 of the savegame, we have new airports
- if (version <= 0x201) UpdateOldAircraft();
+ if (CheckSavegameVersionOldStyle(2, 2)) UpdateOldAircraft();
UpdateAllStationVirtCoord();
@@ -1205,12 +1205,12 @@ bool AfterLoadGame(uint version)
vp->virtual_width = vp->width << vp->zoom;
vp->virtual_height = vp->height << vp->zoom;
- // in version 4.0 of the savegame, is_active was introduced to determine
+ // in version 4.1 of the savegame, is_active was introduced to determine
// if a player does exist, rather then checking name_1
- if (version <= 0x400) CheckIsPlayerActive();
+ if (CheckSavegameVersionOldStyle(4, 1)) CheckIsPlayerActive();
- // the void tiles on the southern border used to belong to a wrong class.
- if (version <= 0x402) UpdateVoidTiles();
+ // the void tiles on the southern border used to belong to a wrong class (pre 4.3).
+ if (CheckSavegameVersionOldStyle(4, 3)) UpdateVoidTiles();
// If Load Scenario / New (Scenario) Game is used,
// a player does not exist yet. So create one here.
@@ -1222,10 +1222,13 @@ bool AfterLoadGame(uint version)
DoZoomInOutWindow(ZOOM_NONE, w); // update button status
MarkWholeScreenDirty();
- //In 5.1, Oilrigs have been moved (again)
- if (version <= 0x500) UpdateOilRig();
+ // In 5.1, Oilrigs have been moved (again)
+ if (CheckSavegameVersionOldStyle(5, 1)) UpdateOilRig();
- if (version <= 0x600) {
+ /* In version 6.1 we put the town index in the map-array. To do this, we need
+ * to use m2 (16bit big), so we need to clean m2, and that is where this is
+ * all about ;) */
+ if (CheckSavegameVersionOldStyle(6, 1)) {
BEGIN_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0) {
if (IsTileType(tile, MP_HOUSE)) {
_m[tile].m4 = _m[tile].m2;
@@ -1247,12 +1250,16 @@ bool AfterLoadGame(uint version)
} END_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0);
}
- if (version < 0x900) {
+ /* From version 9.0, we update the max passengers of a town (was sometimes negative
+ * before that. */
+ if (CheckSavegameVersion(9)) {
Town *t;
FOR_ALL_TOWNS(t) UpdateTownMaxPass(t);
}
- if (version < 0xF00) {
+ /* From version 15.0, we moved a semaphore bit from bit 2 to bit 3 in m4, making
+ * room for PBS. While doing that, clean some blocks that should be empty, for PBS. */
+ if (CheckSavegameVersion(15)) {
BEGIN_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0) {
if (IsTileType(tile, MP_RAILWAY) && HasSignals(tile) && HASBIT(_m[tile].m4, 2)) {
CLRBIT(_m[tile].m4, 2);
@@ -1264,7 +1271,9 @@ bool AfterLoadGame(uint version)
} END_TILE_LOOP(tile, MapSizeX(), MapSizeY(), 0);
}
- if (version < 0x1000) {
+ /* From version 16.0, we included autorenew on engines, which are now saved, but
+ * of course, we do need to initialize them for older savegames. */
+ if (CheckSavegameVersion(16)) {
FOR_ALL_PLAYERS(p) {
EngineID i;
@@ -1288,7 +1297,7 @@ bool AfterLoadGame(uint version)
/* In version 16.1 of the savegame, trains became aware of station lengths
need to initialized to the invalid state
players needs to set renew_keep_length too */
- if (version < 0x1001) {
+ if (CheckSavegameVersionOldStyle(16, 1)) {
Vehicle *v;
FOR_ALL_PLAYERS(p) {
p->renew_keep_length = false;
@@ -1306,7 +1315,7 @@ bool AfterLoadGame(uint version)
* waypoints to make way for storing the index in m2. The custom graphics
* id which was stored in m4 is now saved as a grf/id reference in the
* waypoint struct. */
- if (version < 0x1100) {
+ if (CheckSavegameVersion(17)) {
Waypoint *wp;
FOR_ALL_WAYPOINTS(wp) {