OpenTTD Source 20241224-master-gf74b0cf984
engine_sl.cpp File Reference

Code handling saving and loading of engines. More...

#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.
 
static void FreeEngine (Engine *e)
 Deallocate an Engine constructed by CallocEngine.
 
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.
 
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.

◆ CopyTempEngineData()

◆ 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().

◆ GetTempDataEngine()

Engine * GetTempDataEngine ( EngineID  index)

Definition at line 70 of file engine_sl.cpp.

◆ ResetTempEngineData()

void ResetTempEngineData ( )

Definition at line 149 of file engine_sl.cpp.

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),
}
#define SLE_CONDSSTR(base, variable, type, from, to)
Storage of a std::string in some savegame versions.
Definition saveload.h:933
#define SLE_CONDVAR(base, variable, type, from, to)
Storage of a variable in some savegame versions.
Definition saveload.h:868
@ SLV_84
84 11822
Definition saveload.h:143
@ SLV_193
193 26802
Definition saveload.h:275
@ SL_MAX_VERSION
Highest possible saveload version.
Definition saveload.h:399
@ SL_MIN_VERSION
First savegame version.
Definition saveload.h:31
@ SLV_104
104 14735
Definition saveload.h:167
@ SLV_179
179 24810
Definition saveload.h:257
@ SLV_31
31 5999
Definition saveload.h:80
#define SLE_VAR(base, variable, type)
Storage of a variable in every version of a savegame.
Definition saveload.h:1002

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

◆ _temp_engine

std::vector<Engine*> _temp_engine
static

Definition at line 44 of file engine_sl.cpp.

◆ EIDS

const EIDSChunkHandler EIDS
static

Definition at line 229 of file engine_sl.cpp.

◆ engine_chunk_handlers

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

Definition at line 232 of file engine_sl.cpp.

◆ ENGN

const ENGNChunkHandler ENGN
static

Definition at line 230 of file engine_sl.cpp.

◆ ENGS

const ENGSChunkHandler ENGS
static

Definition at line 231 of file engine_sl.cpp.