diff options
author | belugas <belugas@openttd.org> | 2009-01-28 19:57:23 +0000 |
---|---|---|
committer | belugas <belugas@openttd.org> | 2009-01-28 19:57:23 +0000 |
commit | 3671ed9e4f4b773cd03bfe7a4544bf78e61d1604 (patch) | |
tree | 0f8ac458ad049e4b952bb5f78a8a4a0eab88c268 /src/saveload | |
parent | bfde9f7eefd4fe796002374797df699db90ae773 (diff) | |
download | openttd-3671ed9e4f4b773cd03bfe7a4544bf78e61d1604.tar.xz |
(svn r15290) -Codechange: Isolate size and section of the UnMovable HQ object, in order to keep the Unmovable type free of any irrelevant data
Diffstat (limited to 'src/saveload')
-rw-r--r-- | src/saveload/afterload.cpp | 15 | ||||
-rw-r--r-- | src/saveload/saveload.cpp | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index acfe903dd..af22f844c 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -1694,6 +1694,21 @@ bool AfterLoadGame() } } + if (CheckSavegameVersion(112)) { + for (TileIndex t = 0; t < map_size; t++) { + /* Check for HQ bit being set, instead of using map accessor, + * since we've already changed it code-wise */ + if (IsTileType(t, MP_UNMOVABLE) && HasBit(_m[t].m5, 7)) { + /* Move size and part identification of HQ out of the m5 attribute, + * on new locations */ + uint8 old_m5 = _m[t].m5; + _m[t].m5 = UNMOVABLE_HQ; + SetCompanyHQSize(t, GB(old_m5, 2, 3)); + SetCompanyHQSection(t, GB(old_m5, 0, 2)); + } + } + } + GamelogPrintDebug(1); bool ret = InitializeWindowsAndCaches(); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 0f241f3a1..466a67d53 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -42,7 +42,7 @@ #include <list> -extern const uint16 SAVEGAME_VERSION = 111; +extern const uint16 SAVEGAME_VERSION = 112; SavegameType _savegame_type; ///< type of savegame we are loading |