blob: ac62e96a0a51a28948b8dc95b0e3d3500cd59517 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// MorgenGrauen MUDlib
2//
3// living/moving.c -- moving of living objects
4//
5// $Id$
6#pragma strong_types
7#pragma save_types
8#pragma range_check
9#pragma no_clone
MG Mud User88f12472016-06-24 23:31:02 +020010
11inherit "/std/living/moving";
12
13#include <hook.h>
14#define NEED_PROTOTYPES
15#include <moving.h>
16
17//<int|<string|closure>* >* GuardExit(object room, int hookid,
18// <string|closure>* hdata)
19//{
20//}
21
22protected int _reg_exit_hook(object dest, object oldenv)
23{
24 closure cl = symbol_function("GuardExit", this_object());
25 if (cl)
26 {
27 if (oldenv)
28 oldenv->HUnregisterFromHook(H_HOOK_EXIT_USE, cl);
29 return dest->HRegisterModifier(H_HOOK_EXIT_USE, cl);
30 }
31 return 0;
32}
33// Krams nach dem Move machen und nebenbei zum Ueberschreiben.
34protected void NotifyMove(object dest, object oldenv, int method)
35{
36 _reg_exit_hook(dest, oldenv);
37 return ::NotifyMove(dest, oldenv, method);
38}