Codechange: use std::string for script API versions

This commit is contained in:
Rubidium
2023-05-04 23:06:21 +02:00
committed by rubidium42
parent 3d8d99ba11
commit 9b0123ab66
7 changed files with 17 additions and 37 deletions

View File

@@ -51,7 +51,6 @@ static void PrintFunc(bool error_msg, const std::string &message)
ScriptInstance::ScriptInstance(const char *APIName) :
engine(nullptr),
versionAPI(nullptr),
controller(nullptr),
storage(nullptr),
instance(nullptr),
@@ -113,10 +112,9 @@ void ScriptInstance::RegisterAPI()
squirrel_register_std(this->engine);
}
bool ScriptInstance::LoadCompatibilityScripts(const char *api_version, Subdirectory dir)
bool ScriptInstance::LoadCompatibilityScripts(const std::string &api_version, Subdirectory dir)
{
char script_name[32];
seprintf(script_name, lastof(script_name), "compat_%s.nut", api_version);
std::string script_name = fmt::format("compat_{}.nut", api_version);
for (Searchpath sp : _valid_searchpaths) {
std::string buf = FioGetDirectory(sp, dir);
buf += script_name;

View File

@@ -248,7 +248,7 @@ public:
protected:
class Squirrel *engine; ///< A wrapper around the squirrel vm.
const char *versionAPI; ///< Current API used by this script.
std::string versionAPI; ///< Current API used by this script.
/**
* Register all API functions to the VM.
@@ -261,7 +261,7 @@ protected:
* @param dir Subdirectory to find the scripts in
* @return true iff script loading should proceed
*/
bool LoadCompatibilityScripts(const char *api_version, Subdirectory dir);
bool LoadCompatibilityScripts(const std::string &api_version, Subdirectory dir);
/**
* Tell the script it died.

View File

@@ -160,7 +160,7 @@ public:
bool CallMethod(HSQOBJECT instance, const char *method_name, HSQOBJECT *ret, int suspend);
bool CallMethod(HSQOBJECT instance, const char *method_name, int suspend) { return this->CallMethod(instance, method_name, nullptr, suspend); }
bool CallStringMethodStrdup(HSQOBJECT instance, const char *method_name, const char **res, int suspend);
bool CallStringMethod(HSQOBJECT instance, const char *method_name, const std::string *res, int suspend);
bool CallStringMethod(HSQOBJECT instance, const char *method_name, std::string *res, int suspend);
bool CallIntegerMethod(HSQOBJECT instance, const char *method_name, int *res, int suspend);
bool CallBoolMethod(HSQOBJECT instance, const char *method_name, bool *res, int suspend);