summaryrefslogtreecommitdiff
path: root/src/settings_internal.h
diff options
context:
space:
mode:
authorrubidium42 <rubidium@openttd.org>2021-05-23 18:20:49 +0200
committerrubidium42 <rubidium42@users.noreply.github.com>2021-05-27 18:49:43 +0200
commit860003458fc17f02e44b50f98ef570aff824142a (patch)
tree0d89021118e70ba89e408908d289f31a18ad5667 /src/settings_internal.h
parent72ec81325b201931525e5c5f79abc6eb1de8d7a8 (diff)
downloadopenttd-860003458fc17f02e44b50f98ef570aff824142a.tar.xz
Codechange: make BoolSettingDesc its own sub class
Diffstat (limited to 'src/settings_internal.h')
-rw-r--r--src/settings_internal.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/settings_internal.h b/src/settings_internal.h
index 5e653ec65..1174a1f63 100644
--- a/src/settings_internal.h
+++ b/src/settings_internal.h
@@ -129,7 +129,7 @@ struct SettingDesc {
virtual bool IsSameValue(const IniItem *item, void *object) const = 0;
};
-/** Integer type, including boolean, settings. Only these are shown in the settings UI. */
+/** Base integer type, including boolean, settings. Only these are shown in the settings UI. */
struct IntSettingDesc : SettingDesc {
IntSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, SettingDescType cmd, bool startup, int32 def,
int32 min, uint32 max, int32 interval, StringID str, StringID str_help, StringID str_val,
@@ -153,12 +153,23 @@ struct IntSettingDesc : SettingDesc {
void ChangeValue(const void *object, int32 newvalue) const;
void Write_ValidateSetting(const void *object, int32 value) const;
- size_t ParseValue(const char *str) const;
+ virtual size_t ParseValue(const char *str) const;
void FormatValue(char *buf, const char *last, const void *object) const override;
void ParseValue(const IniItem *item, void *object) const override;
bool IsSameValue(const IniItem *item, void *object) const override;
};
+/** Boolean setting. */
+struct BoolSettingDesc : IntSettingDesc {
+ BoolSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, SettingDescType cmd, bool startup, bool def,
+ StringID str, StringID str_help, StringID str_val, SettingCategory cat, OnChange *proc) :
+ IntSettingDesc(save, name, flags, cmd, startup, def, 0, 1, 0, str, str_help, str_val, cat, proc) {}
+ virtual ~BoolSettingDesc() {}
+
+ size_t ParseValue(const char *str) const override;
+ void FormatValue(char *buf, const char *last, const void *object) const override;
+};
+
/** String settings. */
struct StringSettingDesc : SettingDesc {
StringSettingDesc(SaveLoad save, const char *name, SettingGuiFlag flags, SettingDescType cmd, bool startup, const char *def,