OpenTTD Source 20260129-master-g2bb01bd0e4
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
 Save the object to disk.
 
void Load (TObject *object) const override
 Load the object from disk.
 
- 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
 Similar to load, but used only to validate savegames.
 
void LoadCheck (void *object) const override
 Similar to load, but used only to validate savegames.
 
virtual void FixPointers (TObject *object) const
 A post-load callback to fix SL_REF integers into pointers.
 
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
 Description derived from savegame being loaded.
 

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 1403 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 1417 of file saveload.h.

References SlGetStructListLength().

Referenced by VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH >::Load().

◆ 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

◆ 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

◆ 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

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