OpenTTD
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
newgrf_storage.h File Reference

Functionality related to the temporary and persistent storage arrays for NewGRFs. More...

#include "core/pool_type.hpp"
#include "tile_type.h"

Go to the source code of this file.

Data Structures

struct  BasePersistentStorageArray
 Base class for all persistent NewGRF storage arrays. More...
 
struct  PersistentStorageArray< TYPE, SIZE >
 Class for persistent storage of data. More...
 
struct  TemporaryStorageArray< TYPE, SIZE >
 Class for temporary storage of data. More...
 
struct  PersistentStorage
 Class for pooled persistent storage of data. More...
 

Macros

#define FOR_ALL_STORAGES_FROM(var, start)   FOR_ALL_ITEMS_FROM(PersistentStorage, storage_index, var, start)
 
#define FOR_ALL_STORAGES(var)   FOR_ALL_STORAGES_FROM(var, 0)
 

Typedefs

typedef PersistentStorageArray< int32, 16 > OldPersistentStorage
 
typedef uint32 PersistentStorageID
 
typedef Pool< PersistentStorage, PersistentStorageID, 1, 0xFF000 > PersistentStoragePool
 

Enumerations

enum  PersistentStorageMode {
  PSM_ENTER_GAMELOOP, PSM_LEAVE_GAMELOOP, PSM_ENTER_COMMAND, PSM_LEAVE_COMMAND,
  PSM_ENTER_TESTMODE, PSM_LEAVE_TESTMODE
}
 Mode switches to the behaviour of persistent storage array. More...
 

Functions

void AddChangedPersistentStorage (BasePersistentStorageArray *storage)
 Add the changed storage array to the list of changed arrays. More...
 
 assert_compile (cpp_lengthof(OldPersistentStorage, storage)==cpp_lengthof(PersistentStorage, storage))
 

Variables

PersistentStoragePool _persistent_storage_pool
 

Detailed Description

Functionality related to the temporary and persistent storage arrays for NewGRFs.

Definition in file newgrf_storage.h.

Enumeration Type Documentation

◆ PersistentStorageMode

Mode switches to the behaviour of persistent storage array.

Enumerator
PSM_ENTER_GAMELOOP 

Enter the gameloop, changes will be permanent.

PSM_LEAVE_GAMELOOP 

Leave the gameloop, changes will be temporary.

PSM_ENTER_COMMAND 

Enter command scope, changes will be permanent.

PSM_LEAVE_COMMAND 

Leave command scope, revert to previous mode.

PSM_ENTER_TESTMODE 

Enter command test mode, changes will be tempoary.

PSM_LEAVE_TESTMODE 

Leave command test mode, revert to previous mode.

Definition at line 21 of file newgrf_storage.h.

Function Documentation

◆ AddChangedPersistentStorage()

void AddChangedPersistentStorage ( BasePersistentStorageArray storage)

Add the changed storage array to the list of changed arrays.

This is done so we only have to revert/save the changed arrays, which saves quite a few clears, etc. after callbacks.

Parameters
storagethe array that has changed

Definition at line 45 of file newgrf_storage.cpp.

References _changed_storage_arrays.

Referenced by TemporaryStorageArray< TYPE, SIZE >::GetValue().