From 963802e9a7cb67f51cb7e6ffe9d33a02cfe93821 Mon Sep 17 00:00:00 2001 From: truebrain Date: Mon, 19 Dec 2011 20:56:59 +0000 Subject: (svn r23612) -Add: allow importing libraries in the same way as AI does, only with GS prefix (and in game/library) --- src/game/game_scanner.cpp | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'src/game/game_scanner.cpp') diff --git a/src/game/game_scanner.cpp b/src/game/game_scanner.cpp index 54b684c3e..056c1378a 100644 --- a/src/game/game_scanner.cpp +++ b/src/game/game_scanner.cpp @@ -21,11 +21,6 @@ #include "../script/api/script_controller.hpp" -GameScannerInfo::GameScannerInfo() : - ScriptScanner() -{ -} - void GameScannerInfo::Initialize() { ScriptScanner::Initialize("GSScanner"); @@ -87,3 +82,34 @@ GameInfo *GameScannerInfo::FindInfo(const char *nameParam, int versionParam, boo return info; } + + +void GameScannerLibrary::Initialize() +{ + ScriptScanner::Initialize("GSScanner"); +} + +void GameScannerLibrary::GetScriptName(ScriptInfo *info, char *name, int len) +{ + GameLibrary *library = static_cast(info); + snprintf(name, len, "%s.%s", library->GetCategory(), library->GetInstanceName()); +} + +void GameScannerLibrary::RegisterAPI(class Squirrel *engine) +{ + GameLibrary::RegisterAPI(engine); +} + +GameLibrary *GameScannerLibrary::FindLibrary(const char *library, int version) +{ + /* Internally we store libraries as 'library.version' */ + char library_name[1024]; + snprintf(library_name, sizeof(library_name), "%s.%d", library, version); + strtolower(library_name); + + /* Check if the library + version exists */ + ScriptInfoList::iterator iter = this->info_list.find(library_name); + if (iter == this->info_list.end()) return NULL; + + return static_cast((*iter).second); +} -- cgit v1.2.3-70-g09d2