Fix load check of a savegame with realistic braking enabled triggering signal checks on current game

pull/393/head
Jonathan G Rennison 2 years ago
parent 13cdef2a2d
commit 730b84e262

@ -463,7 +463,7 @@ size_t BoolSettingDesc::ParseValue(const char *str) const
static bool ValidateEnumSetting(const IntSettingDesc *sdb, int32 &val)
{
if (sdb->pre_check != nullptr && !sdb->pre_check(val)) return false;
if (sdb->flags & SF_ENUM_PRE_CB_VALIDATE && sdb->pre_check != nullptr && !sdb->pre_check(val)) return false;
for (const SettingDescEnumEntry *enumlist = sdb->enumlist; enumlist != nullptr && enumlist->str != STR_NULL; enumlist++) {
if (enumlist->val == val) {
return true;

@ -34,6 +34,7 @@ enum SettingFlag : uint32 {
SF_RUN_CALLBACKS_ON_PARSE = 1 << 17, ///< run callbacks when parsing from config file
SF_GUI_VELOCITY = 1 << 18, ///< setting value is a velocity
SF_GUI_ADVISE_DEFAULT = 1 << 19, ///< Advise the user to leave this setting at its default value
SF_ENUM_PRE_CB_VALIDATE = 1 << 20, ///< Call the pre_check callback for enum incoming value validation
};
DECLARE_ENUM_AS_BIT_SET(SettingFlag)

@ -436,6 +436,7 @@ cat = SC_BASIC
var = difficulty.town_council_tolerance
type = SLE_UINT8
from = SLV_97
flags = SF_ENUM_PRE_CB_VALIDATE
def = 0
enumlist = _town_council_approval
str = STR_CONFIG_SETTING_CITY_APPROVAL

Loading…
Cancel
Save