(svn r15045) -Add [NoAI API CHANGE]: in info.nut you can now have (optional) a CanLoadFromVersion(version), which should return true/false, to indicate if you can load a savegame made with your AI of version 'version'

-Add [NoAI API CHANGE]: in main.nut the Load() function now should be Load(version, data), where 'version' is the version of your AI which made the savegame
-Codechange [NoAI]: various of function renames to make things more sane
-Add [NoAI]: push the 'version' of the AI through various of layers
-Codechange [NoAI]: various of code cleanups
-Add [NoAI]: store the version of the AI in the savegame too
This commit is contained in:
truebrain
2009-01-13 01:46:46 +00:00
parent 27c0a4c801
commit 5573d9a459
13 changed files with 84 additions and 73 deletions

View File

@@ -70,9 +70,26 @@ const char *AIFileInfo::GetInstanceName()
return this->instance_name;
}
bool AIFileInfo::AllowStartup()
bool AIFileInfo::CanLoadFromVersion(int version)
{
return true;
if (version == -1) return true;
if (!this->engine->MethodExists(*this->SQ_instance, "CanLoadFromVersion")) return true;
HSQUIRRELVM vm = this->engine->GetVM();
int top = sq_gettop(vm);
sq_pushobject(vm, *this->SQ_instance);
sq_pushstring(vm, OTTD2FS("CanLoadFromVersion"), -1);
sq_get(vm, -2);
sq_pushobject(vm, *this->SQ_instance);
sq_pushinteger(vm, version);
sq_call(vm, 2, SQTrue, SQFalse);
HSQOBJECT ret;
sq_getstackobj(vm, -1, &ret);
sq_settop(vm, top);
return sq_objtobool(&ret);
}
const char *AIFileInfo::GetDirName()