OpenTTD Source 20260721-master-g25ec12c62d
ChunkHandler Struct Referenceabstract

Handlers and description of chunk. More...

#include <saveload.h>

Inheritance diagram for ChunkHandler:
AIPLChunkHandler ANITChunkHandler BKORChunkHandler CAPAChunkHandler CAPRChunkHandler CAPYChunkHandler CHKPChunkHandler CHTSChunkHandler CITYChunkHandler CMDLChunkHandler CMPUChunkHandler DATEChunkHandler DEPTChunkHandler ECMYChunkHandler EIDSChunkHandler ENGNChunkHandler ENGSChunkHandler ERNWChunkHandler GLOGChunkHandler GOALChunkHandler GRPSChunkHandler GSDTChunkHandler GSTRChunkHandler IBLDChunkHandler INDYChunkHandler ITBLChunkHandler LEAEChunkHandler LEATChunkHandler LGRJChunkHandler LGRPChunkHandler LGRSChunkHandler M3HIChunkHandler M3LOChunkHandler MAP2ChunkHandler MAP5ChunkHandler MAP7ChunkHandler MAP8ChunkHandler MAPEChunkHandler MAPHChunkHandler MAPOChunkHandler MAPSChunkHandler MAPTChunkHandler NAMEChunkHandler NGRFChunkHandler NewGRFMappingChunkHandler OBJSChunkHandler OPTSChunkHandler ORDLChunkHandler ORDRChunkHandler PATSChunkHandler PLYRChunkHandler PRICChunkHandler PSACChunkHandler RAILChunkHandler ROADChunkHandler ROTTChunkHandler SIGNChunkHandler SRNDChunkHandler STNNChunkHandler STNSChunkHandler STPAChunkHandler STPEChunkHandler SUBSChunkHandler VEHSChunkHandler VIEWChunkHandler WaterRegionChunkHandler

Public Member Functions

 ChunkHandler (ChunkId id, ChunkType type)
 Create this ChunkHandler.
virtual ~ChunkHandler ()=default
 Ensure the destructor of the sub classes are called as well.
virtual void Save () const
 Save the chunk.
virtual void Load () const =0
 Load the chunk.
virtual void FixPointers () const
 Fix the pointers.
virtual void LoadCheck (size_t len=0) const
 Load the chunk for game preview.
std::string GetName () const
 Get the name of this chunk.

Data Fields

ChunkId id
 Unique ID (4 letters).
ChunkType type
 Type of the chunk.

Detailed Description

Handlers and description of chunk.

Definition at line 456 of file saveload.h.

Constructor & Destructor Documentation

◆ ChunkHandler()

ChunkHandler::ChunkHandler ( ChunkId id,
ChunkType type )
inline

Create this ChunkHandler.

Parameters
idThe unique identifier/name of this chunk.
typeThe type of chunk

Definition at line 465 of file saveload.h.

References id, and type.

Referenced by NewGRFMappingChunkHandler::NewGRFMappingChunkHandler().

Member Function Documentation

◆ FixPointers()

virtual void ChunkHandler::FixPointers ( ) const
inlinevirtual

Fix the pointers.

Pointers are saved using the index of the pointed object. On load, pointers are filled with indices and need to be fixed to point to the real object. Must be overridden if the chunk saves any pointer.

Reimplemented in BKORChunkHandler, CAPYChunkHandler, CHKPChunkHandler, CITYChunkHandler, DEPTChunkHandler, ERNWChunkHandler, INDYChunkHandler, LGRSChunkHandler, OBJSChunkHandler, ORDLChunkHandler, PLYRChunkHandler, ROADChunkHandler, STNNChunkHandler, STNSChunkHandler, and VEHSChunkHandler.

Definition at line 488 of file saveload.h.

◆ GetName()

std::string ChunkHandler::GetName ( ) const
inline

Get the name of this chunk.

Returns
The chunks 4 letter name/unique identifier.

Definition at line 501 of file saveload.h.

Referenced by SlLoadCheckChunk(), SlLoadChunk(), and SlSaveChunk().

◆ Load()

◆ LoadCheck()

void ChunkHandler::LoadCheck ( size_t len = 0) const
virtual

Load the chunk for game preview.

Default implementation just skips the data.

Parameters
lenNumber of bytes to skip.

Reimplemented in DATEChunkHandler, GLOGChunkHandler, MAPSChunkHandler, NGRFChunkHandler, PATSChunkHandler, and PLYRChunkHandler.

Definition at line 2182 of file saveload.cpp.

References _sl, Array, Riff, SlSkipArray(), SlSkipBytes(), SlTableHeader(), SparseArray, SparseTable, and Table.

Referenced by SlLoadCheckChunk().

◆ Save()

Field Documentation

◆ id

ChunkId ChunkHandler::id

Unique ID (4 letters).

Definition at line 457 of file saveload.h.

Referenced by ChunkHandler(), NewGRFMappingChunkHandler::NewGRFMappingChunkHandler(), and SlSaveChunk().

◆ type

ChunkType ChunkHandler::type

Type of the chunk.

See also
ChunkType

Definition at line 458 of file saveload.h.

Referenced by ChunkHandler(), and SlSaveChunk().


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