mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r15689) -Fix [FS#2720]: do not crash when the generate map doesn't contain a suitable location for a town.
This commit is contained in:
parent
9dbf8a163f
commit
d5a2dc1d0b
|
@ -141,7 +141,10 @@ static void _GenerateWorld(void *arg)
|
|||
|
||||
/* only generate towns, tree and industries in newgame mode. */
|
||||
if (_game_mode != GM_EDITOR) {
|
||||
GenerateTowns(_settings_game.economy.town_layout);
|
||||
if (!GenerateTowns(_settings_game.economy.town_layout)) {
|
||||
HandleGeneratingWorldAbortion();
|
||||
return;
|
||||
}
|
||||
GenerateIndustries();
|
||||
GenerateUnmovables();
|
||||
GenerateTrees();
|
||||
|
@ -255,7 +258,10 @@ void HandleGeneratingWorldAbortion()
|
|||
|
||||
CleanupGeneration();
|
||||
|
||||
_gw.thread->Exit();
|
||||
if (_gw.thread != NULL) _gw.thread->Exit();
|
||||
|
||||
extern void SwitchToMode(SwitchMode new_mode);
|
||||
SwitchToMode(_switch_mode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1197,6 +1197,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT :{WHITE}Can't re
|
|||
STR_BUILD_AUTORAIL_TIP :{BLACK}Build railway track using the Autorail mode
|
||||
|
||||
STR_NO_TOWN_IN_SCENARIO :{WHITE}...there is no town in this scenario
|
||||
STR_COULD_NOT_CREATE_TOWN :{WHITE}Map generation aborted...{}...no suitable town locations
|
||||
|
||||
STR_MANY_RANDOM_TOWNS :{BLACK}Many random towns
|
||||
STR_RANDOM_TOWNS_TIP :{BLACK}Cover the map with randomly placed towns
|
||||
|
|
|
@ -1648,8 +1648,10 @@ bool GenerateTowns(TownLayout layout)
|
|||
/* give it a last try, but now more aggressive */
|
||||
if (num == 0 && CreateRandomTown(10000, TS_RANDOM, false, layout) == NULL) {
|
||||
if (GetNumTowns() == 0) {
|
||||
/* XXX - can we handle that more gracefully? */
|
||||
if (_game_mode != GM_EDITOR) usererror("Could not generate any town");
|
||||
if (_game_mode != GM_EDITOR) {
|
||||
extern StringID _switch_mode_errorstr;
|
||||
_switch_mode_errorstr = STR_COULD_NOT_CREATE_TOWN;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue