diff options
author | dominik <dominik@openttd.org> | 2005-01-07 18:13:56 +0000 |
---|---|---|
committer | dominik <dominik@openttd.org> | 2005-01-07 18:13:56 +0000 |
commit | b78b576b214512a66dde9b59eea141824d162690 (patch) | |
tree | c2ea4c7f8309652af139c755c3fbc7282d37a645 | |
parent | 76c7f3b14e159539e512ac6f13019eea0bad1a04 (diff) | |
download | openttd-b78b576b214512a66dde9b59eea141824d162690.tar.xz |
(svn r1417) Fix: The invisible tiles on the southern border are now converted to class MP_VOID when an old map (with wrong classified invisible tiles) is loaded.
I bumped the minor savegame version for that, even though it's not really necessary. We're not gonna run out of minor savegame versions anyway though. ;)
-rw-r--r-- | saveload.c | 2 | ||||
-rw-r--r-- | ttd.c | 16 |
2 files changed, 16 insertions, 2 deletions
diff --git a/saveload.c b/saveload.c index 83b46c137..4d2631b5c 100644 --- a/saveload.c +++ b/saveload.c @@ -8,7 +8,7 @@ enum { SAVEGAME_MAJOR_VERSION = 4, - SAVEGAME_MINOR_VERSION = 2, + SAVEGAME_MINOR_VERSION = 3, SAVEGAME_LOADABLE_VERSION = (SAVEGAME_MAJOR_VERSION << 8) + SAVEGAME_MINOR_VERSION }; @@ -1238,6 +1238,17 @@ void UpdateCurrencies() _opt.currency = convert_currency[_opt.currency]; } +// up to revision 1413, the invisible tiles at the southern border have not been MP_VOID +// even though they should have. This is fixed by this function +void UpdateVoidTiles() +{ + int i; + // create void tiles on the border + for (i = 0; i != MapMaxY(); i++) + _map_type_and_height[ i * MapSizeX() + MapMaxY() ] = MP_VOID << 4; + memset(_map_type_and_height + MapMaxY() * MapSizeX(), MP_VOID << 4, MapSizeX()); +} + extern void UpdateOldAircraft(); bool AfterLoadGame(uint version) @@ -1328,6 +1339,10 @@ bool AfterLoadGame(uint version) CheckIsPlayerActive(); } + // the void tiles on the southern border used to belong to a wrong class. + if (version <= 0x402) + UpdateVoidTiles(); + // If Load Scenario / New (Scenario) Game is used, // a player does not exist yet. So create one here. // 1 exeption: network-games. Those can have 0 players @@ -1341,7 +1356,6 @@ bool AfterLoadGame(uint version) return true; } - void DebugProc(int i) { switch(i) { |