equal
deleted
inserted
replaced
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 |