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 |