Fix load check of a savegame with realistic braking enabled triggering signal checks on current game
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user