OpenTTD Source
12.0-beta2
|
One of many setting. More...
#include <settings_internal.h>
Public Types | |
typedef size_t | OnConvert(const char *value) |
callback prototype for conversion error | |
![]() | |
typedef bool | PreChangeCheck(int32 &value) |
A check to be performed before the setting gets changed. More... | |
typedef void | PostChangeCallback(int32 value) |
A callback to denote that a setting has been changed. More... | |
Public Member Functions | |
OneOfManySettingDesc (SaveLoad save, SettingFlag flags, bool startup, int32 def, int32 max, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, std::initializer_list< const char * > many, OnConvert *many_cnvt) | |
char * | FormatSingleValue (char *buf, const char *last, uint id) const |
size_t | ParseValue (const char *str) const override |
Convert a string representation (external) of an integer-like setting to an integer. More... | |
void | FormatValue (char *buf, const char *last, const void *object) const override |
Format the value of the setting associated with this object. More... | |
![]() | |
IntSettingDesc (SaveLoad save, SettingFlag flags, bool startup, int32 def, int32 min, uint32 max, int32 interval, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback) | |
virtual bool | IsBoolSetting () const |
Check whether this setting is a boolean type setting. More... | |
bool | IsIntSetting () const override |
Check whether this setting is an integer type setting. More... | |
void | ChangeValue (const void *object, int32 newvalue) const |
Handle changing a value. More... | |
void | MakeValueValidAndWrite (const void *object, int32 value) const |
Make the value valid and then write it to the setting. 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... | |
int32 | Read (const void *object) const |
Read the integer from the the actual setting. More... | |
![]() | |
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 | 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... | |
Static Public Member Functions | |
static size_t | ParseSingleValue (const char *str, size_t len, const std::vector< std::string > &many) |
Find the index value of a ONEofMANY type in a string separated by |. More... | |
Data Fields | |
std::vector< std::string > | many |
possible values for this type | |
OnConvert * | many_cnvt |
callback procedure when loading value mechanism fails | |
![]() | |
int32 | def |
default value given when none is present | |
int32 | min |
minimum values | |
uint32 | max |
maximum values | |
int32 | interval |
the interval to use between settings in the 'settings' window. If interval is '0' the interval is dynamically determined | |
StringID | str |
(translated) string with descriptive text; gui and console | |
StringID | str_help |
(Translated) string with help text; gui only. | |
StringID | str_val |
(Translated) first string describing the value. | |
SettingCategory | cat |
assigned categories of the setting | |
PreChangeCheck * | pre_check |
Callback to check for the validity of the setting. | |
PostChangeCallback * | post_callback |
Callback when the setting has been changed. | |
![]() | |
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). | |
One of many setting.
Definition at line 207 of file settings_internal.h.
|
overridevirtual |
Format the value of the setting associated with this object.
buf | The before of the buffer to format into. |
last | The end of the buffer to format into. |
object | The object the setting is in. |
Reimplemented from IntSettingDesc.
Reimplemented in ManyOfManySettingDesc.
Definition at line 349 of file settings.cpp.
|
static |
Find the index value of a ONEofMANY type in a string separated by |.
str | the current value of the setting for which a value needs found |
len | length of the string |
many | full domain of values the ONEofMANY setting can have |
Definition at line 172 of file settings.cpp.
References many, and IntSettingDesc::str.
Referenced by ConvertLandscape(), LookupManyOfMany(), and ParseValue().
|
overridevirtual |
Convert a string representation (external) of an integer-like setting to an integer.
str | Input string that will be parsed based on the type of desc. |
Reimplemented from IntSettingDesc.
Reimplemented in ManyOfManySettingDesc.
Definition at line 390 of file settings.cpp.
References _settings_error_list, IntSettingDesc::def, SettingDesc::GetName(), many, many_cnvt, ParseSingleValue(), ErrorMessageData::SetDParamStr(), and IntSettingDesc::str.