mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-09 23:50:25 +00:00
Codechange: replace 'const char *' script API parameters with std::string
This commit is contained in:
parent
b1b578f988
commit
d9e93edc8b
@ -42,7 +42,7 @@ macro(dump_class_templates NAME)
|
||||
string(APPEND SQUIRREL_EXPORT "\n return Param<ScriptText *>::Get(vm, index, ptr);")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n if (sq_gettype(vm, index) == OT_STRING) {")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return new RawText(Param<const char *>::Get(vm, index, ptr));")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return new RawText(Param<const std::string &>::Get(vm, index, ptr));")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
string(APPEND SQUIRREL_EXPORT "\n return nullptr;")
|
||||
string(APPEND SQUIRREL_EXPORT "\n }")
|
||||
|
@ -83,7 +83,7 @@ void AIInstance::LoadDummyScript()
|
||||
Script_CreateDummy(this->engine->GetVM(), STR_ERROR_AI_NO_AI_FOUND, "AI");
|
||||
}
|
||||
|
||||
int AIInstance::GetSetting(const char *name)
|
||||
int AIInstance::GetSetting(const std::string &name)
|
||||
{
|
||||
return AIConfig::GetConfig(_current_company)->GetSetting(name);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
*/
|
||||
void Initialize(class AIInfo *info);
|
||||
|
||||
int GetSetting(const char *name) override;
|
||||
int GetSetting(const std::string &name) override;
|
||||
ScriptInfo *FindLibrary(const std::string &library, int version) override;
|
||||
|
||||
private:
|
||||
|
@ -53,7 +53,7 @@ void GameInstance::RegisterAPI()
|
||||
if (!this->LoadCompatibilityScripts(this->versionAPI, GAME_DIR)) this->Died();
|
||||
}
|
||||
|
||||
int GameInstance::GetSetting(const char *name)
|
||||
int GameInstance::GetSetting(const std::string &name)
|
||||
{
|
||||
return GameConfig::GetConfig()->GetSetting(name);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public:
|
||||
*/
|
||||
void Initialize(class GameInfo *info);
|
||||
|
||||
int GetSetting(const char *name) override;
|
||||
int GetSetting(const std::string &name) override;
|
||||
ScriptInfo *FindLibrary(const std::string &library, int version) override;
|
||||
|
||||
private:
|
||||
|
@ -84,7 +84,7 @@ ScriptController::ScriptController(CompanyID company) :
|
||||
return ScriptObject::GetActiveInstance()->GetOpsTillSuspend();
|
||||
}
|
||||
|
||||
/* static */ int ScriptController::GetSetting(const char *name)
|
||||
/* static */ int ScriptController::GetSetting(const std::string &name)
|
||||
{
|
||||
return ScriptObject::GetActiveInstance()->GetSetting(name);
|
||||
}
|
||||
@ -94,7 +94,7 @@ ScriptController::ScriptController(CompanyID company) :
|
||||
return _openttd_newgrf_version;
|
||||
}
|
||||
|
||||
/* static */ HSQOBJECT ScriptController::Import(const char *library, const char *class_name, int version)
|
||||
/* static */ HSQOBJECT ScriptController::Import(const std::string &library, const std::string &class_name, int version)
|
||||
{
|
||||
ScriptController *controller = ScriptObject::GetActiveInstance()->GetController();
|
||||
Squirrel *engine = ScriptObject::GetActiveInstance()->engine;
|
||||
@ -152,7 +152,7 @@ ScriptController::ScriptController(CompanyID company) :
|
||||
sq_getstackobj(vm, -1, &obj);
|
||||
sq_pop(vm, 3);
|
||||
|
||||
if (StrEmpty(class_name)) return obj;
|
||||
if (class_name.empty()) return obj;
|
||||
|
||||
/* Now link the name the user wanted to our 'fake' class */
|
||||
sq_pushobject(vm, parent);
|
||||
|
@ -125,7 +125,7 @@ public:
|
||||
* @param name The name of the setting.
|
||||
* @return the value for the setting, or -1 if the setting is not known.
|
||||
*/
|
||||
static int GetSetting(const char *name);
|
||||
static int GetSetting(const std::string &name);
|
||||
|
||||
/**
|
||||
* Get the OpenTTD version of this executable. The version is formatted
|
||||
@ -201,7 +201,7 @@ public:
|
||||
* @return The loaded library object. If class_name is set, it is also available (under the scope of the import) under that name.
|
||||
* @note This command can be called from the global space, and does not need an instance.
|
||||
*/
|
||||
static HSQOBJECT Import(const char *library, const char *class_name, int version);
|
||||
static HSQOBJECT Import(const std::string &library, const std::string &class_name, int version);
|
||||
|
||||
private:
|
||||
typedef std::map<std::string, std::string, CaseInsensitiveComparator> LoadedLibraryList; ///< The type for loaded libraries.
|
||||
|
@ -16,13 +16,13 @@
|
||||
|
||||
#include "../../safeguards.h"
|
||||
|
||||
/* static */ bool ScriptGameSettings::IsValid(const char *setting)
|
||||
/* static */ bool ScriptGameSettings::IsValid(const std::string &setting)
|
||||
{
|
||||
const SettingDesc *sd = GetSettingFromName(setting);
|
||||
return sd != nullptr && sd->IsIntSetting();
|
||||
}
|
||||
|
||||
/* static */ SQInteger ScriptGameSettings::GetValue(const char *setting)
|
||||
/* static */ SQInteger ScriptGameSettings::GetValue(const std::string &setting)
|
||||
{
|
||||
if (!IsValid(setting)) return -1;
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
return sd->AsIntSetting()->Read(&_settings_game);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGameSettings::SetValue(const char *setting, SQInteger value)
|
||||
/* static */ bool ScriptGameSettings::SetValue(const std::string &setting, SQInteger value)
|
||||
{
|
||||
EnforceDeityOrCompanyModeValid(false);
|
||||
if (!IsValid(setting)) return false;
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
* @note Results achieved in the past offer no guarantee for the future.
|
||||
* @return True if and only if the setting is valid.
|
||||
*/
|
||||
static bool IsValid(const char *setting);
|
||||
static bool IsValid(const std::string &setting);
|
||||
|
||||
/**
|
||||
* Gets the value of the game setting.
|
||||
@ -57,7 +57,7 @@ public:
|
||||
* @note Results achieved in the past offer no guarantee for the future.
|
||||
* @return The value for the setting.
|
||||
*/
|
||||
static SQInteger GetValue(const char *setting);
|
||||
static SQInteger GetValue(const std::string &setting);
|
||||
|
||||
/**
|
||||
* Sets the value of the game setting.
|
||||
@ -69,7 +69,7 @@ public:
|
||||
* @note Results achieved in the past offer no guarantee for the future.
|
||||
* @api -ai
|
||||
*/
|
||||
static bool SetValue(const char *setting, SQInteger value);
|
||||
static bool SetValue(const std::string &setting, SQInteger value);
|
||||
|
||||
/**
|
||||
* Checks whether the given vehicle-type is disabled for companies.
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include "../../safeguards.h"
|
||||
|
||||
RawText::RawText(const char *text) : text(text)
|
||||
RawText::RawText(const std::string &text) : text(text)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ public:
|
||||
*/
|
||||
class RawText : public Text {
|
||||
public:
|
||||
RawText(const char *text);
|
||||
RawText(const std::string &text);
|
||||
|
||||
const std::string GetEncodedText() override { return this->text; }
|
||||
private:
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
* @param name The name of the setting.
|
||||
* @return the value for the setting, or -1 if the setting is not known.
|
||||
*/
|
||||
virtual int GetSetting(const char *name) = 0;
|
||||
virtual int GetSetting(const std::string &name) = 0;
|
||||
|
||||
/**
|
||||
* Find a library.
|
||||
|
@ -84,24 +84,9 @@ namespace SQConvert {
|
||||
template <> struct Param<TileIndex> { static inline TileIndex Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return TileIndex((uint32)(int32)tmp); } };
|
||||
template <> struct Param<Money> { static inline Money Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger (vm, index, &tmp); return tmp; } };
|
||||
template <> struct Param<bool> { static inline bool Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQBool tmp; sq_getbool (vm, index, &tmp); return tmp != 0; } };
|
||||
template <> struct Param<const char *> { /* Do not use const char *, use std::string& instead. */ };
|
||||
template <> struct Param<void *> { static inline void *Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer tmp; sq_getuserpointer(vm, index, &tmp); return tmp; } };
|
||||
|
||||
template <> struct Param<const char *> {
|
||||
static inline const char *Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr)
|
||||
{
|
||||
/* Convert what-ever there is as parameter to a string */
|
||||
sq_tostring(vm, index);
|
||||
|
||||
const SQChar *tmp;
|
||||
sq_getstring(vm, -1, &tmp);
|
||||
char *tmp_str = stredup(tmp);
|
||||
sq_poptop(vm);
|
||||
ptr->push_back((void *)tmp_str);
|
||||
StrMakeValidInPlace(tmp_str);
|
||||
return tmp_str;
|
||||
}
|
||||
};
|
||||
|
||||
template <> struct Param<const std::string &> {
|
||||
static inline const std::string Get(HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user