Umgestellt auf H_HOOK_INSERT
... statt des alten AddInsertHook().
Change-Id: I408ebac3d0b3090321adc3bcc251e1904478bc10
diff --git a/obj/tools/MGtool.c b/obj/tools/MGtool.c
index 1d991e0..5b06c6b 100644
--- a/obj/tools/MGtool.c
+++ b/obj/tools/MGtool.c
@@ -8,7 +8,7 @@
/* the original Xtool is copyrighted by Hyp */
/*------------------------------------------*/
-#pragma strict_types
+#pragma strict_types,rtt_checks
protected functions virtual inherit "/std/util/path";
inherit "/std/thing/properties";
@@ -26,6 +26,7 @@
#include "/secure/config.h"
#include <userinfo.h>
#include <defines.h>
+#include <hook.h>
#include "MGtool/tool.h"
@@ -1295,7 +1296,7 @@
}
if(MODE(MODE_FIRST))
call_out("move",0,cloner);
- call_out("add_insert_hook",1,ME);
+ call_out("add_insert_hook",1);
}
void TK(string str)
@@ -1312,12 +1313,6 @@
return TRUE;
}
-void add_insert_hook(object obj)
-{
- if(objectp(obj))
- cloner->AddInsertHook(obj);
-}
-
void init()
{
object first, prev;
@@ -1689,14 +1684,23 @@
* the checking stuff
*/
-void InsertNotify(object obj)
+public <int|object>* insert_hook(object pl, int hookid, object ob)
{
- if(!cloner)
- return;
- if(MODE(MODE_FIRST) && find_call_out("move")==-1)
- call_out("move",0,cloner);
- if(MODE(MODE_INVCHECK))
- write_newinvobj(obj);
+ if(cloner && cloner == pl && hookid == H_HOOK_INSERT)
+ {
+ if(MODE(MODE_FIRST) && find_call_out("move")==-1)
+ call_out("move",0,cloner);
+ if(MODE(MODE_INVCHECK))
+ write_newinvobj(ob);
+ }
+ return ({H_NO_MOD, ob});
+}
+
+void add_insert_hook()
+{
+ if(objectp(cloner))
+ cloner->HRegisterToHook(H_HOOK_INSERT, #'insert_hook,
+ H_HOOK_LIBPRIO(2), H_LISTENER, 0);
}
static void VarCheck(int show)