12 #include "../stdafx.h"
14 #include "../script/squirrel_class.hpp"
18 #include "../string_func.h"
21 #include "../safeguards.h"
29 return strcmp(api_version,
"0.7") == 0 || strcmp(api_version,
"1.0") == 0 || strcmp(api_version,
"1.1") == 0 ||
30 strcmp(api_version,
"1.2") == 0 || strcmp(api_version,
"1.3") == 0 || strcmp(api_version,
"1.4") == 0 ||
31 strcmp(api_version,
"1.5") == 0 || strcmp(api_version,
"1.6") == 0 || strcmp(api_version,
"1.7") == 0 ||
32 strcmp(api_version,
"1.8") == 0 || strcmp(api_version,
"1.9") == 0;
38 template <>
const char *GetClassName<AIInfo, ST_AI>() {
return "AIInfo"; }
44 SQAIInfo.PreRegister(engine);
45 SQAIInfo.AddConstructor<void (
AIInfo::*)(), 1>(engine,
"x");
60 SQAIInfo.PostRegister(engine);
68 SQUserPointer instance = NULL;
69 if (SQ_FAILED(sq_getinstanceup(vm, 2, &instance, 0)) || instance == NULL)
return sq_throwerror(vm,
"Pass an instance of a child class of AIInfo to RegisterAI");
73 if (res != 0)
return res;
95 DEBUG(script, 1,
"Loading info.nut from (%s.%d): GetAPIVersion returned invalid version", info->
GetName(), info->
GetVersion());
103 sq_setinstanceup(vm, 2, NULL);
112 SQUserPointer instance;
113 sq_getinstanceup(vm, 2, &instance, 0);
118 if (res != 0)
return res;
121 seprintf(buf,
lastof(buf),
"%d.%d",
GB(_openttd_newgrf_version, 28, 4),
GB(_openttd_newgrf_version, 24, 4));
125 sq_setinstanceup(vm, 2, NULL);
132 min_loadable_version(0),
133 use_as_random(false),
145 if (version == -1)
return true;
150 AILibrary::~AILibrary()