From 924a924907c608cb168fdf3265f6e6f2e883fcf6 Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 18 Nov 2010 23:31:06 +0000 Subject: (svn r21250) -Fix [FS#3952]: Rescanning AIs didn't "forget" removed AIs --- src/ai/ai_scanner.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/ai/ai_scanner.cpp') diff --git a/src/ai/ai_scanner.cpp b/src/ai/ai_scanner.cpp index 6971a6956..36607c217 100644 --- a/src/ai/ai_scanner.cpp +++ b/src/ai/ai_scanner.cpp @@ -22,6 +22,8 @@ void AIScanner::RescanAIDir() { + /* Get rid of information of old AIs. */ + this->Reset(); this->ScanScriptDir("info.nut", AI_DIR); this->ScanScriptDir("library.nut", AI_LIBRARY_DIR); } @@ -59,7 +61,7 @@ AIScanner::AIScanner() : AI_CreateAIInfoDummy(this->engine->GetVM()); } -AIScanner::~AIScanner() +void AIScanner::Reset() { AIInfoList::iterator it = this->info_list.begin(); for (; it != this->info_list.end(); it++) { @@ -76,6 +78,15 @@ AIScanner::~AIScanner() delete (*lit).second; } + this->info_list.clear(); + this->info_single_list.clear(); + this->library_list.clear(); +} + +AIScanner::~AIScanner() +{ + this->Reset(); + delete this->info_dummy; } -- cgit v1.2.3-54-g00ecf