File diff r8933:d98e0783fa25 → r8934:d5858392238b
src/genworld.cpp
Show inline comments
 
@@ -84,7 +84,7 @@ bool IsGenerateWorldThreaded()
 
/**
 
 * The internal, real, generate function.
 
 */
 
static void *_GenerateWorld(void *arg)
 
static void * CDECL _GenerateWorld(void *arg)
 
{
 
	_generating_world = true;
 
	if (_network_dedicated) DEBUG(net, 0, "Generating map, please wait...");
 
@@ -194,7 +194,7 @@ void WaitTillGeneratedWorld()
 
{
 
	if (_gw.thread == NULL) return;
 
	_gw.quit_thread = true;
 
	OTTDJoinThread((OTTDThread*)_gw.thread);
 
	_gw.thread->Join();
 
	_gw.thread   = NULL;
 
	_gw.threaded = false;
 
}
 
@@ -228,6 +228,8 @@ void HandleGeneratingWorldAbortion()
 
	if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
 
	/* Show all vital windows again, because we have hidden them */
 
	if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows();
 

	
 
	ThreadObject *thread = _gw.thread;
 
	_gw.active   = false;
 
	_gw.thread   = NULL;
 
	_gw.proc     = NULL;
 
@@ -237,7 +239,7 @@ void HandleGeneratingWorldAbortion()
 
	DeleteWindowById(WC_GENERATE_PROGRESS_WINDOW, 0);
 
	MarkWholeScreenDirty();
 

	
 
	OTTDExitThread();
 
	thread->Exit();
 
}
 

	
 
/**
 
@@ -282,7 +284,7 @@ void GenerateWorld(int mode, uint size_x
 
	SetupColorsAndInitialWindow();
 

	
 
	if (_network_dedicated ||
 
	    (_gw.thread = OTTDCreateThread(&_GenerateWorld, NULL)) == NULL) {
 
	    (_gw.thread = ThreadObject::New(&_GenerateWorld, NULL)) == NULL) {
 
		DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode");
 
		_gw.threaded = false;
 
		_GenerateWorld(NULL);