OpenTTD Source: VectorSaveLoadHandler< TImpl, TObject, TElementType, MAX_LENGTH > Class Template Reference

OpenTTD Source 15.0-RC2

Public Member Functions
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 >:

## 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

  TImpl | The class initializing this template.
  TObject | The class of the object using this SaveLoadHandler.
  TElementType | The type of the elements contained within the vector.
  MAX_LENGTH | maximum number of elements to load.

Definition at line 1382 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 1396 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

  object | Object containing vector.

Returns
  Vector to load/save.

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

## ◆ 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 1408 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 1398 of file saveload.h.

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

- src/saveload/saveload.h