| 935 | } |
| 936 | |
| 937 | void OnQueryTextFinished(std::optional<std::string> str) override |
| 938 | { |
| 939 | /* Was 'cancel' pressed? */ |
| 940 | if (!str.has_value()) return; |
| 941 | |
| 942 | int32_t value; |
| 943 | if (!str->empty()) { |
| 944 | auto val = ParseInteger<int32_t>(*str, 10, true); |
| 945 | if (!val.has_value()) return; |
| 946 | value = *val; |
| 947 | } else { |
| 948 | /* An empty string means revert to the default */ |
| 949 | switch (this->widget_id) { |
| 950 | case WID_GL_HEIGHTMAP_HEIGHT_TEXT: value = MAP_HEIGHT_LIMIT_AUTO_MINIMUM; break; |
| 951 | case WID_GL_START_DATE_TEXT: value = CalendarTime::DEF_START_YEAR.base(); break; |
| 952 | case WID_GL_SNOW_COVERAGE_TEXT: value = DEF_SNOW_COVERAGE; break; |
| 953 | case WID_GL_DESERT_COVERAGE_TEXT: value = DEF_DESERT_COVERAGE; break; |
| 954 | case WID_GL_TOWN_PULLDOWN: value = 1; break; |
| 955 | case WID_GL_INDUSTRY_PULLDOWN: value = 1; break; |
| 956 | case WID_GL_TERRAIN_PULLDOWN: value = MIN_MAP_HEIGHT_LIMIT; break; |
| 957 | case WID_GL_WATER_PULLDOWN: value = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE; break; |
| 958 | default: NOT_REACHED(); |
| 959 | } |
| 960 | } |
| 961 | |
| 962 | switch (this->widget_id) { |
| 963 | case WID_GL_HEIGHTMAP_HEIGHT_TEXT: |
| 964 | this->SetWidgetDirty(WID_GL_HEIGHTMAP_HEIGHT_TEXT); |
| 965 | _settings_newgame.game_creation.heightmap_height = Clamp(value, MIN_HEIGHTMAP_HEIGHT, GetMapHeightLimit()); |
| 966 | break; |
| 967 | |
| 968 | case WID_GL_START_DATE_TEXT: |
| 969 | this->SetWidgetDirty(WID_GL_START_DATE_TEXT); |
| 970 | _settings_newgame.game_creation.starting_year = Clamp(TimerGameCalendar::Year(value), CalendarTime::MIN_YEAR, CalendarTime::MAX_YEAR); |
| 971 | break; |
| 972 | |
| 973 | case WID_GL_SNOW_COVERAGE_TEXT: |
| 974 | this->SetWidgetDirty(WID_GL_SNOW_COVERAGE_TEXT); |
| 975 | _settings_newgame.game_creation.snow_coverage = Clamp(value, 0, 100); |
| 976 | break; |
| 977 | |
| 978 | case WID_GL_DESERT_COVERAGE_TEXT: |
| 979 | this->SetWidgetDirty(WID_GL_DESERT_COVERAGE_TEXT); |
| 980 | _settings_newgame.game_creation.desert_coverage = Clamp(value, 0, 100); |
| 981 | break; |
| 982 | |
| 983 | case WID_GL_TOWN_PULLDOWN: |
| 984 | _settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER); |
| 985 | break; |
| 986 | |
| 987 | case WID_GL_INDUSTRY_PULLDOWN: |
| 988 | _settings_newgame.game_creation.custom_industry_number = Clamp(value, 1, IndustryPool::MAX_SIZE); |
| 989 | break; |
| 990 | |
| 991 | case WID_GL_TERRAIN_PULLDOWN: |
| 992 | _settings_newgame.game_creation.custom_terrain_type = Clamp(value, MIN_CUSTOM_TERRAIN_TYPE, GetMapHeightLimit()); |
| 993 | break; |
| 994 |
nothing calls this directly
no test coverage detected