OpenTTD Source  12.0-beta2
ListSettingDesc Struct Reference

List/array settings. More...

#include <settings_internal.h>

Inheritance diagram for ListSettingDesc:
SettingDesc

Public Member Functions

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

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 288 of file settings_internal.h.

Member Function Documentation

◆ FormatValue()

void ListSettingDesc::FormatValue ( char *  buf,
const char *  last,
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 317 of file settings.cpp.

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

◆ 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 725 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 616 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.


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