OpenTTD Source  20240919-master-gdf0233f4c2
BasePersistentStorageArray Struct Referenceabstract

Base class for all persistent NewGRF storage arrays. More...

#include <newgrf_storage.h>

Inheritance diagram for BasePersistentStorageArray:
PersistentStorageArray< TYPE, SIZE > PersistentStorageArray< int32_t, 256 > PersistentStorage

Public Member Functions

virtual ~BasePersistentStorageArray ()
 Remove references to use.
 

Static Public Member Functions

static void SwitchMode (PersistentStorageMode mode, bool ignore_prev_mode=false)
 Clear temporary changes made since the last call to SwitchMode, and set whether subsequent changes shall be persistent or temporary. More...
 

Data Fields

uint32_t grfid
 GRFID associated to this persistent storage. A value of zero means "default".
 
uint8_t feature
 NOSAVE: Used to identify in the owner of the array in debug output.
 
TileIndex tile
 NOSAVE: Used to identify in the owner of the array in debug output.
 

Protected Member Functions

virtual void ClearChanges ()=0
 Discard temporary changes.
 

Static Protected Member Functions

static bool AreChangesPersistent ()
 Check whether currently changes to the storage shall be persistent or temporary till the next call to ClearChanges().
 

Static Private Attributes

static bool gameloop
 
static bool command
 
static bool testmode
 

Detailed Description

Base class for all persistent NewGRF storage arrays.

Nothing fancy, only here so we have a generalised access to the virtual methods.

Definition at line 33 of file newgrf_storage.h.

Member Function Documentation

◆ SwitchMode()

void BasePersistentStorageArray::SwitchMode ( PersistentStorageMode  mode,
bool  ignore_prev_mode = false 
)
static

Clear temporary changes made since the last call to SwitchMode, and set whether subsequent changes shall be persistent or temporary.

Parameters
modeMode switch affecting temporary/persistent changes.
ignore_prev_modeDisable some sanity checks for exceptional call circumstances.

Definition at line 54 of file newgrf_storage.cpp.

References PSM_ENTER_COMMAND, PSM_ENTER_GAMELOOP, PSM_ENTER_TESTMODE, PSM_LEAVE_COMMAND, PSM_LEAVE_GAMELOOP, and PSM_LEAVE_TESTMODE.

Referenced by CommandHelperBase::InternalExecuteProcessResult(), and CommandHelperBase::InternalExecuteValidateTestAndPrepExec().


The documentation for this struct was generated from the following files: