summaryrefslogtreecommitdiff
path: root/src/ai/ai_info.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ai/ai_info.cpp')
-rw-r--r--src/ai/ai_info.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/ai/ai_info.cpp b/src/ai/ai_info.cpp
index a9bf22eae..3f275630f 100644
--- a/src/ai/ai_info.cpp
+++ b/src/ai/ai_info.cpp
@@ -118,7 +118,7 @@ void AIFileInfo::CheckMethods(SQInteger *res, const char *name)
}
}
-/* static */ SQInteger AIFileInfo::Constructor(HSQUIRRELVM vm, AIFileInfo *info)
+/* static */ SQInteger AIFileInfo::Constructor(HSQUIRRELVM vm, AIFileInfo *info, bool library)
{
SQInteger res = 0;
@@ -138,6 +138,9 @@ void AIFileInfo::CheckMethods(SQInteger *res, const char *name)
info->CheckMethods(&res, "GetVersion");
info->CheckMethods(&res, "GetDate");
info->CheckMethods(&res, "CreateInstance");
+ if (library) {
+ info->CheckMethods(&res, "GetCategory");
+ }
/* Abort if one method was missing */
if (res != 0) return res;
@@ -155,7 +158,7 @@ void AIFileInfo::CheckMethods(SQInteger *res, const char *name)
sq_getinstanceup(vm, 2, &instance, 0);
AIInfo *info = (AIInfo *)instance;
- SQInteger res = AIFileInfo::Constructor(vm, info);
+ SQInteger res = AIFileInfo::Constructor(vm, info, false);
if (res != 0) return res;
AIConfigItem config;
@@ -191,7 +194,7 @@ void AIFileInfo::CheckMethods(SQInteger *res, const char *name)
sq_getinstanceup(vm, 2, &instance, 0);
AIInfo *info = (AIInfo *)instance;
- SQInteger res = AIFileInfo::Constructor(vm, info);
+ SQInteger res = AIFileInfo::Constructor(vm, info, false);
if (res != 0) return res;
/* Remove the link to the real instance, else it might get deleted by RegisterAI() */
@@ -356,7 +359,7 @@ int AIInfo::GetSettingDefaultValue(const char *name)
/* Create a new AIFileInfo */
AILibrary *library = new AILibrary();
- SQInteger res = AIFileInfo::Constructor(vm, library);
+ SQInteger res = AIFileInfo::Constructor(vm, library, true);
if (res != 0) return res;
/* Register the Library to the base system */
@@ -365,6 +368,12 @@ int AIInfo::GetSettingDefaultValue(const char *name)
return 0;
}
+const char *AILibrary::GetCategory()
+{
+ if (this->category == NULL) this->category = this->engine->CallStringMethodStrdup(*this->SQ_instance, "GetCategory");
+ return this->category;
+}
+
/* static */ SQInteger AILibrary::Import(HSQUIRRELVM vm)
{
SQConvert::SQAutoFreePointers ptr;