summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index a99b196b4..df064499a 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -403,7 +403,7 @@ size_t IntSettingDesc::ParseValue(const char *str) const
size_t r = LookupOneOfMany(this->many, str);
/* if the first attempt of conversion from string to the appropriate value fails,
* look if we have defined a converter from old value to new value. */
- if (r == (size_t)-1 && this->proc_cnvt != nullptr) r = this->proc_cnvt(str);
+ if (r == (size_t)-1 && this->many_cnvt != nullptr) r = this->many_cnvt(str);
if (r != (size_t)-1) return r; // and here goes converted value
ErrorMessageData msg(STR_CONFIG_ERROR, STR_CONFIG_ERROR_INVALID_VALUE);
@@ -437,7 +437,7 @@ size_t IntSettingDesc::ParseValue(const char *str) const
default: NOT_REACHED();
}
- return (size_t)this->def;
+ return this->def;
}
/**
@@ -471,7 +471,7 @@ void IntSettingDesc::Write_ValidateSetting(const void *object, int32 val) const
val = Clamp(val, this->min, this->max);
} else if (val < this->min || val > (int32)this->max) {
/* Reset invalid discrete setting (where different values change gameplay) to its default value */
- val = (int32)(size_t)this->def;
+ val = this->def;
}
}
break;
@@ -485,7 +485,7 @@ void IntSettingDesc::Write_ValidateSetting(const void *object, int32 val) const
uval = ClampU(uval, this->min, this->max);
} else if (uval < (uint)this->min || uval > this->max) {
/* Reset invalid discrete setting to its default value */
- uval = (uint32)(size_t)this->def;
+ uval = (uint32)this->def;
}
}
WriteValue(ptr, SLE_VAR_U32, (int64)uval);
@@ -513,11 +513,11 @@ void StringSettingDesc::Write_ValidateSetting(const void *object, const char *st
case SLE_VAR_STR:
case SLE_VAR_STRQ:
if (str != nullptr) {
- if (this->max != 0 && strlen(str) >= this->max) {
+ if (this->max_length != 0 && strlen(str) >= this->max_length) {
/* In case a maximum length is imposed by the setting, the length
* includes the '\0' termination for network transfer purposes.
* Also ensure the string is valid after chopping of some bytes. */
- std::string stdstr(str, this->max - 1);
+ std::string stdstr(str, this->max_length - 1);
dst->assign(str_validate(stdstr, SVS_NONE));
} else {
dst->assign(str);
@@ -591,19 +591,19 @@ static void IniLoadSettings(IniFile *ini, const SettingTable &settings_table, co
void IntSettingDesc::ParseValue(const IniItem *item, void *object) const
{
- size_t val = (item == nullptr) ? (size_t)this->def : this->ParseValue(item->value.has_value() ? item->value->c_str() : "");
+ size_t val = (item == nullptr) ? this->def : this->ParseValue(item->value.has_value() ? item->value->c_str() : "");
this->Write_ValidateSetting(object, (int32)val);
}
void StringSettingDesc::ParseValue(const IniItem *item, void *object) const
{
- const char *str = (item == nullptr) ? (const char *)this->def : item->value.has_value() ? item->value->c_str() : nullptr;
+ const char *str = (item == nullptr) ? this->def : item->value.has_value() ? item->value->c_str() : nullptr;
this->Write_ValidateSetting(object, str);
}
void ListSettingDesc::ParseValue(const IniItem *item, void *object) const
{
- const char *str = (item == nullptr) ? (const char *)this->def : item->value.has_value() ? item->value->c_str() : nullptr;
+ const char *str = (item == nullptr) ? this->def : item->value.has_value() ? item->value->c_str() : nullptr;
void *ptr = GetVariableAddress(object, &this->save);
if (!LoadIntList(str, ptr, this->save.length, GetVarMemType(this->save.conv))) {
ErrorMessageData msg(STR_CONFIG_ERROR, STR_CONFIG_ERROR_ARRAY);
@@ -611,7 +611,7 @@ void ListSettingDesc::ParseValue(const IniItem *item, void *object) const
_settings_error_list.push_back(msg);
/* Use default */
- LoadIntList((const char*)this->def, ptr, this->save.length, GetVarMemType(this->save.conv));
+ LoadIntList(this->def, ptr, this->save.length, GetVarMemType(this->save.conv));
}
}
@@ -2053,7 +2053,7 @@ void SetDefaultCompanySettings(CompanyID cid)
Company *c = Company::Get(cid);
for (auto &sd : _company_settings) {
const IntSettingDesc *int_setting = sd->AsIntSetting();
- int_setting->Write_ValidateSetting(&c->settings, (int32)(size_t)int_setting->def);
+ int_setting->Write_ValidateSetting(&c->settings, int_setting->def);
}
}
@@ -2212,11 +2212,12 @@ void IConsoleGetSetting(const char *name, bool force_newgame)
if (sd->cmd == SDT_STDSTRING) {
const void *ptr = GetVariableAddress(object, &sd->save);
IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s'", name, reinterpret_cast<const std::string *>(ptr)->c_str());
- } else {
+ } else if (sd->IsIntSetting()) {
char value[20];
sd->FormatValue(value, lastof(value), object);
+ const IntSettingDesc *int_setting = sd->AsIntSetting();
IConsolePrintF(CC_WARNING, "Current value for '%s' is: '%s' (min: %s%d, max: %u)",
- name, value, (sd->flags & SGF_0ISDISABLED) ? "(0) " : "", sd->min, sd->max);
+ name, value, (sd->flags & SGF_0ISDISABLED) ? "(0) " : "", int_setting->min, int_setting->max);
}
}