OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

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.
| 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

enum 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

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

  storage | the array that has changed

Definition at line 45 of file newgrf_storage.cpp.

References _changed_storage_arrays.

Referenced by PersistentStorageArray< int32, 16 >::StoreValue().