OpenTTD Source  20240919-master-gdf0233f4c2
engine_sl.cpp File Reference
#include "../stdafx.h"
#include "saveload.h"
#include "compat/engine_sl_compat.h"
#include "saveload_internal.h"
#include "../engine_base.h"
#include "../string_func.h"
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  ENGNChunkHandler
 
struct  ENGSChunkHandler
 
struct  EIDSChunkHandler
 

Functions

static EngineCallocEngine ()
 Allocate an Engine structure, but not using the pools. More...
 
static void FreeEngine (Engine *e)
 Deallocate an Engine constructed by CallocEngine. More...
 
EngineGetTempDataEngine (EngineID index)
 
void CopyTempEngineData ()
 Copy data from temporary engine array into the real engine pool.
 
void ResetTempEngineData ()
 
const ChunkHandlerTable _engine_chunk_handlers (engine_chunk_handlers)
 

Variables

static const SaveLoad _engine_desc []
 
static std::vector< Engine * > _temp_engine
 
static const SaveLoad _engine_id_mapping_desc []
 Save and load the mapping between the engine id in the pool, and the grf file it came from. More...
 
static const EIDSChunkHandler EIDS
 
static const ENGNChunkHandler ENGN
 
static const ENGSChunkHandler ENGS
 
static const ChunkHandlerRef engine_chunk_handlers []
 

Detailed Description

Code handling saving and loading of engines

Definition in file engine_sl.cpp.

Function Documentation

◆ CallocEngine()

static Engine* CallocEngine ( )
static

Allocate an Engine structure, but not using the pools.

The allocated Engine must be freed using FreeEngine;

Returns
Allocated engine.

Definition at line 51 of file engine_sl.cpp.

◆ FreeEngine()

static void FreeEngine ( Engine e)
static

Deallocate an Engine constructed by CallocEngine.

Parameters
eEngine to free.

Definition at line 62 of file engine_sl.cpp.

References free().

Variable Documentation

◆ _engine_desc

const SaveLoad _engine_desc[]
static
Initial value:
= {
SLE_CONDVAR(Engine, intro_date, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
SLE_CONDVAR(Engine, intro_date, SLE_INT32, SLV_31, SL_MAX_VERSION),
SLE_CONDVAR(Engine, age, SLE_FILE_U16 | SLE_VAR_I32, SL_MIN_VERSION, SLV_31),
SLE_VAR(Engine, reliability, SLE_UINT16),
SLE_VAR(Engine, reliability_spd_dec, SLE_UINT16),
SLE_VAR(Engine, reliability_start, SLE_UINT16),
SLE_VAR(Engine, reliability_max, SLE_UINT16),
SLE_VAR(Engine, reliability_final, SLE_UINT16),
SLE_VAR(Engine, duration_phase_1, SLE_UINT16),
SLE_VAR(Engine, duration_phase_2, SLE_UINT16),
SLE_VAR(Engine, duration_phase_3, SLE_UINT16),
SLE_VAR(Engine, flags, SLE_UINT8),
SLE_CONDVAR(Engine, preview_asked, SLE_UINT16, SLV_179, SL_MAX_VERSION),
SLE_CONDVAR(Engine, preview_company, SLE_UINT8, SLV_179, SL_MAX_VERSION),
SLE_VAR(Engine, preview_wait, SLE_UINT8),
SLE_CONDVAR(Engine, company_avail, SLE_FILE_U8 | SLE_VAR_U16, SL_MIN_VERSION, SLV_104),
SLE_CONDVAR(Engine, company_avail, SLE_UINT16, SLV_104, SL_MAX_VERSION),
SLE_CONDVAR(Engine, company_hidden, SLE_UINT16, SLV_193, SL_MAX_VERSION),
}

Definition at line 21 of file engine_sl.cpp.

◆ _engine_id_mapping_desc

const SaveLoad _engine_id_mapping_desc[]
static
Initial value:
= {
SLE_VAR(EngineIDMapping, grfid, SLE_UINT32),
SLE_VAR(EngineIDMapping, internal_id, SLE_UINT16),
SLE_VAR(EngineIDMapping, type, SLE_UINT8),
SLE_VAR(EngineIDMapping, substitute_id, SLE_UINT8),
}

Save and load the mapping between the engine id in the pool, and the grf file it came from.

Definition at line 178 of file engine_sl.cpp.

Referenced by EIDSChunkHandler::Load(), and EIDSChunkHandler::Save().

◆ engine_chunk_handlers

const ChunkHandlerRef engine_chunk_handlers[]
static
Initial value:
= {
EIDS,
ENGN,
ENGS,
}

Definition at line 216 of file engine_sl.cpp.

SLE_CONDSSTR
#define SLE_CONDSSTR(base, variable, type, from, to)
Storage of a std::string in some savegame versions.
Definition: saveload.h:922
SL_MIN_VERSION
@ SL_MIN_VERSION
First savegame version.
Definition: saveload.h:31
SLE_CONDVAR
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition: saveload.h:857
Engine
Definition: engine_base.h:37
SLV_31
@ SLV_31
31 5999
Definition: saveload.h:80
SL_MAX_VERSION
@ SL_MAX_VERSION
Highest possible saveload version.
Definition: saveload.h:391
EngineIDMapping
Definition: engine_base.h:192
SLV_84
@ SLV_84
84 11822
Definition: saveload.h:143
SLV_193
@ SLV_193
193 26802
Definition: saveload.h:275
SLE_VAR
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition: saveload.h:971
SLV_179
@ SLV_179
179 24810
Definition: saveload.h:257
SLV_104
@ SLV_104
104 14735
Definition: saveload.h:167