summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--saveload.c2
-rw-r--r--ttd.c16
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
};
diff --git a/ttd.c b/ttd.c
index 6822f1637..39b9a4f42 100644
--- a/ttd.c
+++ b/ttd.c
@@ -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) {