mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-02-11 16:54:42 +00:00
(svn r22568) -Change: Add a list of persistent storages to the Town class.
This commit is contained in:
parent
00e5c1df18
commit
7ffc8c0173
@ -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},
|
||||
};
|
||||
|
@ -17,6 +17,8 @@
|
||||
#include "command_type.h"
|
||||
#include "town_map.h"
|
||||
#include "subsidy_type.h"
|
||||
#include "newgrf_storage.h"
|
||||
#include <list>
|
||||
|
||||
template <typename T>
|
||||
struct BuildingCounts {
|
||||
@ -105,6 +107,8 @@ struct Town : TownPool::PoolItem<&_town_pool> {
|
||||
bool larger_town;
|
||||
TownLayoutByte layout; ///< town specific road layout
|
||||
|
||||
std::list<PersistentStorage *> psa_list;
|
||||
|
||||
PartOfSubsidyByte part_of_subsidy; ///< NOSAVE: is this town a source/destination of a subsidy?
|
||||
|
||||
/* NOSAVE: UpdateTownRadius updates this given the house count. */
|
||||
|
Loading…
Reference in New Issue
Block a user