summaryrefslogtreecommitdiff
path: root/src/game-server/trigger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/trigger.cpp')
-rw-r--r--src/game-server/trigger.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/game-server/trigger.cpp b/src/game-server/trigger.cpp
index c4cec2f4..dd1392e1 100644
--- a/src/game-server/trigger.cpp
+++ b/src/game-server/trigger.cpp
@@ -27,6 +27,8 @@
#include "utils/logger.h"
+#include <cassert>
+
void WarpAction::process(Actor *obj)
{
if (obj->getType() == OBJECT_CHARACTER)
@@ -35,13 +37,20 @@ void WarpAction::process(Actor *obj)
}
}
+ScriptAction::ScriptAction(Script *script, Script::Ref callback, int arg) :
+ mScript(script),
+ mCallback(callback),
+ mArg(arg)
+{
+ assert(mCallback.isValid());
+}
+
void ScriptAction::process(Actor *obj)
{
- LOG_DEBUG("Script trigger area activated: " << mFunction
+ LOG_DEBUG("Script trigger area activated: "
<< "(" << obj << ", " << mArg << ")");
- if (!mScript || mFunction.empty())
- return;
- mScript->prepare(mFunction);
+
+ mScript->prepare(mCallback);
mScript->push(obj);
mScript->push(mArg);
mScript->execute();