diff options
author | Erik Schilling <ablu.erikschilling@googlemail.com> | 2012-03-03 13:36:28 +0100 |
---|---|---|
committer | Erik Schilling <ablu.erikschilling@googlemail.com> | 2012-03-03 16:41:39 +0100 |
commit | f872528771f0b71741fb36ddf70f2ae23f54c1e3 (patch) | |
tree | 9b3751cab7d9f58ae0b15acf061e428f18bc07db /src/scripting/script.cpp | |
parent | c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3 (diff) | |
download | manaserv-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.cpp | 18 |
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); |