Skip to content

Commit

Permalink
KOTOR: Store object id, not pointer in delayed actions
Browse files Browse the repository at this point in the history
  • Loading branch information
vkremianskii committed Aug 28, 2018
1 parent 3716a9f commit bc7047f
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 14 deletions.
6 changes: 4 additions & 2 deletions src/engines/kotor/module.h
Expand Up @@ -35,6 +35,8 @@

#include "src/aurora/ifofile.h"

#include "src/aurora/nwscript/objectref.h"

#include "src/graphics/aurora/fadequad.h"

#include "src/events/types.h"
Expand Down Expand Up @@ -191,8 +193,8 @@ class Module : public KotOR::Object, public KotOR::ObjectContainer {
Common::UString script;

Aurora::NWScript::ScriptState state;
Aurora::NWScript::Object *owner;
Aurora::NWScript::Object *triggerer;
Aurora::NWScript::ObjectReference owner;
Aurora::NWScript::ObjectReference triggerer;

uint32 timestamp;

Expand Down
13 changes: 7 additions & 6 deletions src/engines/kotor/script/container.cpp
Expand Up @@ -147,22 +147,23 @@ void ScriptContainer::readScripts(const ScriptContainer &container) {
_scripts[i] = container._scripts[i];
}

bool ScriptContainer::runScript(Script script, Aurora::NWScript::Object *owner,
Aurora::NWScript::Object *triggerer) {
bool ScriptContainer::runScript(Script script,
const Aurora::NWScript::ObjectReference owner,
const Aurora::NWScript::ObjectReference triggerer) {
return runScript(getScript(script), owner, triggerer);
}

bool ScriptContainer::runScript(const Common::UString &script,
Aurora::NWScript::Object *owner,
Aurora::NWScript::Object *triggerer) {
const Aurora::NWScript::ObjectReference owner,
const Aurora::NWScript::ObjectReference triggerer) {

return runScript(script, Aurora::NWScript::NCSFile::getEmptyState(), owner, triggerer);
}

bool ScriptContainer::runScript(const Common::UString &script,
const Aurora::NWScript::ScriptState &state,
Aurora::NWScript::Object *owner,
Aurora::NWScript::Object *triggerer) {
const Aurora::NWScript::ObjectReference owner,
const Aurora::NWScript::ObjectReference triggerer) {
if (script.empty())
return true;

Expand Down
15 changes: 9 additions & 6 deletions src/engines/kotor/script/container.h
Expand Up @@ -30,6 +30,8 @@

#include "src/aurora/types.h"

#include "src/aurora/nwscript/objectref.h"

#include "src/engines/kotor/types.h"

namespace Aurora {
Expand All @@ -51,16 +53,17 @@ class ScriptContainer {

bool hasScript(Script script) const;

bool runScript(Script script, Aurora::NWScript::Object *owner = 0,
Aurora::NWScript::Object *triggerer = 0);
bool runScript(Script script,
const Aurora::NWScript::ObjectReference owner = Aurora::NWScript::ObjectReference(),
const Aurora::NWScript::ObjectReference triggerer = Aurora::NWScript::ObjectReference());

static bool runScript(const Common::UString &script,
Aurora::NWScript::Object *owner = 0,
Aurora::NWScript::Object *triggerer = 0);
const Aurora::NWScript::ObjectReference owner = Aurora::NWScript::ObjectReference(),
const Aurora::NWScript::ObjectReference triggerer = Aurora::NWScript::ObjectReference());
static bool runScript(const Common::UString &script,
const Aurora::NWScript::ScriptState &state,
Aurora::NWScript::Object *owner = 0,
Aurora::NWScript::Object *triggerer = 0);
const Aurora::NWScript::ObjectReference owner = Aurora::NWScript::ObjectReference(),
const Aurora::NWScript::ObjectReference triggerer = Aurora::NWScript::ObjectReference());

protected:
void clearScripts();
Expand Down

0 comments on commit bc7047f

Please sign in to comment.