From 023d530eade50a71d224870c24e52a99cd17a1cc Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 14 Nov 2011 21:40:39 +0000 Subject: [PATCH] (svn r23222) -Codechange: reduce tar scanning calls to the bare minimum --- src/ai/ai_core.cpp | 8 +++++++- src/console_cmds.cpp | 2 -- src/network/network_content_gui.cpp | 4 ++-- src/newgrf_config.cpp | 1 + src/newgrf_gui.cpp | 1 - src/openttd.cpp | 4 ++-- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/ai/ai_core.cpp b/src/ai/ai_core.cpp index 18eeef3b0b..0e7667ba44 100644 --- a/src/ai/ai_core.cpp +++ b/src/ai/ai_core.cpp @@ -17,6 +17,7 @@ #include "../network/network.h" #include "../window_func.h" #include "../command_func.h" +#include "../fileio_func.h" #include "ai_scanner.hpp" #include "ai_instance.hpp" #include "ai_config.hpp" @@ -136,7 +137,10 @@ if (AI::ai_scanner != NULL) AI::Uninitialize(true); AI::frame_counter = 0; - if (AI::ai_scanner == NULL) AI::ai_scanner = new AIScanner(); + if (AI::ai_scanner == NULL) { + TarScanner::DoScan(TarScanner::AI); + AI::ai_scanner = new AIScanner(); + } } /* static */ void AI::Uninitialize(bool keepConfig) @@ -325,6 +329,8 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) /* static */ void AI::Rescan() { + TarScanner::DoScan(TarScanner::AI); + AI::ai_scanner->RescanAIDir(); ResetConfig(); diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index 043d43b0c7..85731de43a 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -1251,7 +1251,6 @@ DEF_CONSOLE_CMD(ConRescanAI) return true; } - TarScanner::DoScan(TarScanner::AI); AI::Rescan(); return true; @@ -1265,7 +1264,6 @@ DEF_CONSOLE_CMD(ConRescanNewGRF) return true; } - TarScanner::DoScan(TarScanner::NEWGRF); ScanNewGRFFiles(NULL); return true; diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 782f3d52c7..5a7b0c281c 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -91,7 +91,7 @@ public: switch (*iter) { case CONTENT_TYPE_AI: case CONTENT_TYPE_AI_LIBRARY: - mode |= TarScanner::AI; + /* AI::Rescan calls the scanner. */ break; case CONTENT_TYPE_BASE_GRAPHICS: @@ -101,7 +101,7 @@ public: break; case CONTENT_TYPE_NEWGRF: - mode |= TarScanner::NEWGRF; + /* ScanNewGRFFiles calls the scanner. */ break; case CONTENT_TYPE_SCENARIO: diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index d62ab8b9b7..93190cbc9a 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -635,6 +635,7 @@ void DoScanNewGRFFiles(void *callback) _modal_progress_work_mutex->BeginCritical(); ClearGRFConfigList(&_all_grfs); + TarScanner::DoScan(TarScanner::NEWGRF); DEBUG(grf, 1, "Scanning for NewGRFs"); uint num = GRFFileScanner::DoScan(); diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index f0a430d735..b00b705403 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -1172,7 +1172,6 @@ struct NewGRFWindow : public QueryStringBaseWindow, NewGRFScanCallback { case SNGRFS_RESCAN_FILES: case SNGRFS_RESCAN_FILES2: - TarScanner::DoScan(TarScanner::NEWGRF); ScanNewGRFFiles(this); break; } diff --git a/src/openttd.cpp b/src/openttd.cpp index c82d7d823e..5033eff350 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -621,7 +621,7 @@ int ttd_main(int argc, char *argv[]) * The next two functions are needed to list the graphics sets. We can't do them earlier * because then we cannot show it on the debug console as that hasn't been configured yet. */ DeterminePaths(argv[0]); - TarScanner::DoScan(TarScanner::AI | TarScanner::BASESET); + TarScanner::DoScan(TarScanner::BASESET); BaseGraphics::FindSets(); BaseSounds::FindSets(); BaseMusic::FindSets(); @@ -636,7 +636,7 @@ int ttd_main(int argc, char *argv[]) #endif DeterminePaths(argv[0]); - TarScanner::DoScan(TarScanner::ALL); + TarScanner::DoScan(TarScanner::BASESET | TarScanner::SCENARIO); BaseGraphics::FindSets(); BaseSounds::FindSets(); BaseMusic::FindSets();