diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 7d2f12c88c..721f4d643f 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -782,6 +782,9 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Show travel tim STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT_EXTRA :{STRING}{}Various features require use of the YAPF pathfinder, including: routing restrictions (all pathfinder and reservation related actions), reverse at waypoint/signal and drive through train depots. +STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_CALENDAR :{RED}[Setting disabled in calendar timekeeping mode] +STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_WALLCLOCK :{RED}[Setting disabled in wallclock timekeeping mode] + STR_CHEAT_EDIT_MONEY_QUERY_CAPT :{WHITE}Increase or decrease money STR_CHEAT_INFLATION_COST :{LTBLUE}Change inflation cost factor: {ORANGE}{DECIMAL} STR_CHEAT_INFLATION_COST_QUERY_CAPT :{WHITE}Change inflation cost factor diff --git a/src/settings.cpp b/src/settings.cpp index f053fb5479..3f25c15804 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2259,7 +2259,7 @@ static bool TownCargoScaleGUI(SettingOnGuiCtrlData &data) { switch (data.type) { case SOGCT_VALUE_DPARAMS: - SetDParam(data.offset, STR_CONFIG_SETTING_CARGO_SCALE_VALUE_MONTHLY + GetGameSettings().economy.town_cargo_scale_mode); + if (!EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) SetDParam(data.offset, STR_CONFIG_SETTING_CARGO_SCALE_VALUE_MONTHLY + GetGameSettings().economy.town_cargo_scale_mode); return true; default: @@ -2276,7 +2276,7 @@ static bool IndustryCargoScaleGUI(SettingOnGuiCtrlData &data) return true; case SOGCT_VALUE_DPARAMS: - SetDParam(data.offset, STR_CONFIG_SETTING_CARGO_SCALE_VALUE_MONTHLY + GetGameSettings().economy.industry_cargo_scale_mode); + if (!EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) SetDParam(data.offset, STR_CONFIG_SETTING_CARGO_SCALE_VALUE_MONTHLY + GetGameSettings().economy.industry_cargo_scale_mode); return true; default: @@ -2292,6 +2292,38 @@ static bool IndustryCargoScaleModeGUI(SettingOnGuiCtrlData &data) data.text = STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_MODE_HELPTEXT_EXTRA; return true; + default: + return WallclockModeDisabledGUI(data); + } +} + +static bool CalendarModeDisabledGUI(SettingOnGuiCtrlData &data) +{ + switch (data.type) { + case SOGCT_VALUE_DPARAMS: + if (!EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) SetDParam(data.offset, STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_CALENDAR); + return true; + + case SOGCT_GUI_DISABLE: + if (!EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) data.val = 1; + return true; + + default: + return false; + } +} + +static bool WallclockModeDisabledGUI(SettingOnGuiCtrlData &data) +{ + switch (data.type) { + case SOGCT_VALUE_DPARAMS: + if (EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) SetDParam(data.offset, STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_WALLCLOCK); + return true; + + case SOGCT_GUI_DISABLE: + if (EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) data.val = 1; + return true; + default: return false; } diff --git a/src/table/settings/economy_settings.ini b/src/table/settings/economy_settings.ini index aed82aa06f..04f7808c43 100644 --- a/src/table/settings/economy_settings.ini +++ b/src/table/settings/economy_settings.ini @@ -25,6 +25,8 @@ static bool OrderTownGrowthRate(SettingOnGuiCtrlData &data); static bool TownCargoScaleGUI(SettingOnGuiCtrlData &data); static bool IndustryCargoScaleGUI(SettingOnGuiCtrlData &data); static bool IndustryCargoScaleModeGUI(SettingOnGuiCtrlData &data); +static bool CalendarModeDisabledGUI(SettingOnGuiCtrlData &data); +static bool WallclockModeDisabledGUI(SettingOnGuiCtrlData &data); static const SettingTable _economy_settings{ [post-amble] @@ -234,6 +236,7 @@ strval = STR_JUST_COMMA post_cb = DayLengthChanged cat = SC_BASIC extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH) +guiproc = WallclockModeDisabledGUI patxname = ""variable_day_length.economy.day_length_factor"" [SDT_BOOL] @@ -736,6 +739,7 @@ strval = STR_CONFIG_SETTING_MINUTES_PER_YEAR_VALUE pre_cb = [](auto) { return _game_mode == GM_MENU || _settings_game.economy.timekeeping_units == 1; } post_cb = ChangeMinutesPerYear cat = SC_BASIC +guiproc = CalendarModeDisabledGUI [SDT_VAR] var = economy.town_cargo_scale @@ -778,6 +782,7 @@ strhelp = STR_CONFIG_SETTING_CARGO_SCALE_MODE_HELPTEXT strval = STR_CONFIG_SETTING_CARGO_SCALE_MODE_MONTHLY cat = SC_BASIC post_cb = [](auto) { InvalidateWindowClassesData(WC_GAME_OPTIONS); UpdateCargoScalers(); } +guiproc = WallclockModeDisabledGUI [SDT_VAR] var = economy.industry_cargo_scale_mode @@ -841,6 +846,7 @@ strhelp = STR_CONFIG_SETTING_TICK_RATE_HELPTEXT strval = STR_CONFIG_SETTING_TICK_RATE_TRADITIONAL cat = SC_EXPERT post_cb = [](auto) { SetupTickRate(); } +guiproc = WallclockModeDisabledGUI patxname = ""economy.tick_rate"" ## Old settings