summaryrefslogtreecommitdiff
path: root/src/scripting/script.cpp
diff options
context:
space:
mode:
authorErik Schilling <ablu.erikschilling@googlemail.com>2012-03-03 13:36:28 +0100
committerErik Schilling <ablu.erikschilling@googlemail.com>2012-03-03 16:41:39 +0100
commitf872528771f0b71741fb36ddf70f2ae23f54c1e3 (patch)
tree9b3751cab7d9f58ae0b15acf061e428f18bc07db /src/scripting/script.cpp
parentc0c208d4c29ff49f940e8a6c54adb26cc4e5eba3 (diff)
downloadmanaserv-f872528771f0b71741fb36ddf70f2ae23f54c1e3.tar.gz
manaserv-f872528771f0b71741fb36ddf70f2ae23f54c1e3.tar.bz2
manaserv-f872528771f0b71741fb36ddf70f2ae23f54c1e3.tar.xz
manaserv-f872528771f0b71741fb36ddf70f2ae23f54c1e3.zip
Added further missing callbacks
Reviewed-by: bjorn.
Diffstat (limited to 'src/scripting/script.cpp')
-rw-r--r--src/scripting/script.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/scripting/script.cpp b/src/scripting/script.cpp
index db44bd57..9ef069d5 100644
--- a/src/scripting/script.cpp
+++ b/src/scripting/script.cpp
@@ -34,6 +34,9 @@ typedef std::map< std::string, Script::Factory > Engines;
static Engines *engines = NULL;
+Script::Ref Script::mCreateNpcDelayedCallback;
+Script::Ref Script::mUpdateCallback;
+
Script::Script():
mMap(NULL),
mEventListener(&scriptEventDispatch)
@@ -68,7 +71,12 @@ Script *Script::create(const std::string &engine)
void Script::update()
{
- prepare("update");
+ if (!mUpdateCallback.isValid())
+ {
+ LOG_ERROR("Could not find callback for update function!");
+ return;
+ }
+ prepare(mUpdateCallback);
execute();
}
@@ -98,8 +106,14 @@ bool Script::loadFile(const std::string &name)
void Script::loadNPC(const std::string &name, int id, int x, int y,
const char *prog)
{
+ if (!mCreateNpcDelayedCallback.isValid())
+ {
+ LOG_ERROR("No callback for creating npcs delayed assigned. "
+ "Could not enabled NPC");
+ return;
+ }
load(prog, name.c_str());
- prepare("create_npc_delayed");
+ prepare(mCreateNpcDelayedCallback);
push(name);
push(id);
push(x);