src/genworld_gui.cpp
branchgamebalance
changeset 9911 0b8b245a2391
parent 9909 dce9a6923bb7
equal deleted inserted replaced
9910:0b2aebc8283e 9911:0b8b245a2391
   197 		case GLWP_SCENARIO:  _switch_mode = SM_EDITOR; break;
   197 		case GLWP_SCENARIO:  _switch_mode = SM_EDITOR; break;
   198 		default: NOT_REACHED();
   198 		default: NOT_REACHED();
   199 	}
   199 	}
   200 }
   200 }
   201 
   201 
   202 static void HeightmapScaledTooMuchCallback(Window *w, bool confirmed)
   202 static void LandscapeGenerationCallback(Window *w, bool confirmed)
   203 {
   203 {
   204 	if (confirmed) StartGeneratingLandscape((glwp_modes)w->window_number);
   204 	if (confirmed) StartGeneratingLandscape((glwp_modes)w->window_number);
   205 }
   205 }
   206 
   206 
   207 static void GenerateLandscapeWndProc(Window *w, WindowEvent *e)
   207 static void GenerateLandscapeWndProc(Window *w, WindowEvent *e)
   211 	static const StringID sea_lakes[]   = {STR_VERY_LOW, STR_6820_LOW, STR_6821_MEDIUM, STR_6822_HIGH, INVALID_STRING_ID};
   211 	static const StringID sea_lakes[]   = {STR_VERY_LOW, STR_6820_LOW, STR_6821_MEDIUM, STR_6822_HIGH, INVALID_STRING_ID};
   212 	static const StringID smoothness[]  = {STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH, INVALID_STRING_ID};
   212 	static const StringID smoothness[]  = {STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH, STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH, INVALID_STRING_ID};
   213 	static const StringID tree_placer[] = {STR_CONFIG_PATCHES_TREE_PLACER_NONE, STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL, STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED, INVALID_STRING_ID};
   213 	static const StringID tree_placer[] = {STR_CONFIG_PATCHES_TREE_PLACER_NONE, STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL, STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED, INVALID_STRING_ID};
   214 	static const StringID rotation[]    = {STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE, INVALID_STRING_ID};
   214 	static const StringID rotation[]    = {STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE, STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE, INVALID_STRING_ID};
   215 	static const StringID landscape[]   = {STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL, STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS, INVALID_STRING_ID};
   215 	static const StringID landscape[]   = {STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL, STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS, INVALID_STRING_ID};
   216 	static const StringID num_towns[]   = {STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
   216 	static const StringID num_towns[]   = {STR_NUM_VERY_LOW, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
   217 	static const StringID num_inds[]    = {STR_26816_NONE, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
   217 	static const StringID num_inds[]    = {STR_26816_NONE, STR_NUM_VERY_LOW, STR_6816_LOW, STR_6817_NORMAL, STR_6818_HIGH, INVALID_STRING_ID};
   218 
   218 
   219 	/* Data used for the generate seed edit box */
   219 	/* Data used for the generate seed edit box */
   220 	static querystr_d _genseed_query;
   220 	static querystr_d _genseed_query;
   221 	static char _genseed_buffer[11];
   221 	static char _genseed_buffer[11];
   222 
   222 
   352 			snprintf(_genseed_buffer, lengthof(_genseed_buffer), "%u", _patches_newgame.generation_seed);
   352 			snprintf(_genseed_buffer, lengthof(_genseed_buffer), "%u", _patches_newgame.generation_seed);
   353 			UpdateTextBufferSize(&_genseed_query.text);
   353 			UpdateTextBufferSize(&_genseed_query.text);
   354 			SetWindowDirty(w);
   354 			SetWindowDirty(w);
   355 			break;
   355 			break;
   356 		case GLAND_GENERATE_BUTTON: // Generate
   356 		case GLAND_GENERATE_BUTTON: // Generate
   357 			if (mode == GLWP_HEIGHTMAP && (
   357 
   358 					_heightmap_x * 2 < (1U << _patches_newgame.map_x) || _heightmap_x / 2 > (1U << _patches_newgame.map_x) ||
   358 			UpdatePatches();
   359 					_heightmap_y * 2 < (1U << _patches_newgame.map_y) || _heightmap_y / 2 > (1U << _patches_newgame.map_y))) {
   359 
       
   360 			if (_patches.town_layout == TL_NO_ROADS) {
       
   361 				ShowQuery(
       
   362 					STR_TOWN_LAYOUT_WARNING_CAPTION,
       
   363 					STR_TOWN_LAYOUT_WARNING_MESSAGE,
       
   364 					w,
       
   365 					LandscapeGenerationCallback);
       
   366 			} else if (mode == GLWP_HEIGHTMAP &&
       
   367 					(_heightmap_x * 2 < (1U << _patches_newgame.map_x) ||
       
   368 					_heightmap_x / 2 > (1U << _patches_newgame.map_x) ||
       
   369 					_heightmap_y * 2 < (1U << _patches_newgame.map_y) ||
       
   370 					_heightmap_y / 2 > (1U << _patches_newgame.map_y))) {
   360 				ShowQuery(
   371 				ShowQuery(
   361 					STR_HEIGHTMAP_SCALE_WARNING_CAPTION,
   372 					STR_HEIGHTMAP_SCALE_WARNING_CAPTION,
   362 					STR_HEIGHTMAP_SCALE_WARNING_MESSAGE,
   373 					STR_HEIGHTMAP_SCALE_WARNING_MESSAGE,
   363 					w,
   374 					w,
   364 					HeightmapScaledTooMuchCallback);
   375 					LandscapeGenerationCallback);
       
   376 
   365 			} else {
   377 			} else {
   366 				StartGeneratingLandscape(mode);
   378 				StartGeneratingLandscape(mode);
   367 			}
   379 			}
   368 			break;
   380 			break;
   369 		case GLAND_START_DATE_DOWN: case GLAND_START_DATE_UP: // Year buttons
   381 		case GLAND_START_DATE_DOWN: case GLAND_START_DATE_UP: // Year buttons
   543 	_ShowGenerateLandscape(GLWP_HEIGHTMAP);
   555 	_ShowGenerateLandscape(GLWP_HEIGHTMAP);
   544 }
   556 }
   545 
   557 
   546 void StartScenarioEditor()
   558 void StartScenarioEditor()
   547 {
   559 {
       
   560 	if (_patches_newgame.town_layout == TL_NO_ROADS) {
       
   561 		_patches_newgame.town_layout = TL_ORIGINAL;
       
   562 	}
       
   563 
   548 	StartGeneratingLandscape(GLWP_SCENARIO);
   564 	StartGeneratingLandscape(GLWP_SCENARIO);
   549 }
   565 }
   550 
   566 
   551 void StartNewGameWithoutGUI(uint seed)
   567 void StartNewGameWithoutGUI(uint seed)
   552 {
   568 {