mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Pass ScriptInstance by reference.
parent
13fcc0900e
commit
72ca962b84
|
@ -49,7 +49,7 @@ void ScriptAsyncMode::FinalRelease()
|
||||||
{
|
{
|
||||||
if (this->GetDoCommandAsyncModeInstance() != this) {
|
if (this->GetDoCommandAsyncModeInstance() != this) {
|
||||||
/* Ignore this error if the script is not alive. */
|
/* Ignore this error if the script is not alive. */
|
||||||
if (ScriptObject::GetActiveInstance()->IsAlive()) {
|
if (ScriptObject::GetActiveInstance().IsAlive()) {
|
||||||
throw Script_FatalError("Asyncmode object was removed while it was not the latest *Mode object created.");
|
throw Script_FatalError("Asyncmode object was removed while it was not the latest *Mode object created.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
* Helper function to connect a just built bridge to nearby roads.
|
* Helper function to connect a just built bridge to nearby roads.
|
||||||
* @param instance The script instance we have to built the road for.
|
* @param instance The script instance we have to built the road for.
|
||||||
*/
|
*/
|
||||||
static void _DoCommandReturnBuildBridge2(class ScriptInstance *instance)
|
static void _DoCommandReturnBuildBridge2(class ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
if (!ScriptBridge::_BuildBridgeRoad2()) {
|
if (!ScriptBridge::_BuildBridgeRoad2()) {
|
||||||
ScriptInstance::DoCommandReturn(instance);
|
ScriptInstance::DoCommandReturn(instance);
|
||||||
|
@ -59,7 +59,7 @@ static void _DoCommandReturnBuildBridge2(class ScriptInstance *instance)
|
||||||
* Helper function to connect a just built bridge to nearby roads.
|
* Helper function to connect a just built bridge to nearby roads.
|
||||||
* @param instance The script instance we have to built the road for.
|
* @param instance The script instance we have to built the road for.
|
||||||
*/
|
*/
|
||||||
static void _DoCommandReturnBuildBridge1(class ScriptInstance *instance)
|
static void _DoCommandReturnBuildBridge1(class ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
if (!ScriptBridge::_BuildBridgeRoad1()) {
|
if (!ScriptBridge::_BuildBridgeRoad1()) {
|
||||||
ScriptInstance::DoCommandReturn(instance);
|
ScriptInstance::DoCommandReturn(instance);
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
{
|
{
|
||||||
if (_network_dedicated || !_settings_client.gui.ai_developer_tools) return;
|
if (_network_dedicated || !_settings_client.gui.ai_developer_tools) return;
|
||||||
|
|
||||||
ScriptObject::GetActiveInstance()->Pause();
|
ScriptObject::GetActiveInstance().Pause();
|
||||||
|
|
||||||
ScriptLog::Log(ScriptLogTypes::LOG_SQ_ERROR, fmt::format("Break: {}", message));
|
ScriptLog::Log(ScriptLogTypes::LOG_SQ_ERROR, fmt::format("Break: {}", message));
|
||||||
|
|
||||||
|
@ -76,17 +76,17 @@ ScriptController::ScriptController(::CompanyID company) :
|
||||||
|
|
||||||
/* static */ uint ScriptController::GetTick()
|
/* static */ uint ScriptController::GetTick()
|
||||||
{
|
{
|
||||||
return ScriptObject::GetActiveInstance()->GetController()->ticks;
|
return ScriptObject::GetActiveInstance().GetController()->ticks;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ int ScriptController::GetOpsTillSuspend()
|
/* static */ int ScriptController::GetOpsTillSuspend()
|
||||||
{
|
{
|
||||||
return ScriptObject::GetActiveInstance()->GetOpsTillSuspend();
|
return ScriptObject::GetActiveInstance().GetOpsTillSuspend();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ int ScriptController::GetSetting(const std::string &name)
|
/* static */ int ScriptController::GetSetting(const std::string &name)
|
||||||
{
|
{
|
||||||
return ScriptObject::GetActiveInstance()->GetSetting(name);
|
return ScriptObject::GetActiveInstance().GetSetting(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ uint ScriptController::GetVersion()
|
/* static */ uint ScriptController::GetVersion()
|
||||||
|
@ -96,11 +96,11 @@ ScriptController::ScriptController(::CompanyID company) :
|
||||||
|
|
||||||
/* static */ HSQOBJECT ScriptController::Import(const std::string &library, const std::string &class_name, int version)
|
/* static */ HSQOBJECT ScriptController::Import(const std::string &library, const std::string &class_name, int version)
|
||||||
{
|
{
|
||||||
ScriptController *controller = ScriptObject::GetActiveInstance()->GetController();
|
ScriptController *controller = ScriptObject::GetActiveInstance().GetController();
|
||||||
Squirrel *engine = ScriptObject::GetActiveInstance()->engine;
|
Squirrel *engine = ScriptObject::GetActiveInstance().engine;
|
||||||
HSQUIRRELVM vm = engine->GetVM();
|
HSQUIRRELVM vm = engine->GetVM();
|
||||||
|
|
||||||
ScriptInfo *lib = ScriptObject::GetActiveInstance()->FindLibrary(library, version);
|
ScriptInfo *lib = ScriptObject::GetActiveInstance().FindLibrary(library, version);
|
||||||
if (lib == nullptr) {
|
if (lib == nullptr) {
|
||||||
throw sq_throwerror(vm, fmt::format("couldn't find library '{}' with version {}", library, version));
|
throw sq_throwerror(vm, fmt::format("couldn't find library '{}' with version {}", library, version));
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ void ScriptExecMode::FinalRelease()
|
||||||
{
|
{
|
||||||
if (this->GetDoCommandModeInstance() != this) {
|
if (this->GetDoCommandModeInstance() != this) {
|
||||||
/* Ignore this error if the script is not alive. */
|
/* Ignore this error if the script is not alive. */
|
||||||
if (ScriptObject::GetActiveInstance()->IsAlive()) {
|
if (ScriptObject::GetActiveInstance().IsAlive()) {
|
||||||
throw Script_FatalError("ScriptExecMode object was removed while it was not the latest *Mode object created.");
|
throw Script_FatalError("ScriptExecMode object was removed while it was not the latest *Mode object created.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,16 +46,16 @@ void SimpleCountedObject::Release()
|
||||||
*/
|
*/
|
||||||
static ScriptStorage *GetStorage()
|
static ScriptStorage *GetStorage()
|
||||||
{
|
{
|
||||||
return ScriptObject::GetActiveInstance()->GetStorage();
|
return ScriptObject::GetActiveInstance().GetStorage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* static */ ScriptInstance *ScriptObject::ActiveInstance::active = nullptr;
|
/* static */ ScriptInstance *ScriptObject::ActiveInstance::active = nullptr;
|
||||||
|
|
||||||
ScriptObject::ActiveInstance::ActiveInstance(ScriptInstance *instance) : alc_scope(instance->engine)
|
ScriptObject::ActiveInstance::ActiveInstance(ScriptInstance &instance) : alc_scope(instance.engine)
|
||||||
{
|
{
|
||||||
this->last_active = ScriptObject::ActiveInstance::active;
|
this->last_active = ScriptObject::ActiveInstance::active;
|
||||||
ScriptObject::ActiveInstance::active = instance;
|
ScriptObject::ActiveInstance::active = &instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptObject::ActiveInstance::~ActiveInstance()
|
ScriptObject::ActiveInstance::~ActiveInstance()
|
||||||
|
@ -63,10 +63,10 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||||
ScriptObject::ActiveInstance::active = this->last_active;
|
ScriptObject::ActiveInstance::active = this->last_active;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ ScriptInstance *ScriptObject::GetActiveInstance()
|
/* static */ ScriptInstance &ScriptObject::GetActiveInstance()
|
||||||
{
|
{
|
||||||
assert(ScriptObject::ActiveInstance::active != nullptr);
|
assert(ScriptObject::ActiveInstance::active != nullptr);
|
||||||
return ScriptObject::ActiveInstance::active;
|
return *ScriptObject::ActiveInstance::active;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -235,7 +235,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||||
|
|
||||||
/* static */ bool ScriptObject::CanSuspend()
|
/* static */ bool ScriptObject::CanSuspend()
|
||||||
{
|
{
|
||||||
Squirrel *squirrel = ScriptObject::GetActiveInstance()->engine;
|
Squirrel *squirrel = ScriptObject::GetActiveInstance().engine;
|
||||||
return GetStorage()->allow_do_command && squirrel->CanSuspend();
|
return GetStorage()->allow_do_command && squirrel->CanSuspend();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ ScriptObject::ActiveInstance::~ActiveInstance()
|
||||||
|
|
||||||
/* static */ CommandCallbackData *ScriptObject::GetDoCommandCallback()
|
/* static */ CommandCallbackData *ScriptObject::GetDoCommandCallback()
|
||||||
{
|
{
|
||||||
return ScriptObject::GetActiveInstance()->GetDoCommandCallback();
|
return ScriptObject::GetActiveInstance().GetDoCommandCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::tuple<bool, bool, bool, bool> ScriptObject::DoCommandPrep()
|
std::tuple<bool, bool, bool, bool> ScriptObject::DoCommandPrep()
|
||||||
|
@ -315,7 +315,7 @@ bool ScriptObject::DoCommandProcessResult(const CommandCost &res, Script_Suspend
|
||||||
IncreaseDoCommandCosts(res.GetCost());
|
IncreaseDoCommandCosts(res.GetCost());
|
||||||
if (!_generating_world) {
|
if (!_generating_world) {
|
||||||
/* Charge a nominal fee for asynchronously executed commands */
|
/* Charge a nominal fee for asynchronously executed commands */
|
||||||
Squirrel *engine = ScriptObject::GetActiveInstance()->engine;
|
Squirrel *engine = ScriptObject::GetActiveInstance().engine;
|
||||||
Squirrel::DecreaseOps(engine->GetVM(), 100);
|
Squirrel::DecreaseOps(engine->GetVM(), 100);
|
||||||
}
|
}
|
||||||
if (callback != nullptr) {
|
if (callback != nullptr) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ protected:
|
||||||
class ActiveInstance {
|
class ActiveInstance {
|
||||||
friend class ScriptObject;
|
friend class ScriptObject;
|
||||||
public:
|
public:
|
||||||
ActiveInstance(ScriptInstance *instance);
|
ActiveInstance(ScriptInstance &instance);
|
||||||
~ActiveInstance();
|
~ActiveInstance();
|
||||||
private:
|
private:
|
||||||
ScriptInstance *last_active; ///< The active instance before we go instantiated.
|
ScriptInstance *last_active; ///< The active instance before we go instantiated.
|
||||||
|
@ -117,7 +117,7 @@ public:
|
||||||
* Get the currently active instance.
|
* Get the currently active instance.
|
||||||
* @return The instance.
|
* @return The instance.
|
||||||
*/
|
*/
|
||||||
static class ScriptInstance *GetActiveInstance();
|
static class ScriptInstance &GetActiveInstance();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a reference of the randomizer that brings this script random values.
|
* Get a reference of the randomizer that brings this script random values.
|
||||||
|
|
|
@ -579,7 +579,7 @@ static ScriptOrder::OrderPosition RealOrderPositionToScriptOrderPosition(Vehicle
|
||||||
* between the wanted and the current order.
|
* between the wanted and the current order.
|
||||||
* @param instance The script instance we are doing the callback for.
|
* @param instance The script instance we are doing the callback for.
|
||||||
*/
|
*/
|
||||||
static void _DoCommandReturnSetOrderFlags(class ScriptInstance *instance)
|
static void _DoCommandReturnSetOrderFlags(class ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
ScriptObject::SetLastCommandRes(ScriptOrder::_SetOrderFlags());
|
ScriptObject::SetLastCommandRes(ScriptOrder::_SetOrderFlags());
|
||||||
ScriptInstance::DoCommandReturn(instance);
|
ScriptInstance::DoCommandReturn(instance);
|
||||||
|
|
|
@ -26,9 +26,9 @@ static bool operator==(const ScriptPriorityQueue::PriorityItem &lhs, const HSQOB
|
||||||
ScriptPriorityQueue::~ScriptPriorityQueue()
|
ScriptPriorityQueue::~ScriptPriorityQueue()
|
||||||
{
|
{
|
||||||
/* Release reference to stored objects. */
|
/* Release reference to stored objects. */
|
||||||
auto inst = ScriptObject::GetActiveInstance();
|
auto &inst = ScriptObject::GetActiveInstance();
|
||||||
if (!inst->InShutdown()) {
|
if (!inst.InShutdown()) {
|
||||||
for (auto &i : this->queue) inst->ReleaseSQObject(const_cast<HSQOBJECT *>(&i.second));
|
for (auto &i : this->queue) inst.ReleaseSQObject(const_cast<HSQOBJECT *>(&i.second));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ void ScriptTestMode::FinalRelease()
|
||||||
{
|
{
|
||||||
if (this->GetDoCommandModeInstance() != this) {
|
if (this->GetDoCommandModeInstance() != this) {
|
||||||
/* Ignore this error if the script is not alive. */
|
/* Ignore this error if the script is not alive. */
|
||||||
if (ScriptObject::GetActiveInstance()->IsAlive()) {
|
if (ScriptObject::GetActiveInstance().IsAlive()) {
|
||||||
throw Script_FatalError("Testmode object was removed while it was not the latest *Mode object created.");
|
throw Script_FatalError("Testmode object was removed while it was not the latest *Mode object created.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
* Helper function to connect a just built tunnel to nearby roads.
|
* Helper function to connect a just built tunnel to nearby roads.
|
||||||
* @param instance The script instance we have to built the road for.
|
* @param instance The script instance we have to built the road for.
|
||||||
*/
|
*/
|
||||||
static void _DoCommandReturnBuildTunnel2(class ScriptInstance *instance)
|
static void _DoCommandReturnBuildTunnel2(class ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
if (!ScriptTunnel::_BuildTunnelRoad2()) {
|
if (!ScriptTunnel::_BuildTunnelRoad2()) {
|
||||||
ScriptInstance::DoCommandReturn(instance);
|
ScriptInstance::DoCommandReturn(instance);
|
||||||
|
@ -67,7 +67,7 @@ static void _DoCommandReturnBuildTunnel2(class ScriptInstance *instance)
|
||||||
* Helper function to connect a just built tunnel to nearby roads.
|
* Helper function to connect a just built tunnel to nearby roads.
|
||||||
* @param instance The script instance we have to built the road for.
|
* @param instance The script instance we have to built the road for.
|
||||||
*/
|
*/
|
||||||
static void _DoCommandReturnBuildTunnel1(class ScriptInstance *instance)
|
static void _DoCommandReturnBuildTunnel1(class ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
if (!ScriptTunnel::_BuildTunnelRoad1()) {
|
if (!ScriptTunnel::_BuildTunnelRoad1()) {
|
||||||
ScriptInstance::DoCommandReturn(instance);
|
ScriptInstance::DoCommandReturn(instance);
|
||||||
|
|
|
@ -55,7 +55,7 @@ ScriptInstance::ScriptInstance(std::string_view api_name)
|
||||||
|
|
||||||
void ScriptInstance::Initialize(const std::string &main_script, const std::string &instance_name, CompanyID company)
|
void ScriptInstance::Initialize(const std::string &main_script, const std::string &instance_name, CompanyID company)
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
this->controller = new ScriptController(company);
|
this->controller = new ScriptController(company);
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ bool ScriptInstance::LoadCompatibilityScripts(Subdirectory dir, std::span<const
|
||||||
|
|
||||||
ScriptInstance::~ScriptInstance()
|
ScriptInstance::~ScriptInstance()
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
this->in_shutdown = true;
|
this->in_shutdown = true;
|
||||||
|
|
||||||
if (instance != nullptr) this->engine->ReleaseObject(this->instance);
|
if (instance != nullptr) this->engine->ReleaseObject(this->instance);
|
||||||
|
@ -175,7 +175,7 @@ void ScriptInstance::Died()
|
||||||
|
|
||||||
void ScriptInstance::GameLoop()
|
void ScriptInstance::GameLoop()
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
if (this->IsDead()) return;
|
if (this->IsDead()) return;
|
||||||
if (this->engine->HasScriptCrashed()) {
|
if (this->engine->HasScriptCrashed()) {
|
||||||
|
@ -199,7 +199,7 @@ void ScriptInstance::GameLoop()
|
||||||
this->is_save_data_on_stack = false;
|
this->is_save_data_on_stack = false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
this->callback(this);
|
this->callback(*this);
|
||||||
} catch (Script_Suspend &e) {
|
} catch (Script_Suspend &e) {
|
||||||
this->suspend = e.GetSuspendTime();
|
this->suspend = e.GetSuspendTime();
|
||||||
this->callback = e.GetSuspendCallback();
|
this->callback = e.GetSuspendCallback();
|
||||||
|
@ -265,54 +265,54 @@ void ScriptInstance::GameLoop()
|
||||||
void ScriptInstance::CollectGarbage()
|
void ScriptInstance::CollectGarbage()
|
||||||
{
|
{
|
||||||
if (this->is_started && !this->IsDead()) {
|
if (this->is_started && !this->IsDead()) {
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
this->engine->CollectGarbage();
|
this->engine->CollectGarbage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturn(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturn(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(ScriptObject::GetLastCommandRes());
|
instance.engine->InsertResult(ScriptObject::GetLastCommandRes());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnVehicleID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnVehicleID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<VehicleID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<VehicleID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnSignID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnSignID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<SignID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<SignID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnGroupID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnGroupID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<GroupID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<GroupID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnGoalID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnGoalID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<GoalID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<GoalID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnStoryPageID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnStoryPageID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<StoryPageID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<StoryPageID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnStoryPageElementID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnStoryPageElementID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<StoryPageElementID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<StoryPageElementID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnLeagueTableElementID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnLeagueTableElementID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<LeagueTableElementID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<LeagueTableElementID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* static */ void ScriptInstance::DoCommandReturnLeagueTableID(ScriptInstance *instance)
|
/* static */ void ScriptInstance::DoCommandReturnLeagueTableID(ScriptInstance &instance)
|
||||||
{
|
{
|
||||||
instance->engine->InsertResult(EndianBufferReader::ToValue<LeagueTableID>(ScriptObject::GetLastCommandResData()));
|
instance.engine->InsertResult(EndianBufferReader::ToValue<LeagueTableID>(ScriptObject::GetLastCommandResData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ ScriptStorage *ScriptInstance::GetStorage()
|
||||||
|
|
||||||
ScriptLogTypes::LogData &ScriptInstance::GetLogData()
|
ScriptLogTypes::LogData &ScriptInstance::GetLogData()
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
return ScriptObject::GetLogData();
|
return ScriptObject::GetLogData();
|
||||||
}
|
}
|
||||||
|
@ -501,7 +501,7 @@ static const SaveLoad _script_byte[] = {
|
||||||
|
|
||||||
void ScriptInstance::Save()
|
void ScriptInstance::Save()
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
/* Don't save data if the script didn't start yet or if it crashed. */
|
/* Don't save data if the script didn't start yet or if it crashed. */
|
||||||
if (this->engine == nullptr || this->engine->HasScriptCrashed()) {
|
if (this->engine == nullptr || this->engine->HasScriptCrashed()) {
|
||||||
|
@ -739,7 +739,7 @@ bool ScriptInstance::IsPaused()
|
||||||
|
|
||||||
void ScriptInstance::LoadOnStack(ScriptData *data)
|
void ScriptInstance::LoadOnStack(ScriptData *data)
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
if (this->IsDead() || data == nullptr) return;
|
if (this->IsDead() || data == nullptr) return;
|
||||||
|
|
||||||
|
@ -803,7 +803,7 @@ SQInteger ScriptInstance::GetOpsTillSuspend()
|
||||||
|
|
||||||
bool ScriptInstance::DoCommandCallback(const CommandCost &result, const CommandDataBuffer &data, CommandDataBuffer result_data, Commands cmd)
|
bool ScriptInstance::DoCommandCallback(const CommandCost &result, const CommandDataBuffer &data, CommandDataBuffer result_data, Commands cmd)
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
if (!ScriptObject::CheckLastCommand(data, cmd)) {
|
if (!ScriptObject::CheckLastCommand(data, cmd)) {
|
||||||
Debug(script, 1, "DoCommandCallback terminating a script, last command does not match expected command");
|
Debug(script, 1, "DoCommandCallback terminating a script, last command does not match expected command");
|
||||||
|
@ -827,7 +827,7 @@ bool ScriptInstance::DoCommandCallback(const CommandCost &result, const CommandD
|
||||||
|
|
||||||
void ScriptInstance::InsertEvent(class ScriptEvent *event)
|
void ScriptInstance::InsertEvent(class ScriptEvent *event)
|
||||||
{
|
{
|
||||||
ScriptObject::ActiveInstance active(this);
|
ScriptObject::ActiveInstance active(*this);
|
||||||
|
|
||||||
ScriptEventController::InsertEvent(event);
|
ScriptEventController::InsertEvent(event);
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,47 +101,47 @@ public:
|
||||||
/**
|
/**
|
||||||
* Return a true/false reply for a DoCommand.
|
* Return a true/false reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturn(ScriptInstance *instance);
|
static void DoCommandReturn(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a VehicleID reply for a DoCommand.
|
* Return a VehicleID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnVehicleID(ScriptInstance *instance);
|
static void DoCommandReturnVehicleID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a SignID reply for a DoCommand.
|
* Return a SignID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnSignID(ScriptInstance *instance);
|
static void DoCommandReturnSignID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a GroupID reply for a DoCommand.
|
* Return a GroupID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnGroupID(ScriptInstance *instance);
|
static void DoCommandReturnGroupID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a GoalID reply for a DoCommand.
|
* Return a GoalID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnGoalID(ScriptInstance *instance);
|
static void DoCommandReturnGoalID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a StoryPageID reply for a DoCommand.
|
* Return a StoryPageID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnStoryPageID(ScriptInstance *instance);
|
static void DoCommandReturnStoryPageID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a StoryPageElementID reply for a DoCommand.
|
* Return a StoryPageElementID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnStoryPageElementID(ScriptInstance *instance);
|
static void DoCommandReturnStoryPageElementID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a LeagueTableID reply for a DoCommand.
|
* Return a LeagueTableID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnLeagueTableID(ScriptInstance *instance);
|
static void DoCommandReturnLeagueTableID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a LeagueTableElementID reply for a DoCommand.
|
* Return a LeagueTableElementID reply for a DoCommand.
|
||||||
*/
|
*/
|
||||||
static void DoCommandReturnLeagueTableElementID(ScriptInstance *instance);
|
static void DoCommandReturnLeagueTableElementID(ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the controller attached to the instance.
|
* Get the controller attached to the instance.
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
/**
|
/**
|
||||||
* The callback function when a script suspends.
|
* The callback function when a script suspends.
|
||||||
*/
|
*/
|
||||||
typedef void (Script_SuspendCallbackProc)(class ScriptInstance *instance);
|
typedef void (Script_SuspendCallbackProc)(class ScriptInstance &instance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A throw-class that is given when the script wants to suspend.
|
* A throw-class that is given when the script wants to suspend.
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
class TestScriptController {
|
class TestScriptController {
|
||||||
public:
|
public:
|
||||||
GameInstance game{};
|
GameInstance game{};
|
||||||
ScriptObject::ActiveInstance active{&game};
|
ScriptObject::ActiveInstance active{game};
|
||||||
|
|
||||||
Squirrel engine{"test"};
|
Squirrel engine{"test"};
|
||||||
ScriptAllocatorScope scope{&engine};
|
ScriptAllocatorScope scope{&engine};
|
||||||
|
|
Loading…
Reference in New Issue