summaryrefslogtreecommitdiff
path: root/src/scripting/luascript.h
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-03-01 21:54:04 +0100
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-03-02 22:57:47 +0100
commitc0c208d4c29ff49f940e8a6c54adb26cc4e5eba3 (patch)
tree8de105c5e154912acf354bbe1bbf8509ac44e25a /src/scripting/luascript.h
parentba5b55f3eba0aa3898c5fe42de9838b22473c24a (diff)
downloadmanaserv-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.h22
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;