Hide unused climate threshold settings depending on climate threshold mode

pull/239/head
Jonathan G Rennison 3 years ago
parent 40203b090f
commit 34e9c22c3d

@ -1495,6 +1495,7 @@ static bool InvalidateAllVehicleImageCaches(int32 p1)
static bool ClimateThresholdModeChanged(int32 p1) static bool ClimateThresholdModeChanged(int32 p1)
{ {
InvalidateWindowClassesData(WC_GENERATE_LANDSCAPE); InvalidateWindowClassesData(WC_GENERATE_LANDSCAPE);
InvalidateWindowClassesData(WC_GAME_OPTIONS);
return true; return true;
} }

@ -1922,10 +1922,13 @@ static SettingsContainer &GetSettingsTree()
genworld->Add(new SettingEntry("game_creation.tgen_smoothness")); genworld->Add(new SettingEntry("game_creation.tgen_smoothness"));
genworld->Add(new SettingEntry("game_creation.variety")); genworld->Add(new SettingEntry("game_creation.variety"));
genworld->Add(new SettingEntry("game_creation.climate_threshold_mode")); genworld->Add(new SettingEntry("game_creation.climate_threshold_mode"));
genworld->Add(new SettingEntry("game_creation.snow_coverage")); auto coverage_hide = []() -> bool { return GetGameSettings().game_creation.climate_threshold_mode != 0; };
genworld->Add(new SettingEntry("game_creation.snow_line_height")); auto snow_line_height_hide = []() -> bool { return GetGameSettings().game_creation.climate_threshold_mode != 1 && _game_mode == GM_MENU; };
genworld->Add(new SettingEntry("game_creation.desert_coverage")); auto rainforest_line_height_hide = []() -> bool { return GetGameSettings().game_creation.climate_threshold_mode != 1; };
genworld->Add(new SettingEntry("game_creation.rainforest_line_height")); genworld->Add(new ConditionallyHiddenSettingEntry("game_creation.snow_coverage", coverage_hide));
genworld->Add(new ConditionallyHiddenSettingEntry("game_creation.snow_line_height", snow_line_height_hide));
genworld->Add(new ConditionallyHiddenSettingEntry("game_creation.desert_coverage", coverage_hide));
genworld->Add(new ConditionallyHiddenSettingEntry("game_creation.rainforest_line_height", rainforest_line_height_hide));
genworld->Add(new SettingEntry("game_creation.amount_of_rivers")); genworld->Add(new SettingEntry("game_creation.amount_of_rivers"));
SettingsPage *rivers = genworld->Add(new SettingsPage(STR_CONFIG_SETTING_GENWORLD_RIVERS_LAKES)); SettingsPage *rivers = genworld->Add(new SettingsPage(STR_CONFIG_SETTING_GENWORLD_RIVERS_LAKES));
{ {

Loading…
Cancel
Save