diff options
author | terkhen <terkhen@openttd.org> | 2011-06-12 20:49:07 +0000 |
---|---|---|
committer | terkhen <terkhen@openttd.org> | 2011-06-12 20:49:07 +0000 |
commit | 7ffc8c0173cea7b364636e4a0686e72947095a9a (patch) | |
tree | cccfb5c175f777666dd567f18618759161d6e24b /src/saveload | |
parent | 00e5c1df18449992cc974b99c61a44d1385bf4a7 (diff) | |
download | openttd-7ffc8c0173cea7b364636e4a0686e72947095a9a.tar.xz |
(svn r22568) -Change: Add a list of persistent storages to the Town class.
Diffstat (limited to 'src/saveload')
-rw-r--r-- | src/saveload/town_sl.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/saveload/town_sl.cpp b/src/saveload/town_sl.cpp index e246f61f7..06b70d074 100644 --- a/src/saveload/town_sl.cpp +++ b/src/saveload/town_sl.cpp @@ -171,6 +171,8 @@ static const SaveLoad _town_desc[] = { SLE_CONDVAR(Town, larger_town, SLE_BOOL, 56, SL_MAX_VERSION), SLE_CONDVAR(Town, layout, SLE_UINT8, 113, SL_MAX_VERSION), + SLE_CONDLST(Town, psa_list, REF_STORAGE, 161, SL_MAX_VERSION), + /* reserve extra space in savegame here. (currently 30 bytes) */ SLE_CONDNULL(30, 2, SL_MAX_VERSION), @@ -207,7 +209,20 @@ static void Load_TOWN() } } +/** Fix pointers when loading town data. */ +static void Ptrs_TOWN() +{ + /* Don't run when savegame version lower than 161. */ + if (IsSavegameVersionBefore(161)) return; + + Town *t; + FOR_ALL_TOWNS(t) { + SlObject(t, _town_desc); + } +} + +/** Chunk handler for towns. */ extern const ChunkHandler _town_chunk_handlers[] = { - { 'HIDS', Save_HIDS, Load_HIDS, NULL, NULL, CH_ARRAY }, - { 'CITY', Save_TOWN, Load_TOWN, NULL, NULL, CH_ARRAY | CH_LAST}, + { 'HIDS', Save_HIDS, Load_HIDS, NULL, NULL, CH_ARRAY }, + { 'CITY', Save_TOWN, Load_TOWN, Ptrs_TOWN, NULL, CH_ARRAY | CH_LAST}, }; |