OpenTTD Source 20241224-master-gf74b0cf984
ListSettingDesc Struct Reference

List/array settings. More...

#include <settings_internal.h>

Inheritance diagram for ListSettingDesc:
SettingDesc

Public Member Functions

 ListSettingDesc (const SaveLoad &save, SettingFlag flags, bool startup, const char *def)
 
std::string FormatValue (const void *object) const override
 Convert an integer-array (intlist) to a string representation.
 
void ParseValue (const IniItem *item, void *object) const override
 Parse/read the value from the Ini item into the setting associated with this object.
 
bool IsSameValue (const IniItem *item, void *object) const override
 Check whether the value in the Ini item is the same as is saved in this setting in the object.
 
bool IsDefaultValue (void *object) const override
 Check whether the value is the same as the default value.
 
void ResetToDefault (void *object) const override
 Reset the setting to its default value.
 
- Public Member Functions inherited from SettingDesc
 SettingDesc (const SaveLoad &save, SettingFlag flags, bool startup)
 
bool IsEditable (bool do_command=false) const
 Check whether the setting is editable in the current gamemode.
 
SettingType GetType () const
 Return the type of the setting.
 
constexpr const std::string & GetName () const
 Get the name of this setting.
 
virtual bool IsIntSetting () const
 Check whether this setting is an integer type setting.
 
virtual bool IsStringSetting () const
 Check whether this setting is an string type setting.
 
const struct IntSettingDescAsIntSetting () const
 Get the setting description of this setting as an integer setting.
 
const struct StringSettingDescAsStringSetting () const
 Get the setting description of this setting as a string setting.
 

Data Fields

const char * def
 default value given when none is present
 
- Data Fields inherited from SettingDesc
SettingFlag flags
 Handles how a setting would show up in the GUI (text/currency, etc.).
 
bool startup
 Setting has to be loaded directly at startup?.
 
SaveLoad save
 Internal structure (going to savegame, parts to config).
 

Detailed Description

List/array settings.

Definition at line 360 of file settings_internal.h.

Constructor & Destructor Documentation

◆ ListSettingDesc()

ListSettingDesc::ListSettingDesc ( const SaveLoad save,
SettingFlag  flags,
bool  startup,
const char *  def 
)
inline

Definition at line 361 of file settings_internal.h.

Member Function Documentation

◆ FormatValue()

std::string ListSettingDesc::FormatValue ( const void *  object) const
overridevirtual

Convert an integer-array (intlist) to a string representation.

Each value is separated by a comma or a space character

Parameters
bufoutput buffer where the string-representation will be stored
lastlast item to write to in the output buffer
arraypointer to the integer-arrays that is read from
nelemsthe number of elements the array holds.
typethe type of elements the array holds (eg INT8, UINT16, etc.)

Implements SettingDesc.

Definition at line 322 of file settings.cpp.

References SaveLoad::conv, GetVariableAddress(), GetVarMemType(), SaveLoad::length, and SettingDesc::save.

◆ IsDefaultValue()

bool ListSettingDesc::IsDefaultValue ( void *  object) const
overridevirtual

Check whether the value is the same as the default value.

Parameters
objectThe object the setting is in.
Returns
true iff the value is the default value.

Implements SettingDesc.

Definition at line 803 of file settings.cpp.

◆ IsSameValue()

bool ListSettingDesc::IsSameValue ( const IniItem item,
void *  object 
) const
overridevirtual

Check whether the value in the Ini item is the same as is saved in this setting in the object.

It might be that determining whether the value is the same is way more expensive than just writing the value. In those cases this function may unconditionally return false even though the value might be the same as in the Ini item.

Parameters
itemThe Ini item with the content of this setting.
objectThe object the setting is in.
Returns
True if the value is definitely the same (might be false when the same).

Implements SettingDesc.

Definition at line 797 of file settings.cpp.

◆ ParseValue()

void ListSettingDesc::ParseValue ( const IniItem item,
void *  object 
) const
overridevirtual

Parse/read the value from the Ini item into the setting associated with this object.

Parameters
itemThe Ini item with the content of this setting.
objectThe object the setting is in.

Implements SettingDesc.

Definition at line 668 of file settings.cpp.

References _settings_error_list, SaveLoad::conv, def, SettingDesc::GetName(), GetVariableAddress(), GetVarMemType(), SaveLoad::length, LoadIntList(), SettingDesc::save, ErrorMessageData::SetDParamStr(), and IniItem::value.

◆ ResetToDefault()

void ListSettingDesc::ResetToDefault ( void *  object) const
overridevirtual

Reset the setting to its default value.

Implements SettingDesc.

Definition at line 809 of file settings.cpp.

Field Documentation

◆ def

const char* ListSettingDesc::def

default value given when none is present

Definition at line 364 of file settings_internal.h.

Referenced by ParseValue().


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