OpenTTD Source 20241224-master-gf74b0cf984
VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH > Class Template Referenceabstract

Default handler for saving/loading a vector to/from disk. More...

#include <saveload.h>

Inheritance diagram for VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >:
DefaultSaveLoadHandler< TImpl, TObject > SaveLoadHandler

Public Member Functions

virtual std::vector< TElementType > & GetVector (TObject *object) const =0
 Get instance of vector to load/save.
 
virtual size_t GetLength () const
 Get number of elements to load into vector.
 
void Save (TObject *object) const override
 
void Load (TObject *object) const override
 
- Public Member Functions inherited from DefaultSaveLoadHandler< TImpl, TObject >
SaveLoadTable GetDescription () const override
 Get the description of the fields in the savegame.
 
SaveLoadCompatTable GetCompatDescription () const override
 Get the pre-header description of the fields in the savegame.
 
void Save (void *object) const override
 Save the object to disk.
 
void Load (void *object) const override
 Load the object from disk.
 
virtual void LoadCheck (TObject *object) const
 
void LoadCheck (void *object) const override
 Similar to load, but used only to validate savegames.
 
virtual void FixPointers (TObject *object) const
 
void FixPointers (void *object) const override
 A post-load callback to fix SL_REF integers into pointers.
 
- Public Member Functions inherited from SaveLoadHandler
SaveLoadTable GetLoadDescription () const
 Get the description for how to load the chunk.
 

Additional Inherited Members

- Data Fields inherited from SaveLoadHandler
std::optional< std::vector< SaveLoad > > load_description
 

Detailed Description

template<class TImpl, class TObject, class TElementType, size_t MAX_LENGTH = UINT32_MAX>
class VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >

Default handler for saving/loading a vector to/from disk.

This handles a few common things for handlers, meaning the actual handler needs less code.

Template Parameters
TImplThe class initializing this template.
TObjectThe class of the object using this SaveLoadHandler.
TElementTypeThe type of the elements contained within the vector.
MAX_LENGTHmaximum number of elements to load.

Definition at line 1365 of file saveload.h.

Member Function Documentation

◆ GetLength()

template<class TImpl , class TObject , class TElementType , size_t MAX_LENGTH = UINT32_MAX>
virtual size_t VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >::GetLength ( ) const
inlinevirtual

Get number of elements to load into vector.

Returns
Number of elements to load into the vector.
Note
This is only overridden if the number of elements comes from a different location due to savegame changes.

Reimplemented in SlStationSpecList< T >.

Definition at line 1379 of file saveload.h.

References SlGetStructListLength().

◆ GetVector()

template<class TImpl , class TObject , class TElementType , size_t MAX_LENGTH = UINT32_MAX>
virtual std::vector< TElementType > & VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >::GetVector ( TObject *  object) const
pure virtual

Get instance of vector to load/save.

Parameters
objectObject containing vector.
Returns
Vector to load/save.

Implemented in SlStationSpecList< T >, SlRoadStopTileData, SlAllowListData, SlIndustryAccepted, SlIndustryProduced, SlVehicleRoadVehPath, and SlVehicleShipPath.

◆ Load()

template<class TImpl , class TObject , class TElementType , size_t MAX_LENGTH = UINT32_MAX>
void VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >::Load ( TObject *  object) const
inlineoverridevirtual

Reimplemented from DefaultSaveLoadHandler< TImpl, TObject >.

Definition at line 1391 of file saveload.h.

◆ Save()

template<class TImpl , class TObject , class TElementType , size_t MAX_LENGTH = UINT32_MAX>
void VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >::Save ( TObject *  object) const
inlineoverridevirtual

Reimplemented from DefaultSaveLoadHandler< TImpl, TObject >.

Definition at line 1381 of file saveload.h.


The documentation for this class was generated from the following file: