src/saveload.cpp
branchnoai
changeset 10172 f93d3b7df6c8
parent 10142 56ee7da4ad56
child 10181 54df587fef5d
equal deleted inserted replaced
10171:d4397d599d78 10172:f93d3b7df6c8
  1497 	SetDParamStr(0, GetSaveLoadErrorString());
  1497 	SetDParamStr(0, GetSaveLoadErrorString());
  1498 	ShowErrorMessage(STR_012D, STR_NULL, 0, 0);
  1498 	ShowErrorMessage(STR_012D, STR_NULL, 0, 0);
  1499 	SaveFileDone();
  1499 	SaveFileDone();
  1500 }
  1500 }
  1501 
  1501 
  1502 static OTTDThread* save_thread;
  1502 static ThreadObject *save_thread;
  1503 
  1503 
  1504 /** We have written the whole game into memory, _Savegame_pool, now find
  1504 /** We have written the whole game into memory, _Savegame_pool, now find
  1505  * and appropiate compressor and start writing to file.
  1505  * and appropiate compressor and start writing to file.
  1506  */
  1506  */
  1507 static SaveOrLoadResult SaveFileToDisk(bool threaded)
  1507 static SaveOrLoadResult SaveFileToDisk(bool threaded)
  1567 	return NULL;
  1567 	return NULL;
  1568 }
  1568 }
  1569 
  1569 
  1570 void WaitTillSaved()
  1570 void WaitTillSaved()
  1571 {
  1571 {
  1572 	OTTDJoinThread(save_thread);
  1572 	if (save_thread == NULL) return;
       
  1573 
       
  1574 	save_thread->Join();
  1573 	save_thread = NULL;
  1575 	save_thread = NULL;
  1574 }
  1576 }
  1575 
  1577 
  1576 /**
  1578 /**
  1577  * Main Save or Load function where the high-level saveload functions are
  1579  * Main Save or Load function where the high-level saveload functions are
  1639 			SlSaveChunks();
  1641 			SlSaveChunks();
  1640 			SlWriteFill(); // flush the save buffer
  1642 			SlWriteFill(); // flush the save buffer
  1641 
  1643 
  1642 			SaveFileStart();
  1644 			SaveFileStart();
  1643 			if (_network_server ||
  1645 			if (_network_server ||
  1644 						(save_thread = OTTDCreateThread(&SaveFileToDiskThread, NULL)) == NULL) {
  1646 						(save_thread = ThreadObject::New(&SaveFileToDiskThread, NULL)) == NULL) {
  1645 				if (!_network_server) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode...");
  1647 				if (!_network_server) DEBUG(sl, 1, "Cannot create savegame thread, reverting to single-threaded mode...");
  1646 
  1648 
  1647 				SaveOrLoadResult result = SaveFileToDisk(false);
  1649 				SaveOrLoadResult result = SaveFileToDisk(false);
  1648 				SaveFileDone();
  1650 				SaveFileDone();
  1649 
  1651