Changeset - r11334:9b432ad28773
[Not reviewed]
master
0 3 0
rubidium - 15 years ago 2009-03-12 15:14:22
rubidium@openttd.org
(svn r15689) -Fix [FS#2720]: do not crash when the generate map doesn't contain a suitable location for a town.
3 files changed with 13 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/genworld.cpp
Show inline comments
 
@@ -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);
 
}
 

	
 
/**
src/lang/english.txt
Show inline comments
 
@@ -1197,6 +1197,7 @@ STR_CANT_REMOVE_TRAIN_WAYPOINT          
 
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
src/town_cmd.cpp
Show inline comments
 
@@ -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;
 
		}
0 comments (0 inline, 0 general)