(svn r24468) -Add [FS#5219]: API compatibility scripts for Goal Scripts (Hirundo)

This commit is contained in:
yexo
2012-08-13 19:22:26 +00:00
parent 5192155253
commit 54aa43c81b
5 changed files with 38 additions and 31 deletions

View File

@@ -27,6 +27,7 @@
#include "../company_base.h"
#include "../company_func.h"
#include "../fileio_func.h"
ScriptStorage::~ScriptStorage()
{
@@ -104,6 +105,28 @@ void ScriptInstance::RegisterAPI()
squirrel_register_std(this->engine);
}
bool ScriptInstance::LoadCompatibilityScripts(const char *api_version, Subdirectory dir)
{
char script_name[32];
seprintf(script_name, lastof(script_name), "compat_%s.nut", api_version);
char buf[MAX_PATH];
Searchpath sp;
FOR_ALL_SEARCHPATHS(sp) {
FioAppendDirectory(buf, MAX_PATH, sp, dir);
ttd_strlcat(buf, script_name, MAX_PATH);
if (!FileExists(buf)) continue;
if (this->engine->LoadScript(buf)) return true;
ScriptLog::Error("Failed to load API compatibility script");
DEBUG(script, 0, "Error compiling / running API compatibility script: %s", buf);
return false;
}
ScriptLog::Warning("API compatibility script not found");
return true;
}
ScriptInstance::~ScriptInstance()
{
ScriptObject::ActiveInstance active(this);