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)
|
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++) {
|
for (const SettingDescEnumEntry *enumlist = sdb->enumlist; enumlist != nullptr && enumlist->str != STR_NULL; enumlist++) {
|
||||||
if (enumlist->val == val) {
|
if (enumlist->val == val) {
|
||||||
return true;
|
return true;
|
||||||
|
@@ -34,6 +34,7 @@ enum SettingFlag : uint32 {
|
|||||||
SF_RUN_CALLBACKS_ON_PARSE = 1 << 17, ///< run callbacks when parsing from config file
|
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_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_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)
|
DECLARE_ENUM_AS_BIT_SET(SettingFlag)
|
||||||
|
|
||||||
|
@@ -436,6 +436,7 @@ cat = SC_BASIC
|
|||||||
var = difficulty.town_council_tolerance
|
var = difficulty.town_council_tolerance
|
||||||
type = SLE_UINT8
|
type = SLE_UINT8
|
||||||
from = SLV_97
|
from = SLV_97
|
||||||
|
flags = SF_ENUM_PRE_CB_VALIDATE
|
||||||
def = 0
|
def = 0
|
||||||
enumlist = _town_council_approval
|
enumlist = _town_council_approval
|
||||||
str = STR_CONFIG_SETTING_CITY_APPROVAL
|
str = STR_CONFIG_SETTING_CITY_APPROVAL
|
||||||
|
Reference in New Issue
Block a user