@@ -48,8 +48,8 @@ ScriptAsyncMode::ScriptAsyncMode(HSQUIRR
void ScriptAsyncMode::FinalRelease()
{
if (this->GetDoCommandAsyncModeInstance() != this) {
/* Ignore this error if the script already died. */
if (!ScriptObject::GetActiveInstance()->IsDead()) {
/* Ignore this error if the script is not alive. */
if (ScriptObject::GetActiveInstance()->IsAlive()) {
throw Script_FatalError("Asyncmode object was removed while it was not the latest *Mode object created.");
}
@@ -31,8 +31,8 @@ ScriptExecMode::ScriptExecMode()
void ScriptExecMode::FinalRelease()
if (this->GetDoCommandModeInstance() != this) {
throw Script_FatalError("ScriptExecMode object was removed while it was not the latest *Mode object created.");
@@ -31,8 +31,8 @@ ScriptTestMode::ScriptTestMode()
void ScriptTestMode::FinalRelease()
throw Script_FatalError("Testmode object was removed while it was not the latest *Mode object created.");
@@ -153,6 +153,11 @@ public:
inline bool IsDead() const { return this->is_dead; }
/**
* Return whether the script is alive.
*/
inline bool IsAlive() const { return !this->IsDead() && !this->in_shutdown; }
* Call the script Save function and save all data in the savegame.
void Save();
Status change: