MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / OnQueryTextFinished

Method OnQueryTextFinished

src/genworld_gui.cpp:937–1001  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 7

NOT_REACHEDFunction · 0.85
ClampFunction · 0.85
GetMapHeightLimitFunction · 0.85
SetWidgetDirtyMethod · 0.80
emptyMethod · 0.45
baseMethod · 0.45
InvalidateDataMethod · 0.45

Tested by

no test coverage detected