mirror of https://github.com/OpenTTD/OpenTTD
(svn r20374) -Codechange: add persistant storage for airports
parent
00902294b3
commit
2e6713ce95
|
@ -263,6 +263,9 @@ uint32 AirportGetVariable(const ResolverObject *object, byte variable, byte para
|
|||
}
|
||||
|
||||
switch (variable) {
|
||||
/* Get a variable from the persistent storage */
|
||||
case 0x7C: return st->airport.psa.Get(parameter);
|
||||
|
||||
case 0xF0: return st->facilities;
|
||||
case 0xFA: return Clamp(st->build_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0, 65535);
|
||||
}
|
||||
|
@ -304,7 +307,7 @@ static void NewAirportResolver(ResolverObject *res, TileIndex tile, Station *st,
|
|||
res->GetVariable = AirportGetVariable;
|
||||
res->ResolveReal = AirportResolveReal;
|
||||
|
||||
res->psa = NULL;
|
||||
res->psa = st != NULL ? &st->airport.psa : NULL;
|
||||
res->u.airport.st = st;
|
||||
res->u.airport.airport_id = airport_id;
|
||||
res->u.airport.layout = layout;
|
||||
|
|
|
@ -338,6 +338,7 @@ static const SaveLoad _station_desc[] = {
|
|||
SLE_CONDVAR(Station, airport.layout, SLE_UINT8, 145, SL_MAX_VERSION),
|
||||
SLE_VAR(Station, airport.flags, SLE_UINT64),
|
||||
SLE_CONDVAR(Station, airport.rotation, SLE_UINT8, 145, SL_MAX_VERSION),
|
||||
SLE_CONDARR(Station, airport.psa.storage, SLE_UINT32, 16, 145, SL_MAX_VERSION),
|
||||
|
||||
SLE_VAR(Station, indtype, SLE_UINT8),
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "newgrf_airport.h"
|
||||
#include "cargopacket.h"
|
||||
#include "industry_type.h"
|
||||
#include "newgrf_storage.h"
|
||||
|
||||
typedef Pool<BaseStation, StationID, 32, 64000> StationPool;
|
||||
extern StationPool _station_pool;
|
||||
|
@ -47,12 +48,15 @@ struct GoodsEntry {
|
|||
|
||||
/** All airport-related information. Only valid if tile != INVALID_TILE. */
|
||||
struct Airport : public TileArea {
|
||||
typedef PersistentStorageArray<int32, 16> PersistentStorage;
|
||||
|
||||
Airport() : TileArea(INVALID_TILE, 0, 0) {}
|
||||
|
||||
uint64 flags; ///< stores which blocks on the airport are taken. was 16 bit earlier on, then 32
|
||||
byte type; ///< Type of this airport, @see AirportTypes.
|
||||
byte layout; ///< Airport layout number.
|
||||
Direction rotation; ///< How this airport is rotated.
|
||||
PersistentStorage psa; ///< Persistent storage for NewGRF airports
|
||||
|
||||
/**
|
||||
* Get the AirportSpec that from the airport type of this airport. If there
|
||||
|
|
Loading…
Reference in New Issue