Fix #8874: show a warning when a NewGRF scan is requested multiple times from the console (#9022)

This commit is contained in:
rubidium42 2021-04-12 20:53:04 +02:00 committed by Charles Pigott
parent fe43c2d18f
commit 961cda50bc
3 changed files with 9 additions and 3 deletions

View File

@ -1351,7 +1351,9 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
return true;
}
RequestNewGRFScan();
if (!RequestNewGRFScan()) {
IConsoleWarning("NewGRF scanning is already running. Please wait until completed to run again.");
}
return true;
}

View File

@ -1450,11 +1450,15 @@ static void DoAutosave()
* done in the game-thread, and not in the draw-thread (which most often
* triggers this request).
* @param callback Optional callback to call when NewGRF scan is completed.
* @return True when the NewGRF scan was actually requested, false when the scan was already running.
*/
void RequestNewGRFScan(NewGRFScanCallback *callback)
bool RequestNewGRFScan(NewGRFScanCallback *callback)
{
if (_request_newgrf_scan) return false;
_request_newgrf_scan = true;
_request_newgrf_scan_callback = callback;
return true;
}
void GameLoop()

View File

@ -81,6 +81,6 @@ void HandleExitGameRequest();
void SwitchToMode(SwitchMode new_mode);
void RequestNewGRFScan(struct NewGRFScanCallback *callback = nullptr);
bool RequestNewGRFScan(struct NewGRFScanCallback *callback = nullptr);
#endif /* OPENTTD_H */