diff options
author | rubidium <rubidium@openttd.org> | 2009-07-16 22:58:06 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-07-16 22:58:06 +0000 |
commit | a007d609afec5e40d2aef362aca90d3a53580c8d (patch) | |
tree | bde43f387f72535de5319609840a89fc707e0884 | |
parent | f16314d0cc8a7b79ac48d4835f55a0968ccb77e6 (diff) | |
download | openttd-a007d609afec5e40d2aef362aca90d3a53580c8d.tar.xz |
(svn r16854) -Fix (r2046): savegames from before this version would get the town id as their 'index' (#<num). For stations with custom names that custom name would be dropped and the lowest 6 bits of the StringID would be used for the 'index'. In other words, it resulted in a mess.
-rw-r--r-- | src/saveload/afterload.cpp | 6 | ||||
-rw-r--r-- | src/saveload/waypoint_sl.cpp | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 9ef1f8986..66256d12e 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -424,6 +424,9 @@ bool AfterLoadGame() } } + /* Update all waypoints */ + if (CheckSavegameVersion(12)) FixOldWaypoints(); + if (CheckSavegameVersion(84)) { FOR_ALL_COMPANIES(c) { c->name = CopyFromOldName(c->name_1); @@ -526,9 +529,6 @@ bool AfterLoadGame() } } - /* Update all waypoints */ - if (CheckSavegameVersion(12)) FixOldWaypoints(); - /* make sure there is a town in the game */ if (_game_mode == GM_NORMAL && !ClosestTownFromTile(0, UINT_MAX)) { SetSaveLoadError(STR_NO_TOWN_IN_SCENARIO); diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp index b6b27a337..3298e56a9 100644 --- a/src/saveload/waypoint_sl.cpp +++ b/src/saveload/waypoint_sl.cpp @@ -45,8 +45,8 @@ void FixOldWaypoints() FOR_ALL_WAYPOINTS(wp) { wp->town_index = ClosestTownFromTile(wp->xy, UINT_MAX)->index; wp->town_cn = 0; - if (wp->string_id & 0xC000) { - wp->town_cn = wp->string_id & 0x3F; + if ((wp->string_id & 0xC000) == 0xC000) { + wp->town_cn = (wp->string_id >> 8) & 0x3F; wp->string_id = STR_NULL; } } |