File diff r8933:d98e0783fa25 → r8934:d5858392238b
src/saveload.cpp
Show inline comments
 
@@ -1496,13 +1496,13 @@ void SaveFileError()
 
{
 
	SetDParamStr(0, GetSaveLoadErrorString());
 
	ShowErrorMessage(STR_012D, STR_NULL, 0, 0);
 
	SaveFileDone();
 
}
 

	
 
static OTTDThread* save_thread;
 
static ThreadObject *save_thread;
 

	
 
/** We have written the whole game into memory, _Savegame_pool, now find
 
 * and appropiate compressor and start writing to file.
 
 */
 
static SaveOrLoadResult SaveFileToDisk(bool threaded)
 
{
 
@@ -1558,21 +1558,23 @@ static SaveOrLoadResult SaveFileToDisk(b
 
			SaveFileError();
 
		}
 
		return SL_ERROR;
 
	}
 
}
 

	
 
static void* SaveFileToDiskThread(void *arg)
 
static void * CDECL SaveFileToDiskThread(void *arg)
 
{
 
	SaveFileToDisk(true);
 
	return NULL;
 
}
 

	
 
void WaitTillSaved()
 
{
 
	OTTDJoinThread(save_thread);
 
	if (save_thread == NULL) return;
 

	
 
	save_thread->Join();
 
	save_thread = NULL;
 
}
 

	
 
/**
 
 * Main Save or Load function where the high-level saveload functions are
 
 * handled. It opens the savegame, selects format and checks versions
 
@@ -1638,13 +1640,13 @@ SaveOrLoadResult SaveOrLoad(const char *
 
			BeforeSaveGame();
 
			SlSaveChunks();
 
			SlWriteFill(); // flush the save buffer
 

	
 
			SaveFileStart();
 
			if (_network_server ||
 
						(save_thread = OTTDCreateThread(&SaveFileToDiskThread, NULL)) == NULL) {
 
						(save_thread = ThreadObject::New(&SaveFileToDiskThread, NULL)) == NULL) {
 
				if (!_network_server) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode...");
 

	
 
				SaveOrLoadResult result = SaveFileToDisk(false);
 
				SaveFileDone();
 

	
 
				return result;