diff options
Diffstat (limited to 'plugins/MirLua/src/mlua.h')
-rw-r--r-- | plugins/MirLua/src/mlua.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/MirLua/src/mlua.h b/plugins/MirLua/src/mlua.h index c792c32780..5d771d8ea9 100644 --- a/plugins/MirLua/src/mlua.h +++ b/plugins/MirLua/src/mlua.h @@ -1,20 +1,43 @@ #ifndef _LUA_CORE_H_
#define _LUA_CORE_H_
+struct HandleRefParam
+{
+ HANDLE h;
+ int ref;
+ lua_State *L;
+ HandleRefParam(HANDLE h) : L(NULL), h(h), ref(0) { }
+ HandleRefParam(lua_State *L, HANDLE h, int ref = 0) : L(L), h(h), ref(ref) { }
+};
+
class CMLua
{
private:
lua_State *L;
+ HANDLE hLoadedEvent;
+ HANDLE hUnloadEvent;
+
+ static void KillModuleEventHooks();
+ static void KillModuleServices();
void Load();
void Unload();
public:
+ static LIST<void> Hooks;
+ static LIST<void> Events;
+ static LIST<void> Services;
+ static LIST<void> HookRefs;
+ static LIST<void> ServiceRefs;
+
CMLua();
~CMLua();
void Reload();
+ static int OnScriptLoaded(lua_State *L);
+ static int OnScriptUnload(lua_State *L);
+
static int HookEventObjParam(void *obj, WPARAM wParam, LPARAM lParam, LPARAM param);
};
|