OpenTTD Source: ListSettingDesc Struct Reference

OpenTTD Source 12.2

Public Member Functions | Data Fields
ListSettingDesc Struct Reference

List/array settings. More...

`#include <settings_internal.h>`

Inheritance diagram for ListSettingDesc:

## 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 IntSettingDesc * | AsIntSetting () const
| Get the setting description of this setting as an integer setting. More...
const struct StringSettingDesc * | AsStringSetting () 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

  buf | output buffer where the string-representation will be stored
  last | last item to write to in the output buffer
  array | pointer to the integer-arrays that is read from
  nelems | the number of elements the array holds.
  type | the type of elements the array holds (eg INT8, UINT16, etc.)

Implements SettingDesc.

Definition at line 318 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

  item | The Ini item with the content of this setting.
  object | The 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 730 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

  item | The Ini item with the content of this setting.
  object | The object the setting is in.

Implements SettingDesc.

Definition at line 621 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:

- src/settings_internal.h
- src/settings.cpp