Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/sys/hook.h b/sys/hook.h
new file mode 100644
index 0000000..b1e655d
--- /dev/null
+++ b/sys/hook.h
@@ -0,0 +1,96 @@
+// MorgenGrauen MUDlib
+//
+// /sys/hooks.h - Hooksystem
+//
+// $Id: hook.h 9475 2016-02-19 21:16:17Z Zesstra $
+
+#ifndef _HOOKS_H_
+#define _HOOKS_H_
+
+// global hooks
+#define H_HOOK_MOVE 1
+#define H_HOOK_DIE 2
+#define H_HOOK_DEFEND 3
+#define H_HOOK_ATTACK 4
+#define H_HOOK_HP 5
+#define H_HOOK_SP 6
+#define H_HOOK_ATTACK_MOD 7
+#define H_HOOK_ALCOHOL 8
+#define H_HOOK_FOOD 9
+#define H_HOOK_DRINK 10
+#define H_HOOK_POISON 11
+#define H_HOOK_CONSUME 12
+#define H_HOOK_TEAMROWCHANGE 13
+#define H_HOOK_INSERT 14
+#define H_HOOK_EXIT_USE 15
+
+// the possible consumer types
+#define H_HOOK_SURVEYOR 0
+#define H_HOOK_MODIFICATOR 1
+#define H_DATA_MODIFICATOR 2
+#define H_LISTENER 3
+#define H_CONSUMERCHECK(x) ((intp(x)&& x>=0 && x<=H_LISTENER)?x:-1)
+#define H_CONSUMERNAMES ({"surveyors","hmods","dmods","listeners"})
+
+// priorities
+#define H_HOOK_PRIORITYRANGE 3
+#define H_HOOK_LIBBASEPRIO 0
+#define H_HOOK_GUILDBASEPRIO (H_HOOK_LIBBASEPRIO+H_HOOK_PRIORITYRANGE)
+#define H_HOOK_OTHERBASEPRIO (H_HOOK_GUILDBASEPRIO+H_HOOK_PRIORITYRANGE)
+#define H_HOOK_PRIOCHECK(x) ((intp(x) && x>=0 && x<H_HOOK_PRIORITYRANGE)?x:-1)
+#define H_HOOK_LIBPRIO(x) ((H_HOOK_PRIOCHECK(x)!=-1)?(H_HOOK_LIBBASEPRIO+x):-1)
+#define H_HOOK_GUILDPRIO(x) ((H_HOOK_PRIOCHECK(x)!=-1)?(H_HOOK_GUILDBASEPRIO+x):-1)
+#define H_HOOK_OTHERPRIO(x) ((H_HOOK_PRIOCHECK(x)!=-1)?(H_HOOK_OTHERBASEPRIO+x):-1)
+#define H_HOOK_VALIDPRIO(x) ((intp(x) && x>=0 && x<(H_HOOK_OTHERBASEPRIO+H_HOOK_PRIORITYRANGE))?x:-1)
+
+// maximum consumer per type
+#define MAX_SURVEYOR 1
+#define MAX_HOOK_MODIFICATOR 2
+#define MAX_DATA_MODIFICATOR 3
+#define MAX_LISTENER 5
+#define MAX_HOOK_COUNTS ({MAX_SURVEYOR, MAX_HOOK_MODIFICATOR, \
+ MAX_DATA_MODIFICATOR, MAX_LISTENER, \
+ })
+
+// data indices for return value of HookCallback() & Co.
+#define H_RETCODE 0
+#define H_RETDATA 1
+
+// return codes for HookFlow & Co.
+#define H_NO_MOD 0
+#define H_CANCELLED 1
+#define H_ALTERED 2
+
+// debugging
+#define H_DMSG(x) (h_dbg() && (find_player("zesstra")) ? \
+ tell_object(find_player("zesstra"),x):0)
+
+#endif //_HOOKS_H_
+
+// prototypes
+#ifdef NEED_PROTOTYPES
+// provider
+#ifndef __HOOK_PROVIDER_PROTO
+#define __HOOK_PROVIDER_PROTO
+
+// list of offered hooks
+int* HListHooks();
+
+// register to hook
+int HRegisterToHook(int hookid, mixed consumer, int hookprio,
+ int consumertype, int timeInSeconds);
+
+// unregister from hook
+int HUnregisterFromHook(int hookid, mixed consumer);
+
+// check wether object is a consumer for a given hook
+int HIsHookConsumer(int hookid, mixed consumer);
+
+// offer a hook or stop offering it
+protected void offerHook(int hookid, int offerstate);
+
+// trigger a hook
+protected mixed HookFlow(int hookid, mixed hookdata);
+
+#endif // __HOOK_PROVIDER_PROTO
+#endif // NEED_PROTOTYPES