mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-13 07:10:57 +00:00
(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.
This commit is contained in:
parent
ff542e8d3c
commit
9b879dc988
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user