diff options
author | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-01 21:54:04 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn@lindeijer.nl> | 2012-03-02 22:57:47 +0100 |
commit | c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3 (patch) | |
tree | 8de105c5e154912acf354bbe1bbf8509ac44e25a /src/scripting/luascript.h | |
parent | ba5b55f3eba0aa3898c5fe42de9838b22473c24a (diff) | |
download | manaserv-c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3.tar.gz manaserv-c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3.tar.bz2 manaserv-c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3.tar.xz manaserv-c0c208d4c29ff49f940e8a6c54adb26cc4e5eba3.zip |
Converted functions called by LuaScript to callbacks
This includes the quest reply, post reply, death notification and
remove notification.
Also, Script::Ref was changed from a typedef to a small class,
automating initialization and making the check for validness clearer.
Reviewed-by: Erik Schilling
Diffstat (limited to 'src/scripting/luascript.h')
-rw-r--r-- | src/scripting/luascript.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/scripting/luascript.h b/src/scripting/luascript.h index 6f2bceee..ecd249ae 100644 --- a/src/scripting/luascript.h +++ b/src/scripting/luascript.h @@ -61,19 +61,37 @@ class LuaScript : public Script void assignCallback(Ref &function); static void getQuestCallback(Character *, const std::string &, - const std::string &, void *); + const std::string &, Script *); static void getPostCallback(Character *, const std::string &, - const std::string &, void *); + const std::string &, Script *); void processDeathEvent(Being *thing); void processRemoveEvent(Thing *thing); + + static void setQuestReplyCallback(Script *script) + { script->assignCallback(mQuestReplyCallback); } + + static void setPostReplyCallback(Script *script) + { script->assignCallback(mPostReplyCallback); } + + static void setDeathNotificationCallback(Script *script) + { script->assignCallback(mDeathNotificationCallback); } + + static void setRemoveNotificationCallback(Script *script) + { script->assignCallback(mRemoveNotificationCallback); } + private: lua_State *mState; int nbArgs; std::string mCurFunction; + + static Ref mQuestReplyCallback; + static Ref mPostReplyCallback; + static Ref mDeathNotificationCallback; + static Ref mRemoveNotificationCallback; }; static char const registryKey = 0; |