OpenTTD Source
20241124-master-g9399a92a4f
|
One of many setting. More...
#include <settings_internal.h>
Public Types | |
typedef size_t | OnConvert(const char *value) |
callback prototype for conversion error | |
Public Types inherited from IntSettingDesc | |
typedef StringID | GetTitleCallback(const IntSettingDesc &sd) |
typedef StringID | GetHelpCallback(const IntSettingDesc &sd) |
typedef void | SetValueDParamsCallback(const IntSettingDesc &sd, uint first_param, int32_t value) |
typedef bool | PreChangeCheck(int32_t &value) |
A check to be performed before the setting gets changed. More... | |
typedef void | PostChangeCallback(int32_t value) |
A callback to denote that a setting has been changed. More... | |
typedef int32_t | GetDefaultValueCallback() |
A callback to get the correct default value. More... | |
Public Member Functions | |
OneOfManySettingDesc (const SaveLoad &save, SettingFlag flags, bool startup, int32_t def, int32_t max, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb, GetDefaultValueCallback get_def_cb, std::initializer_list< const char * > many, OnConvert *many_cnvt) | |
std::string | FormatSingleValue (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... | |
std::string | FormatValue (const void *object) const override |
Format the value of the setting associated with this object. More... | |
Public Member Functions inherited from IntSettingDesc | |
template<typename Tdef , typename Tmin , typename Tmax , typename Tinterval , std::enable_if_t< std::disjunction_v< std::is_convertible< Tdef, int32_t >, std::is_base_of< StrongTypedefBase, Tdef >>, int > = 0, std::enable_if_t< std::disjunction_v< std::is_convertible< Tmin, int32_t >, std::is_base_of< StrongTypedefBase, Tmin >>, int > = 0, std::enable_if_t< std::disjunction_v< std::is_convertible< Tmax, uint32_t >, std::is_base_of< StrongTypedefBase, Tmax >>, int > = 0, std::enable_if_t< std::disjunction_v< std::is_convertible< Tinterval, int32_t >, std::is_base_of< StrongTypedefBase, Tinterval >>, int > = 0> | |
IntSettingDesc (const SaveLoad &save, SettingFlag flags, bool startup, Tdef def, Tmin min, Tmax max, Tinterval interval, StringID str, StringID str_help, StringID str_val, SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback, GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb, GetDefaultValueCallback get_def_cb) | |
StringID | GetTitle () const |
Get the title of the setting. More... | |
StringID | GetHelp () const |
Get the help text of the setting. More... | |
void | SetValueDParams (uint first_param, int32_t value) const |
Set the DParams for drawing the value of the setting. More... | |
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_t newvalue) const |
Handle changing a value. More... | |
void | MakeValueValidAndWrite (const void *object, int32_t 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... | |
bool | IsDefaultValue (void *object) const override |
Check whether the value is the same as the default value. More... | |
void | ResetToDefault (void *object) const override |
Reset the setting to its default value. | |
int32_t | Read (const void *object) const |
Read the integer from the the actual setting. More... | |
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. 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 | |
Data Fields inherited from IntSettingDesc | |
int32_t | def |
default value given when none is present | |
int32_t | min |
minimum values | |
uint32_t | max |
maximum values | |
int32_t | 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. | |
GetTitleCallback * | get_title_cb |
GetHelpCallback * | get_help_cb |
SetValueDParamsCallback * | set_value_dparams_cb |
GetDefaultValueCallback * | get_def_cb |
Callback to set the correct default value. | |
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). | |
One of many setting.
Definition at line 279 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 353 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 185 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 398 of file settings.cpp.
References _settings_error_list, IntSettingDesc::def, SettingDesc::GetName(), many, many_cnvt, ParseSingleValue(), ErrorMessageData::SetDParamStr(), and IntSettingDesc::str.