Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/sys/ansi.h b/sys/ansi.h
new file mode 100644
index 0000000..4e4d244
--- /dev/null
+++ b/sys/ansi.h
@@ -0,0 +1,35 @@
+// MorgenGrauen MUDlib
+//
+// ansi.h -- Sequenzen fuer ANSI- und VT100-Terminals
+//
+// $Id: ansi.h,v 3.3 2000/02/12 16:18:42 Padreic Exp $
+
+#ifndef _ANSI_
+#define _ANSI_
+
+#define ANSI_BOLD ""
+#define ANSI_UNDERL ""
+#define ANSI_BLINK ""
+#define ANSI_INVERS ""
+
+#define ANSI_BLACK ""
+#define ANSI_RED ""
+#define ANSI_GREEN ""
+#define ANSI_YELLOW ""
+#define ANSI_BLUE ""
+#define ANSI_PURPLE ""
+#define ANSI_CYAN ""
+#define ANSI_WHITE ""
+
+#define ANSI_BG_BLACK ""
+#define ANSI_BG_RED ""
+#define ANSI_BG_GREEN ""
+#define ANSI_BG_YELLOW ""
+#define ANSI_BG_BLUE ""
+#define ANSI_BG_PURPLE ""
+#define ANSI_BG_CYAN ""
+#define ANSI_BG_WHITE ""
+
+#define ANSI_NORMAL ""
+
+#endif
diff --git a/sys/armour.h b/sys/armour.h
new file mode 100644
index 0000000..b33e43e
--- /dev/null
+++ b/sys/armour.h
@@ -0,0 +1,41 @@
+// MorgenGrauen MUDlib
+//
+// armour.h -- armour header
+//
+// $Id: armour.h 9092 2015-01-19 23:57:50Z Zesstra $
+ 
+#ifndef __ARMOUR_H__
+#define __ARMOUR_H__
+
+#include <clothing.h>
+#include <combat.h>
+
+// properties
+#ifndef P_NR_HANDS
+#define P_NR_HANDS      "nr_hands"     // benoetigte Haende zum tragen (Schild)
+#endif
+
+#define P_AC            "ac"           // Ruestungsklasse (armour class)
+
+#define P_ARMOUR_TYPE   "armour_type"  // Art der Ruestung (Helm, Ring usw.)
+
+#define P_DEFEND_FUNC   "defend_func"  // Objekt das eine DefendFunc definiert
+
+#endif // __ARMOUR_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __ARMOUR_H_PROTO__
+#define __ARMOUR_H_PROTO__
+
+// prototypes
+int QueryDefend (string|string* dam_type, int|mapping spell, object enemy);
+
+// TO BE REMOVED
+
+void SetDefendFunc(object ob);
+object QueryDefendFunc();
+
+#endif // __ARMOUR_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/attributes.h b/sys/attributes.h
new file mode 100644
index 0000000..c00b3dc
--- /dev/null
+++ b/sys/attributes.h
@@ -0,0 +1,12 @@
+// MorgenGrauen MUDlib
+//
+// attributes.h -- living attributes
+//
+// $Id: attributes.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+#ifndef __ATTRIBUTES_H__
+#define __ATTRIBUTES_H__
+
+#include "/sys/living/attributes.h"
+
+#endif
diff --git a/sys/bank.h b/sys/bank.h
new file mode 100644
index 0000000..6c6306e
--- /dev/null
+++ b/sys/bank.h
@@ -0,0 +1,36 @@
+// MorgenGrauen MUDlib
+//
+// bank.h -- Definitionen fuer die Zentralbank bzw. Laeden
+//
+// $Id: bank.h 6749 2008-03-12 19:45:27Z Zesstra $
+
+#ifndef __BANK_H__
+#define __BANK_H__
+
+#define ZENTRALBANK "/p/daemon/zentralbank"
+
+// Diese Properties lassen sich nur abfragen!
+#define P_SHOP_PERCENT_LEFT "shop_percent_left"    // Aktuelle Prozente in
+#define P_STORE_PERCENT_LEFT "store_percent_left"  // Laden und Speicher
+#define P_CURRENT_MONEY "current_money"       // Vermoegen des Ladens
+
+#define P_STORE_CONSUME  "store_consume"    /* default 20%, immer mind. 1% */
+#define P_MIN_STOCK      "min_stock"    /* mindest Vorrat an Gegenstaenden */
+
+#endif // __BANK_H__
+
+// Konstanten fuer die Implementation
+#ifdef NEED_PROTOTYPES
+#ifndef __BANK_H_PROTOTYPES__
+#define __BANK_H_PROTOTYPES__
+
+#define BANK_DEFAULT_PERCENT 20 // So viele % der Einzahlung gehen aufs Konto
+#define SHOP_PERCENT_LEFT 30 // So viele % kriegt der Laden fuer Objekte
+			     // gutgeschrieben, die er zerstoert
+
+#define STORE_PERCENT_LEFT 25 // Dito fuer den Store
+
+#endif // __BANK_H_PROTOTYPES__
+
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/break_string.h b/sys/break_string.h
new file mode 100644
index 0000000..ff4f21a
--- /dev/null
+++ b/sys/break_string.h
@@ -0,0 +1,21 @@
+// MorgenGrauen MUDlib
+//
+// break_string.h - sym. Konstanten fuer break_string()
+//
+// $Id: defines.h 6415 2007-08-10 19:24:04Z Zesstra $
+
+#ifndef _BREAK_STRING_H_
+#define _BREAK_STRING_H_
+
+#define BS_LEAVE_MY_LFS 	1
+#define BS_SINGLE_SPACE         2
+#define BS_BLOCK		4
+#define BS_NO_PARINDENT		8
+#define BS_INDENT_ONCE         16
+#define BS_PREPEND_INDENT      32
+// Falls hier Flags ergaenzt werden, sollten sie auch in living/comm.h fuer
+// ReceiveMsg() eingetragen werden. ReceiveMsg() kann per se auch nur 10
+// BS-Flags verarbeiten, das sollte beim Ergaenzen beachtet werden.
+
+#endif /* _BREAK_STRING_H_ */
+
diff --git a/sys/class.h b/sys/class.h
new file mode 100644
index 0000000..edfc389
--- /dev/null
+++ b/sys/class.h
@@ -0,0 +1,89 @@
+// MorgenGrauen MUDlib
+//
+// class.h -- Definitionen fuer Klassen von Objekten und Lebewesen.
+//            Siehe AddClass()/is_class_member() in /std/thing/description.c
+//
+// $Id: class.h 9552 2016-04-24 09:53:13Z Arathorn $
+
+#ifndef __CLASS_H__
+#define __CLASS_H__
+
+#define CLASSDB "/p/daemon/classdb"
+
+/* -------------------- Klassen fuer "Lebewesen" -------------------- */
+
+#define CL_ANIMAL "tier"
+#define CL_ARACHNID "spinne"  // und Spinnenartige
+#define CL_BIRD "vogel"
+#define CL_DARKELF "dunkelelf"
+#define CL_DEMON "daemon"
+#define CL_DRAGON "drache"
+#define CL_DWARF "zwerg"
+#define CL_ELF "elf"
+#define CL_ELEMENTAL "elementarwesen"
+#define CL_FELINE "feline"
+#define CL_FISH "fisch"
+#define CL_FROG "frosch"
+#define CL_FURIE "furie"
+#define CL_HARPY "harpyie"
+#define CL_GHOST "geist"
+#define CL_GHOUL  "ghoul"
+#define CL_GIANT "riese"
+#define CL_GNOME "gnom"
+#define CL_GOBLIN "goblin"
+#define CL_HOBBIT "hobbit"
+#define CL_HOBGOBLIN "hobgoblin"
+#define CL_HUMAN "mensch"
+#define CL_ILLUSION "illusion" // Bsp. beschworene Illusionen
+#define CL_INSECT "insekt"
+#define CL_LIVING "lebewesen"
+#define CL_MAMMAL "saeugetier"
+#define CL_MAMMAL_LAND "landsaeuger"
+#define CL_MAMMAL_WATER "wassersaeuger" // Damit man Delphinen nicht das Haar wuschelt
+#define CL_ORC "ork"
+#define CL_PLANT "pflanze"
+#define CL_REPTILE "reptil"
+#define CL_SHADOW "schattenwesen"
+#define CL_SKELETON "skelett"
+#define CL_SLIME "schleimwesen" // Fuer Einzeller und aehnliches
+#define CL_SNAKE "schlange"
+#define CL_TROLL "troll"
+#define CL_UNDEAD "untoter"
+#define CL_VAMPIRE "_cl_vampir"
+#define CL_ZOMBIE "zombie"
+#define CL_SHAPECHANGER "gestaltwandler" // Bsp. Werwoelfe etc.
+#define CL_GOLEM "golem"
+#define CL_CONSTRUCT "konstrukt"
+
+/* ------------------ Klassen nach Bewegungsmethoden ----------------- */
+
+#define CL_WALKING  "gehend"
+#define CL_CRAWLING "kriechend"
+#define CL_SWIMMING "schwimmend"
+#define CL_FLYING   "fliegend"
+
+/* -------------------- Klassen fuer Gegenstaende -------------------- */
+
+#define CL_EXPLOSIVE "sprengstoff"
+#define CL_DISEASE "krankheit"
+#define CL_CURSE "fluch"
+#define CL_INORGANIC "anorganisch"
+#define CL_POISON "gift"
+#define CL_POISONOUS "giftiges"
+#define CL_AMMUNITION "munition"
+// Es kann auch fuer Gegenstaende CL_ILLUSION verwendet werden.
+
+#define CL_ALL ({CL_ANIMAL, CL_ARACHNID, CL_BIRD, CL_DEMON, CL_DRAGON, \
+                CL_DWARF, CL_ELF, CL_ELEMENTAL, CL_FELINE, CL_FISH, CL_FROG, \
+                CL_FURIE, CL_HARPY, CL_VAMPIRE,\
+                CL_GHOST, CL_GHOUL, CL_GIANT, CL_GNOME, CL_GOBLIN, CL_HOBBIT, \
+                CL_HOBGOBLIN, CL_HUMAN, CL_INORGANIC, CL_INSECT, CL_LIVING, \
+                CL_MAMMAL, CL_MAMMAL_LAND, CL_MAMMAL_WATER, CL_ORC, CL_PLANT, \
+                CL_REPTILE, CL_SHADOW, CL_SKELETON, CL_SLIME, CL_SNAKE, \
+                CL_TROLL, CL_UNDEAD, CL_ZOMBIE, CL_SHAPECHANGER, CL_WALKING, \
+                CL_CRAWLING, CL_SWIMMING, CL_FLYING, CL_EXPLOSIVE, \
+                CL_DISEASE, CL_CURSE, CL_POISON, CL_POISONOUS, \
+                CL_AMMUNITION, CL_ILLUSION, CL_GOLEM, CL_CONSTRUCT })
+
+#endif
+
diff --git a/sys/clothing.h b/sys/clothing.h
new file mode 100644
index 0000000..ad61841
--- /dev/null
+++ b/sys/clothing.h
@@ -0,0 +1,49 @@
+// MorgenGrauen MUDlib
+//
+// clothing.h -- clothing header
+//
+// $Id: clothing.h 6065 2006-09-29 23:22:52Z Zesstra $
+ 
+#ifndef __CLOTHING_H__
+#define __CLOTHING_H__
+
+// properties
+#define P_WORN          "worn"         // Objekt mit dem Traeger der Ruestung
+
+#define P_WEAR_FUNC     "wear_func"    // Objekt das eine WearFunc definiert
+#define P_REMOVE_FUNC   "remove_func"  // Objekt das eine RemoveFunc definiert
+
+#define P_WEAR_MSG      "wear_msg"     // Meldungen beim Anziehen
+#define P_UNWEAR_MSG    "unwear_msg"   // Meldungen beim Ausziehen
+
+#define P_LAST_WEAR_ACTION "last_wear_action" // Letzte Aktion des Spielers
+                                              // An- und ausziehen betreff
+
+// Die Wear-Actions im einzelnen
+
+#define WA_WEAR            0
+#define WA_UNWEAR          1
+
+#endif // __CLOTHING_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __CLOTHING_H_PROTO__
+#define __CLOTHING_H_PROTO__
+
+// prototypes
+// functions that will be called if one issues a wear command (or to manually
+// wear this armour
+varargs int do_wear(string str, int silent);
+
+// function that will be called if one issues an unwear command or to manually
+// unwear the armour
+varargs int do_unwear(string str, int silent);
+// function is the rest of do_unwear() -- msgs etc
+varargs int DoUnwear(int silent, int all);
+
+int ziehe(string str);
+
+#endif // __CLOTHING_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/combat.h b/sys/combat.h
new file mode 100644
index 0000000..d00cbd3
--- /dev/null
+++ b/sys/combat.h
@@ -0,0 +1,360 @@
+// MorgenGrauen MUDlib
+//
+// combat.h -- Schadenstypen, Waffen- und Ruestungsklassen und ein
+//             paar Properties fuer das Kampfsystem
+//
+// $Id: combat.h 7178 2009-03-09 20:42:49Z Zesstra $
+
+#ifndef _COMBAT_H_
+#define _COMBAT_H_
+
+#include <weapon.h>
+#include <armour.h>
+#include <ranged_weapon.h>
+
+/* -------------------- Properties -------------------- */
+
+/* ---------- Kampf allgemein ---------- */
+
+#define P_ENABLE_IN_ATTACK_OUT "enable_in_attack_out"
+#define P_NO_GLOBAL_ATTACK     "no_global_attack"
+#define P_FRIEND               "friend"
+#define P_LAST_COMBAT_TIME     "last_combat_time"
+
+/* ---------- Befrieden ---------------- */
+
+#define P_ACCEPT_PEACE         "accept_peace"
+
+/* ---------- Waffen und Ruestungen ---------- */
+
+#define P_LAST_USE             "last_object_use"
+#define P_DAMAGED              "item_damaged"
+#define P_EFFECTIVE_WC         "effective_wc"
+#define P_EFFECTIVE_AC         "effective_ac"
+#define P_QUALITY              "quality"
+#define P_RESTRICTIONS         "restrictions"
+#define P_EQUIP_TIME           "equip_time"
+
+/* ---------- Artillerie ------------*/
+
+#define P_IS_ARTILLERY         "artillery"
+
+/* ---------- Fernkampfwaffen ---------- */
+
+#define P_SHOOTING_WC          "shooting_wc"
+#define P_AMMUNITION           "munition"
+#define P_STRETCH_TIME         "stretch_time"
+#define P_RANGE                "range"
+#define P_SHOOTING_AREA        "shooting_area"
+#define P_TARGET_AREA          "target_area"
+
+/* ----- Defines fuer Array-Positionen ----- */
+
+#define RW_SIZE   5
+#define RW_ENEMY  0
+#define RW_AMMU   1
+#define RW_WRITE  2
+#define RW_VICTIM 3
+#define RW_SAY    4
+
+/* -------------------- Waffentypen -------------------- */
+
+#define WT_AMMU          "ammunition"
+#define WT_AXE           "axe"
+#define WT_CLUB          "club"
+#define WT_HANDS         "hands"
+#define WT_KNIFE         "knife"
+#define WT_MAGIC         "magic"
+#define WT_RANGED_WEAPON "fernwaffe"
+#define WT_SPEAR         "spear"
+#define WT_STAFF         "staff"
+#define WT_SWORD         "sword"
+#define WT_WHIP          "whip"
+
+// Fuer alles, was sich unter den o.g. Typen nicht einordnen laesst
+#define WT_MISC          "misc"
+
+/* ---------- Liste aller erlaubten Waffentypen ---------- */
+
+#define VALID_WEAPON_TYPE(t) (member(({\
+    WT_SWORD, WT_AXE,  WT_CLUB, WT_SPEAR, WT_KNIFE, WT_AMMU, WT_MAGIC,\
+    WT_STAFF, WT_WHIP,  WT_MISC, WT_RANGED_WEAPON }), t ) != -1)
+
+/* ---------- Maximal erlaubte Waffenstaerke ---------- */
+
+#define MAX_WEAPON_CLASS 200
+
+#define MAX_TWOHANDED_WC MAX_WEAPON_CLASS
+/* Die Einhaltung der Einhaender-Grenze wird bisher nicht garantiert */
+#define MAX_ONEHANDED_WC 150
+
+/* ---------- Mindest-Waffenstaerke, die eine Waffe
+              bei einer Beschaedigung behaelt       ---------- */
+
+#define MIN_WEAPON_CLASS 30
+
+/* ---------- Maximal erlaubte Parierwaffenstaerke ---------- */
+
+#define MAX_PARRY_CLASS 40
+
+/* ---------- Auch fuer Paruerwaffen gibt 
+              es eine Minimalstaerke      ---------- */
+
+#define MIN_PARRY_CLASS 0
+
+/* ---------- Dito fuer Ruestungen ---------- */
+
+#define MIN_ARMOUR_CLASS 0
+
+/* -------------------- Munition fuer Fernkampfwaffen -------------------- */
+
+// als x bitte _immer_ den Namen der Munitionsart im Plural angeben,
+// dieses ermoeglicht ein auswerten via MUN_NAME() z.b. in gilden
+
+#define MUN_MISC(x) "Munition:"+x
+
+// ueber dieses define und bitte _nur_ ueber dieses define koennen
+// Gilden oder aehnliches den Namen einer Munitionsart ermitteln. Dieses
+// ist wichtig wenn naehere Infos ueber eine Waffe ausgegeben werden sollen.
+// Bsp.  "Ein Bogen wiegt 1500 Gramm und erlaubt es Dir Pfeile mit einer
+//        Reichweite von 50 m zu verschiessen."
+// sprintf("%s wiegt %d Gramm und erlaubt es Dir %s mit einer Reichweite "
+//        +"von %d m zu verschiessen.", ob->Name(WER), ob->QueryProp(P_WEIGHT),
+//        MUN_NAME(ob->QueryProp(P_AMMUNITION)), ob->QueryProp(P_RANGE))
+
+#define MUN_NAME(x) x[9..]
+
+#define MUN_ARROW   MUN_MISC("Pfeile")
+#define MUN_STONE   MUN_MISC("Steine")
+#define MUN_BOLT    MUN_MISC("Bolzen")
+#define MUN_DART    MUN_MISC("kleine Blasrohrpfeile")
+
+// Fuer die hier definierten Munitionstypen gibt es auch einen Schuss-Skill
+
+#define VALID_SHOOT_SKILL ([\
+  MUN_ARROW : "arrow",\
+  MUN_STONE : "stone",\
+  MUN_BOLT  : "bolt",\
+  MUN_DART  : "dart" ])
+
+/* -------------------- Schadensarten -------------------- */
+
+/* ---------- physikalisch --------- */
+
+// Schlagschaden
+#define DT_BLUDGEON "bludgeon"
+
+#define DT_EXPLOSION "explosion"
+
+// Stichschaden
+#define DT_PIERCE "pierce"
+
+// reissender Schaden/Krallen
+#define DT_RIP "rip"
+
+// Schnittschaden
+#define DT_SLASH "slash"
+
+// Quetschungsschaden
+#define DT_SQUEEZE "squeeze"
+
+// peitschender Schaden
+#define DT_WHIP "whip"
+
+/* ---------- Mapping aller physikalischen Schadensarten ---------- */
+
+#define PHYSICAL_DAMAGE_TYPES ([\
+    DT_BLUDGEON  : 1,\
+    DT_EXPLOSION : 1,\
+    DT_PIERCE    : 1,\
+    DT_RIP       : 1,\
+    DT_SLASH     : 1,\
+    DT_SQUEEZE   : 1,\
+    DT_WHIP      : 1 ])
+
+/* ----------- magisch ---------- */
+
+// Saeure
+#define DT_ACID "acid"
+
+// Luft(mangel)
+#define DT_AIR "air"
+
+// Kaelte oder Eis
+#define DT_COLD "cold"
+
+// Feuer
+#define DT_FIRE "fire"
+
+// heiliger Schaden
+#define DT_HOLY "holy"
+
+// Blitz oder Elektrizitaet
+#define DT_LIGHTNING "lightning"
+
+// (allg.) Magie
+#define DT_MAGIC "magic"
+
+// Gift
+#define DT_POISON "poison"
+
+// Laerm bzw. Schall
+#define DT_SOUND "sound"
+
+// Angst
+#define DT_TERROR "terror"
+
+// satanischer Schaden
+#define DT_UNHOLY "unholy"
+
+// Wasser
+#define DT_WATER "water"
+
+/* ---------- Mapping aller magischen Schadensarten ---------- */
+
+#define MAGICAL_DAMAGE_TYPES ([\
+    DT_ACID      : 1,\
+    DT_AIR       : 1,\
+    DT_COLD      : 1,\
+    DT_FIRE      : 1,\
+    DT_HOLY      : 1,\
+    DT_LIGHTNING : 1,\
+    DT_MAGIC     : 1,\
+    DT_POISON    : 1,\
+    DT_SOUND     : 1,\
+    DT_TERROR    : 1,\
+    DT_UNHOLY    : 1,\
+    DT_WATER     : 1 ])
+
+
+/* ---------- Liste aller Schadensarten ---------- */
+
+#define ALL_DAMAGE_TYPES   ({ DT_BLUDGEON, DT_SLASH, DT_PIERCE, DT_MAGIC, \
+                              DT_FIRE, DT_COLD, DT_ACID, DT_WATER, \
+                              DT_LIGHTNING, DT_AIR, DT_POISON, DT_EXPLOSION, \
+                              DT_SQUEEZE, DT_SOUND, DT_RIP, DT_WHIP, \
+                              DT_HOLY, DT_UNHOLY, DT_TERROR })
+
+/* Ist x ein gueltiger Schadenstyp der Mudlib? */
+#define VALID_DAMAGE_TYPE(x) (member(ALL_DAMAGE_TYPES, x) > -1)
+
+/* -------------------- Ruestungstypen -------------------- */
+
+#define AT_AMULET   "Amulett"
+#define AT_ARMOUR   "Ruestung"
+#define AT_BELT     "Guertel"
+#define AT_BOOT     "Schuhe"
+#define AT_CLOAK    "Umhang"
+#define AT_GLOVE    "Handschuh"
+#define AT_HELMET   "Helm"
+#define AT_QUIVER   "Koecher"
+#define AT_RING     "Ring"
+#define AT_SHIELD   "Schild"
+#define AT_TROUSERS "Hosen"
+
+// Fuer alles, was sich unter den o.g. Typen nicht einordnen laesst
+#define AT_MISC     "Misc"
+
+// Ruestungen, die nicht angezogen werden koennen/duerfen
+#define AT_ILLEGAL  "ILLEGAL"
+
+/* ---------- Liste aller erlaubten Ruestungstypen ---------- */
+
+#define VALID_ARMOUR_TYPE(t) (member(({\
+    AT_ARMOUR, AT_HELMET, AT_RING, AT_GLOVE, AT_CLOAK, AT_BOOT,\
+    AT_TROUSERS, AT_SHIELD, AT_AMULET, AT_MISC, AT_BELT,\
+    AT_QUIVER}), t ) != -1)
+
+/* ---------- Mapping mit den maximal erlaubten 
+              Ruestungswerten der einzelnen Ruestungstypen ---------- */
+
+#define VALID_ARMOUR_CLASS ([ \
+    AT_AMULET   :  2 ,\
+    AT_ARMOUR   : 50 ,\
+    AT_BELT     :  2 ,\
+    AT_BOOT     :  6 ,\
+    AT_CLOAK    : 10 ,\
+    AT_GLOVE    :  5 ,\
+    AT_HELMET   : 15 ,\
+    AT_QUIVER   :  0 ,\
+    AT_RING     :  2 ,\
+    AT_SHIELD   : 40 ,\
+    AT_TROUSERS : 15 ,\
+    AT_MISC     :  0 ])
+
+/* ---------- Mapping mit den Ruestungswerten, ab denen
+              die Ruestung im Laden einbehalten werden  ---------- */
+
+#define KEEP_ARMOUR_CLASS ([ \
+    AT_AMULET   :  2 ,\
+    AT_ARMOUR   : 35 ,\
+    AT_BELT     :  2 ,\
+    AT_BOOT     :  5 ,\
+    AT_CLOAK    :  7 ,\
+    AT_GLOVE    :  5 ,\
+    AT_HELMET   : 12 ,\
+    AT_QUIVER   :  1 ,\
+    AT_RING     :  2 ,\
+    AT_SHIELD   : 26 ,\
+    AT_TROUSERS : 12 ,\
+    AT_MISC     :  1 ])
+
+/* -------------------- Defines fuer Kampfkommandos -------------------- */
+
+#define C_AVG "avg"
+#define C_MAX "max"
+#define C_MIN "min"
+#define C_DTYPES "dtypes"
+#define C_HEAL "heal"
+
+
+/* -------------------- Defines fuer erweiterte Defendinformationen -- */
+#define EINFO_DEFEND		"einfo_defend"
+#define ORIGINAL_DAM		"original_dam"
+#define ORIGINAL_DAMTYPE	"original_damtype"
+#define CURRENT_DAM		"current_dam"
+#define CURRENT_DAMTYPE		"current_damtype"
+#define ORIGINAL_AINFO  	"original_ainfo"
+#define ENEMY_INSERTED		"enemy_inserted"
+#define RFR_REDUCE		"rfr_reduce"
+#define PRESENT_DEFENDERS  	"present_defenders"
+#define DEFENDING_DEFENDER	"defending_defender"
+#define DEFEND_HOOK		"defend_hook"
+#define DEFEND_ARMOURS		"defend_armours"
+#define DEFEND_GUILD		"defend_guild"
+#define DEFEND_RESI		"defend_resi"
+#define DEFEND_BODY		"defend_body"
+#define DEFEND_LOSTLP		"defend_lostlp"
+#define DEFEND_CUR_ARMOUR_PROT	"defend_cur_armour_prot"
+
+#define DEF_DEFENDER		0
+#define DEF_DAM			1
+#define DEF_DAMTYPE		2
+#define DEF_SPELL		3
+
+#define HOOK_DAM		0
+#define HOOK_DAMTYPE		1
+#define HOOK_SPELL		2
+#define DI_NOHOOK		0
+#define DI_HOOK			1
+#define DI_HOOKINTERRUPT	2
+
+#define DEF_ARMOUR_DAM		0
+#define DEF_ARMOUR_PROT		1
+
+#define GUILD_DAM		0
+#define GUILD_DAMTYPE		1
+
+#endif
+
+/* -------------------- Prototypen-Deklarationen -------------------- */
+
+#ifndef __COMBAT_H_PROTOTYPES__
+#define __COMBAT_H_PROTOTYPES__
+
+#ifdef NEED_PROTOTYPES
+
+#endif // NEED_PROTOTYPES
+
+#endif // __COMBAT_H_PROTOTYPES__
+
diff --git a/sys/comm.h b/sys/comm.h
new file mode 100644
index 0000000..16aeb33
--- /dev/null
+++ b/sys/comm.h
@@ -0,0 +1,15 @@
+#ifndef LPC_COMM_H_
+#define LPC_COMM_H_
+
+/* return values for net_connect() */
+
+#define NC_SUCCESS         0  /* Success! */
+#define NC_EUNKNOWNHOST    1  /* host address could not be resolved */
+#define NC_ENOSOCKET       2  /* socket could not be created */
+#define NC_ENOBIND         3  /* socket could not be bound */
+#define NC_ENOCONNECT      4  /* socket could not be connected */
+#define NC_ECONNREFUSED    5  /* target address not listening */
+#define NC_EMCONN          6  /* too many pending connections */
+#define NC_ENORESSOURCES   7  /* insufficient system ressources */
+
+#endif /* LPC_COMM_H_ */
diff --git a/sys/commands.h b/sys/commands.h
new file mode 100644
index 0000000..3982372
--- /dev/null
+++ b/sys/commands.h
@@ -0,0 +1,50 @@
+#ifndef LPC_COMMANDS_H_
+#define LPC_COMMANDS_H_
+
+/* Flags accepted by add_action(fun, verb, flag).
+ * (Below, VERB is what the player enters).
+ * Negative flag values allow VERB to be just the first -<flag>
+ * characters of <verb> (abbreviated verb).
+ */
+
+#define AA_VERB     0  /* VERB must be <verb> */
+#define AA_SHORT    1  /* VERB must start with <verb>,
+                        * args do not include extra characters */
+#define AA_NOSPACE  2  /* VERB must start with <verb>,
+                        * args and verb do include extra characters */
+#define AA_IMM_ARGS 3  /* VERB must start with <verb>,
+                        * args do include extra characters */
+
+/* Bitflags accepted by  query_actions(object ob, int mask)
+ */
+
+#define QA_VERB         1
+#define QA_TYPE         2
+#define QA_SHORT_VERB   4
+#define QA_OBJECT       8
+#define QA_FUNCTION    16
+
+
+/* Indices in the arrays returned from command_stack()
+ */
+
+#define CMD_VERB       0
+#define CMD_TEXT       1
+#define CMD_ORIGIN     2
+#define CMD_PLAYER     3
+#define CMD_FAIL       4
+#define CMD_FAILOBJ    5
+
+#define CMD_SIZE       6
+
+
+/* Indices into the subarrays returned from match_command()
+ */
+#define CMDM_VERB     0
+#define CMDM_ARG      1
+#define CMDM_OBJECT   2
+#define CMDM_FUN      3
+
+#define CMDM_SIZE     4
+
+#endif /* LPC_COMMANDS_H_ */
diff --git a/sys/configuration.h b/sys/configuration.h
new file mode 100644
index 0000000..b2c0b88
--- /dev/null
+++ b/sys/configuration.h
@@ -0,0 +1,40 @@
+#ifndef LPC_CONFIGURATION_H_
+#define LPC_CONFIGURATION_H_
+
+/* Definition of argument values for the configure_*() efuns.
+ */
+
+/* Possible options for configure_interactive().
+ */
+#define IC_MAX_WRITE_BUFFER_SIZE         0
+#define IC_SOCKET_BUFFER_SIZE            1
+#define IC_COMBINE_CHARSET_AS_STRING     2
+#define IC_COMBINE_CHARSET_AS_ARRAY      3
+#define IC_CONNECTION_CHARSET_AS_STRING  4
+#define IC_CONNECTION_CHARSET_AS_ARRAY   5
+#define IC_QUOTE_IAC                     6
+#define IC_TELNET_ENABLED                7
+#define IC_MCCP                          8
+#define IC_PROMPT                        9
+#define IC_MAX_COMMANDS                 10
+#define IC_MODIFY_COMMAND               11
+
+/* Possible options for configure_object().
+ */
+#define OC_COMMANDS_ENABLED    0
+#define OC_HEART_BEAT          1
+
+/* Possible options for configure_driver().
+ */
+#define DC_MEMORY_LIMIT                  0
+#define DC_ENABLE_HEART_BEATS            1
+#define DC_LONG_EXEC_TIME                2
+#define DC_DATA_CLEAN_TIME               3
+#define DC_TLS_CERTIFICATE               4
+#define DC_TLS_DHE_PARAMETER             5
+#define DC_TLS_CIPHERLIST                6
+#define DC_EXTRA_WIZINFO_SIZE            7
+#define DC_DEFAULT_RUNTIME_LIMITS        8
+#define DC_SWAP_COMPACT_MODE             9
+
+#endif /* LPC_CONFIGURATION_H_ */
diff --git a/sys/container.h b/sys/container.h
new file mode 100644
index 0000000..9555610
--- /dev/null
+++ b/sys/container.h
@@ -0,0 +1,73 @@
+// MorgenGrauen MUDlib
+//
+// container.h -- Properties und Definitionen fuer Behaelter
+//
+// $Id: container.h 9020 2015-01-10 21:49:41Z Zesstra $
+
+#ifndef __CONTAINER_H__
+#define __CONTAINER_H__
+
+#include <thing/restrictions.h>
+
+// properties
+#define P_CONTENTS            "contents"            // Obsolet!!!
+
+#define P_CONTAINER           "container"          // Objekt ist ein Container
+#define P_CNT_STATUS          "cnt_status"         // Status des Containers
+#define P_TRANSPARENT         "transparent"        // kann man hineinschaun?
+#define P_LIGHT_TRANSPARENCY  "light_transparency" // Lichtdurchlaessigkeit
+
+#define P_PREPOSITION         "preposition"        // Sachen IN dem Container
+#define P_SOURCE_PREPOSITION  "source_preposition" // kann man AUS ihm nehmen
+#define P_DEST_PREPOSITION    "dest_preposition"   // ...wieder IN ihn stecken
+
+#define P_MAX_WEIGHT          "max_weight"         // max. Gewicht
+#define P_WEIGHT_PERCENT      "weight_percent"     // Gewichtsreduktion in %
+
+#define P_TOTAL_OBJECTS       "total_objects"      // # der non-invis Objekte
+#define P_MAX_OBJECTS         "max_objects"        // max. Objektanzahl
+
+#define P_INT_LIGHT           "int_light"
+
+#define P_ITEMS               "items"              // siehe AddItem()
+
+#define P_PREVENT_PILE        "prevent_pile"       // siehe /std/corpse
+#define P_PILE_NAME           "pile_name"          // Name des Spielers im Dativ
+
+// special defines
+#define CNT_STATUS_OPEN   0
+#define CNT_STATUS_CLOSED 1
+#define CNT_STATUS_LOCKED 2
+
+#define R_INSERT "insert"
+
+#define CNT_ARRAY       1
+#define CNT_COLLECT     2
+
+#endif // __CONTAINER_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __CONTAINER_H_PROTO__
+#define __CONTAINER_H_PROTO__
+
+// prototypes
+// from: container/description.c
+varargs mixed make_invlist(object viewer, mixed inv, int array);
+
+// from: container/restrictions.c
+int query_weight_contents();
+static int _query_last_content_change();
+
+int MayAddWeight(int w);
+int MayAddObject(object ob);
+public int PreventInsert(object ob);
+public int PreventLeave(object ob, mixed dest);
+object *present_objects(string complex_desc);
+object *locate_objects(string complex_desc,int info);
+
+// container/items.c
+public varargs object     AddItem( mixed filename, int refresh, mixed props);
+#endif // __CONTAINER_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/container/moneyhandler.h b/sys/container/moneyhandler.h
new file mode 100644
index 0000000..62df3b7
--- /dev/null
+++ b/sys/container/moneyhandler.h
@@ -0,0 +1,20 @@
+// MorgenGrauen MUDlib
+//
+// container/moneyhandler.h -- Das -Geld-Interface
+//
+// $Id: moneyhandler.h,v 3.1 1997/02/12 13:29:09 Wargon Exp $
+
+#ifndef __CONTAINER_MONEYHANDLER_H__
+#define __CONTAINER_MONEYHANDLER_H__
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __CONTAINER_MONEYHANDLER_H_PROTO__
+#define __CONTAINER_MONEYHANDLER_H_PROTO__
+
+int AddMoney(int amount);
+int QueryMoney();
+
+#endif
+#endif
diff --git a/sys/daemon.h b/sys/daemon.h
new file mode 100644
index 0000000..4479bca
--- /dev/null
+++ b/sys/daemon.h
@@ -0,0 +1,10 @@
+// MorgenGrauen MUDlib
+//
+// daemon.h -- Definitionen fuer Objekte in /p/daemon/
+//
+// $Id: daemon.h 7419 2010-02-07 21:04:40Z Zesstra $
+
+#include "/sys/daemon/channel.h"    // channel handling
+#include "/sys/daemon/object.h"     // persistent object handling
+#include "/sys/daemon/traveld.h"    // TRAVEL daemon
+#include "/sys/daemon/mand.h"       // MAN daemon
diff --git a/sys/daemon/channel.h b/sys/daemon/channel.h
new file mode 100644
index 0000000..9f512e0
--- /dev/null
+++ b/sys/daemon/channel.h
@@ -0,0 +1,6 @@
+// ch.h - channel daemon defines
+// --
+// $timestamp::$
+
+#include "/p/daemon/channel.h"
+
diff --git a/sys/daemon/mand.h b/sys/daemon/mand.h
new file mode 100644
index 0000000..309f8d5
--- /dev/null
+++ b/sys/daemon/mand.h
@@ -0,0 +1,22 @@
+// MorgenGrauen MUDlib
+//
+// mand.h
+//
+// $Id: mand.h 6698 2008-01-29 23:26:08Z Zesstra $
+
+
+#ifndef __MAND_H__
+#define __MAND_H__
+
+#define MAND_DOCDIR "/doc/"
+#define MAND_EXCLUDE ({ "3.0","KURS","beispiele","old","new", "infomails"})
+#define MAND "/p/daemon/mand"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __MAND_H_PROTOS__
+#define __MAND_H_PROTOS__
+
+#endif
+#endif
diff --git a/sys/daemon/object.h b/sys/daemon/object.h
new file mode 100644
index 0000000..1ec06ac
--- /dev/null
+++ b/sys/daemon/object.h
@@ -0,0 +1,41 @@
+// MorgenGrauen MUDlib
+//
+// OBJECT.H -- persistent object handling
+//
+// $Date: 2002/08/28 10:04:28 $
+// $Revision: 1.1 $
+/* $Log: object.h,v $
+ * Revision 1.1  2002/08/28 10:04:28  Rikus
+ * Initial revision
+ *
+ * Revision 1.1  1995/03/31  13:30:33  Hate
+ * Initial revision
+ *
+ * Revision 1.1  1994/03/20  17:07:28  Hate
+ * Initial revision
+ *
+ */
+ 
+#ifndef __OBJECT_H__
+#define __OBJECT_H__
+
+// defines
+#define OBJECTD       "/p/daemon/objectd"
+#define OBJECTD_SAVE  "/p/daemon/save/objectd"
+
+#endif // __OBJECT_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __OBJECT_H_PROTO__
+#define __OBJECT_H_PROTO__
+
+// prototypes
+mixed AddObject(string obj, string env);
+mixed RemoveObject(string obj, string env);
+varargs void QueryObject(mixed env);
+
+
+#endif // __OBJECT_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/daemon/traveld.h b/sys/daemon/traveld.h
new file mode 100644
index 0000000..c17a637
--- /dev/null
+++ b/sys/daemon/traveld.h
@@ -0,0 +1,22 @@
+#ifndef __TRAVELD_H__
+#define __TRAVELD_H__
+
+#define TRAVELD          "/p/daemon/traveld"
+#define TRAVELD_SAVEFILE "/p/daemon/save/traveld"
+
+#ifdef NEED_PROTOTYPES
+#ifndef __TRAVELD_H_PROTO__
+#define __TRAVELD_H_PROTO__
+
+public void AddStop(string ship, string harbour);
+public void RemoveTransporter(object ship);
+public varargs mixed HasTransporter(object harbour, string ship);
+public mixed RouteExists(object ship, string dest);
+public mapping QueryShips();
+public mapping QueryAllHarbours();
+
+#endif // __TRAVELD_H_PROTO__
+
+#endif // NEED_PROTOTYPES
+
+#endif // __TRAVELD_H__
diff --git a/sys/daemon/whois.h b/sys/daemon/whois.h
new file mode 100644
index 0000000..b62682c
--- /dev/null
+++ b/sys/daemon/whois.h
@@ -0,0 +1,21 @@
+#ifndef __DAEMON_WHOIS_H__
+#define __DAEMON_WHOIS_H__
+
+#define WHOIS         "/p/daemon/udp/whois"
+
+#define DESCR   0
+#define COUNTRY 1
+#define DATE    2
+#define NETNAME 3
+
+
+// prototypes
+#ifdef NEED_PROTOTYPES
+
+mixed whois(string query, int type);
+string country(string query);
+string city(string query);
+string locate(string query, string ip);
+
+#endif /* NEED_PROTOTYPES */
+#endif /* __DAEMON_WHOIS_H__ */
diff --git a/sys/death_room.h b/sys/death_room.h
new file mode 100644
index 0000000..045db1b
--- /dev/null
+++ b/sys/death_room.h
@@ -0,0 +1,9 @@
+
+#ifndef _DEATH_ROOM_H_
+#define _DEATH_ROOM_H_
+
+
+// x muss ein Spielerobjekt sein
+#define IS_IN_DEATH_ROOM(x) (environment(x)&&object_name(environment(x))==("/room/death/virtual/death_room_"+getuid(x)))
+
+#endif
diff --git a/sys/debug.h b/sys/debug.h
new file mode 100644
index 0000000..188043a
--- /dev/null
+++ b/sys/debug.h
@@ -0,0 +1,61 @@
+// MorgenGrauen MUDlib
+//
+// debug.h -- Debug-Optionen fuer die MUDlib
+//
+// $Id: debug.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+#ifndef _DEBUG_
+#define _DEBUG_
+
+
+/*
+ * LPC debug options
+ */
+
+
+#define NODEBUG			/* all debugging modes disabled */
+
+#ifndef NODEBUG
+
+#define DEBUG_STD_CREATE        /* debug object creation in /std objects */
+/* #define DEBUG_PROPERTIES	/* some property debug functions */
+/* #define DEBUG_ID		/* echo the object id operation */
+#define DEBUG_PICK		/* object pickup */
+#define DEBUG_CMDS		/* command debugging for init */
+#define DEBUG_DOMAIN		/* debug domain files */
+#define DEBUG_DOOR		/* debug doors */
+#define WARN_UNDEFPROP		/* warnings if undef properties are set */
+#define DEBUG_EVENTS		/* debug event handler call */
+#define DEBUG_MOVE		/* debug in object moving */
+
+#define DEBUG_RES		/* debug restriction handling */
+#define DEBUG_RES_MAX		/* debug restriction |res_max| */
+#define DEBUG_RES_LIMIT		/* debug restriction |res_limit| */
+#define DEBUG_RES_PLAYER	/* restriction of number of something */
+/* #define DEBUG_FUNCTION	/* debug message functions */
+/* #define DEBUG_ARRAY		/* debug array and member comparison */
+#define DEBUG_PROPAGATION	/* debug background propagation mechanism */
+#define DEBUG_RES_GROUND	/* debug ground type restrictions */
+#define DEBUG_FEATURES	        /* debug feature mechanism */
+#define DEBUG_RES_FEATURES	/* debug feature mechanism */
+#define DEBUG_VIEW		/* debug players vision */
+#define DEBUG_PROPAGATION	/* debug background propagation mechanism */
+#define DEBUG_MSG		/* message debugging */
+#define DEBUG_SELECT		/* debug selection mechanism */
+#define DEBUG_RESOURCES		/* debug living resources */
+#define DEBUG_ISME		/* debug the is_me operation */
+#define DEBUG_FOLLOW		/* debug follow mode for walkers */
+#define DEBUG_RESOURCES2	/* debug living resources */
+#define ACCESS_DEBUG 1		/* debug of access control */
+#define DEBUG_SAVE		/* debug loading and saving of objects */
+#define DEBUG_BOARD		/* debug board system */
+#define DEBUG_ASEE		/* debug "to see" ability */
+#define DEBUG_SPELLS		/* debug spells */
+#define DEBUG_BATTLE		/* debug battle system */
+
+#endif
+
+
+
+#endif
+
diff --git a/sys/debug_info.h b/sys/debug_info.h
new file mode 100644
index 0000000..34fb7ee
--- /dev/null
+++ b/sys/debug_info.h
@@ -0,0 +1,218 @@
+#ifndef LPC_DEBUG_INFO_H_
+#define LPC_DEBUG_INFO_H_ 1
+
+#include "/sys/driver_info.h"
+
+/* Request values for efun debug_info().
+ */
+
+#define DINFO_OBJECT  0  /* Print information about an object */
+#define DINFO_MEMORY  1  /* Print memory usage of an object */
+#define DINFO_OBJLIST 2  /* Return an object from the global list */
+#define DINFO_MALLOC  3  /* Print the information from the 'malloc' cmd */
+#define DINFO_STATUS  4  /* Return the 'status' information */
+#define DINFO_DUMP    5  /* Dump some special information into files */
+#define DINFO_DATA    6  /* Return internal information */
+#define DINFO_TRACE   7  /* Return the current call trace */
+#define DINFO_EVAL_NUMBER 8 /* Return the current eval number */
+
+/* Sub-request values for debug_info(DINFO_DATA) */
+
+#define DID_STATUS  0  /* Return the 'status' and 'status tables' information */
+#define DID_SWAP    1  /* Return the 'status swap' information */
+#define DID_MEMORY  2  /* Return the 'status malloc' information */
+
+/* Sub-request values for debug_info(DINFO_TRACE) */
+
+#define DIT_CURRENT        0  /* Return the current call chain as an array */
+#define DIT_ERROR          1  /* Return the last error call chain as an array */
+#define DIT_UNCAUGHT_ERROR 2  /* Return the last uncaught error call chain */
+#define DIT_STR_CURRENT    3  /* Return the current call chain as a string */
+#define DIT_CURRENT_DEPTH  4  /* Return the current control stack depth */
+
+/* Indices into the array resulting from debug_info(DINFO_DATA, DID_STATUS)
+ */
+
+#define DID_ST_ACTIONS             0
+#define DID_ST_ACTIONS_SIZE        1
+#define DID_ST_SHADOWS             2
+#define DID_ST_SHADOWS_SIZE        3
+
+#define DID_ST_OBJECTS             4
+#define DID_ST_OBJECTS_SIZE        5
+#define DID_ST_OBJECTS_SWAPPED     6
+#define DID_ST_OBJECTS_SWAP_SIZE   7
+#define DID_ST_OBJECTS_LIST        8
+#define DID_ST_OBJECTS_NEWLY_DEST  9
+#define DID_ST_OBJECTS_DESTRUCTED 10
+#define DID_ST_OBJECTS_PROCESSED  11
+#define DID_ST_OBJECTS_AVG_PROC   12
+
+#define DID_ST_OTABLE             13
+#define DID_ST_OTABLE_SLOTS       14
+#define DID_ST_OTABLE_SIZE        15
+
+#define DID_ST_HBEAT_OBJS         16
+#define DID_ST_HBEAT_CALLS        17
+#define DID_ST_HBEAT_CALLS_TOTAL  18
+#define DID_ST_HBEAT_SLOTS        19
+#define DID_ST_HBEAT_SIZE         20
+#define DID_ST_HBEAT_PROCESSED    21
+#define DID_ST_HBEAT_AVG_PROC     22
+
+#define DID_ST_CALLOUTS           23
+#define DID_ST_CALLOUT_SIZE       24
+
+#define DID_ST_ARRAYS             25
+#define DID_ST_ARRAYS_SIZE        26
+
+#define DID_ST_MAPPINGS           27
+#define DID_ST_MAPPINGS_SIZE      28
+#define DID_ST_HYBRID_MAPPINGS    51
+#define DID_ST_HASH_MAPPINGS      54
+
+#define DID_ST_STRUCTS            29
+#define DID_ST_STRUCTS_SIZE       30
+#define DID_ST_STRUCT_TYPES       31
+#define DID_ST_STRUCT_TYPES_SIZE  32
+
+#define DID_ST_PROGS              33
+#define DID_ST_PROGS_SIZE         34
+
+#define DID_ST_PROGS_SWAPPED      35
+#define DID_ST_PROGS_SWAP_SIZE    36
+
+#define DID_ST_USER_RESERVE       37
+#define DID_ST_MASTER_RESERVE     38
+#define DID_ST_SYSTEM_RESERVE     39
+
+#define DID_ST_ADD_MESSAGE        40
+#define DID_ST_PACKETS            41
+#define DID_ST_PACKET_SIZE        42
+#define DID_ST_PACKETS_IN         43
+#define DID_ST_PACKET_SIZE_IN     44
+
+#define DID_ST_APPLY              45
+#define DID_ST_APPLY_HITS         46
+
+#define DID_ST_STRINGS            47
+#define DID_ST_STRING_SIZE        48
+#define DID_ST_STR_TABLE_SIZE     49
+#define DID_ST_STR_OVERHEAD       50
+#define DID_ST_UNTABLED           52
+#define DID_ST_UNTABLED_SIZE      53
+#define DID_ST_UNUSED54           54 /* UNUSED */
+#define DID_ST_UNUSED55           55 /* UNUSED */
+#define DID_ST_TABLED             56
+#define DID_ST_TABLED_SIZE        57
+#define DID_ST_STR_SEARCHES       58
+#define DID_ST_STR_SEARCHLEN      59
+#define DID_ST_STR_SEARCHES_BYVALUE   60
+#define DID_ST_STR_SEARCHLEN_BYVALUE  61
+#define DID_ST_STR_CHAINS         62
+#define DID_ST_STR_ADDED          63
+#define DID_ST_STR_DELETED        64
+#define DID_ST_STR_COLLISIONS     65
+#define DID_ST_STR_FOUND          66
+#define DID_ST_STR_FOUND_BYVALUE  67
+
+#define DID_ST_RX_CACHED          68
+#define DID_ST_RX_TABLE           69
+#define DID_ST_RX_TABLE_SIZE      70
+#define DID_ST_RX_REQUESTS        71
+#define DID_ST_RX_REQ_FOUND       72
+#define DID_ST_RX_REQ_COLL        73
+
+#define DID_ST_MB_FILE            74
+#define DID_ST_MB_SWAP            75
+
+#define DID_ST_BOOT_TIME          76
+
+#define DID_STATUS_MAX            77 /* Total number of entries */
+
+
+/* Indices into the array resulting from debug_info(DINFO_DATA, DID_SWAP)
+ */
+
+#define DID_SW_PROGS            0
+#define DID_SW_PROG_SIZE        1
+#define DID_SW_PROG_UNSWAPPED   2
+#define DID_SW_PROG_U_SIZE      3
+#define DID_SW_VARS             4
+#define DID_SW_VAR_SIZE         5
+#define DID_SW_FREE             6
+#define DID_SW_FREE_SIZE        7
+#define DID_SW_FILE_SIZE        8
+#define DID_SW_REUSED           9
+#define DID_SW_SEARCHES        10
+#define DID_SW_SEARCH_LEN      11
+#define DID_SW_F_SEARCHES      12
+#define DID_SW_F_SEARCH_LEN    13
+#define DID_SW_COMPACT         14
+#define DID_SW_RECYCLE_FREE    15
+
+#define DID_SWAP_MAX           16
+
+
+/* Indices into the array resulting from debug_info(DINFO_DATA, DID_MEMORY)
+ */
+
+#define DID_MEM_NAME            0
+#define DID_MEM_SBRK            1
+#define DID_MEM_SBRK_SIZE       2
+#define DID_MEM_LARGE           3
+#define DID_MEM_LARGE_SIZE      4
+#define DID_MEM_LFREE           5
+#define DID_MEM_LFREE_SIZE      6
+#define DID_MEM_LWASTED         7
+#define DID_MEM_LWASTED_SIZE    8
+#define DID_MEM_CHUNK           9
+#define DID_MEM_CHUNK_SIZE     10
+#define DID_MEM_SLAB            (DID_MEM_CHUNK)
+#define DID_MEM_SLAB_SIZE       (DID_MEM_CHUNK_SIZE)
+#define DID_MEM_SMALL          11
+#define DID_MEM_SMALL_SIZE     12
+#define DID_MEM_SFREE          13
+#define DID_MEM_SFREE_SIZE     14
+#define DID_MEM_SWASTED        15
+#define DID_MEM_SWASTED_SIZE   16
+#define DID_MEM_SMALL_OVERHEAD_SIZE  (DID_MEM_SWASTED_SIZE)
+#define DID_MEM_MINC_CALLS     17
+#define DID_MEM_MINC_SUCCESS   19
+#define DID_MEM_MINC_SIZE      19
+#define DID_MEM_PERM           20
+#define DID_MEM_PERM_SIZE      21
+#define DID_MEM_CLIB           22
+#define DID_MEM_CLIB_SIZE      23
+#define DID_MEM_OVERHEAD       24
+#define DID_MEM_ALLOCATED      25
+#define DID_MEM_USED           26
+#define DID_MEM_TOTAL_UNUSED   27
+#define DID_MEM_DEFRAG_CALLS             28
+#define DID_MEM_DEFRAG_CALLS_REQ         29
+#define DID_MEM_SLAB_FREE                 (DID_MEM_DEFRAG_CALLS)
+#define DID_MEM_SLAB_FREE_SIZE            (DID_MEM_DEFRAG_CALLS_REQ)
+#define DID_MEM_DEFRAG_REQ_SUCCESS       30
+#define DID_MEM_DEFRAG_BLOCKS_INSPECTED  31
+#define DID_MEM_DEFRAG_BLOCKS_MERGED     32
+#define DID_MEM_DEFRAG_BLOCKS_RESULT     33
+#define DID_MEM_AVL_NODES      34
+#define DID_MEM_EXT_STATISTICS 35
+
+#define DID_MEMORY_MAX         36
+
+/* Indices into the subarrays of DID_MEM_EXT_STATISTICS (if given) */
+
+#define DID_MEM_ES_MAX_ALLOC   0
+#define DID_MEM_ES_CUR_ALLOC   1
+#define DID_MEM_ES_MAX_FREE    2
+#define DID_MEM_ES_CUR_FREE    3
+#define DID_MEM_ES_AVG_XALLOC  4
+#define DID_MEM_ES_AVG_XFREE   5
+#define DID_MEM_ES_FULL_SLABS  6
+#define DID_MEM_ES_FREE_SLABS  7
+#define DID_MEM_ES_TOTAL_SLABS 8
+
+#define DID_MEM_ES_MAX  9
+
+#endif /* LPC_DEBUG_INFO_H_ */
diff --git a/sys/debug_message.h b/sys/debug_message.h
new file mode 100644
index 0000000..c5944d9
--- /dev/null
+++ b/sys/debug_message.h
@@ -0,0 +1,18 @@
+#ifndef LPC_DEBUG_MESSAGE_H_
+#define LPC_DEBUG_MESSAGE_H_ 1
+
+/* Definitions and macros for the debug_message() */
+
+#define DMSG_DEFAULT 0         /* log to stdout and .debug.log */
+#define DMSG_STDOUT  (1 << 0)  /* log to stdout */
+#define DMSG_STDERR  (1 << 1)  /* log to stderr */
+#define DMSG_LOGFILE (1 << 2)  /* log to .debug.log */
+
+#define DMSG_STAMP   (1 << 3)  /* Prepend the timestamp */
+
+/* Derived macros */
+
+#define DMSG_TARGET (DMSG_STDOUT|DMSG_STDERR|DMSG_LOGFILE)
+  /* Mask for all target bitflags */
+
+#endif /* LPC_DEBUG_MESSAGE_H_ */
diff --git a/sys/defines.h b/sys/defines.h
new file mode 100644
index 0000000..484b66f
--- /dev/null
+++ b/sys/defines.h
@@ -0,0 +1,63 @@
+// MorgenGrauen MUDlib
+//
+// defines.h -- Nuetzliche und oft gebrauchte Definitionen
+//
+// $Id: defines.h 7265 2009-08-21 18:13:22Z Zesstra $
+
+#ifndef _DEFINES_H_
+#define _DEFINES_H_
+
+// defines.h darf leider keine Standard-Includeverzeichnisse benutzen, weils
+// es vom Master selber benutzt wird.
+#include "/sys/break_string.h"
+
+#ifndef ME
+#define ME this_object()
+#endif
+
+#ifndef PL
+#define PL this_player()
+#endif
+
+#ifndef RPL
+#define RPL this_interactive()
+#endif
+
+#ifndef CAP
+#define CAP(str) capitalize(str)
+#endif
+
+#ifndef QPP
+#define QPP QueryPossPronoun
+#endif
+
+#define REAL_UID(x)   (explode(getuid(x),  ".")[<1])
+#define REAL_EUID(x)  (explode(geteuid(x), ".")[<1])
+
+// obsolet, nur aus Kompatibilitaetsgruenden noch vorhanden
+#ifndef IS_CLONE
+#define IS_CLONE(ob) (clonep(ob))
+#endif
+
+// obsolet, nur aus Kompatibilitaetsgruenden noch vorhanden
+#ifndef IS_BLUE
+#define IS_BLUE(ob) (!clonep(ob))
+#endif
+
+#ifndef BLUE_NAME
+#define BLUE_NAME(ob) load_name(ob)
+//#define BLUE_NAME(ob) (explode(object_name(ob),"#")[0])
+#endif
+
+#ifndef IS_PARA
+#define IS_PARA(ob) (sizeof(regexp(({to_string(ob)}),"\\^[1-9][0-9]*$")))
+
+#endif
+
+// obsolet, nur aus Kompatibilitaetsgruenden noch vorhanden
+#ifndef MAX
+#define MAX(a,b) max(a,b)
+#endif
+
+#endif /* _DEFINES_H_ */
+
diff --git a/sys/defuel.h b/sys/defuel.h
new file mode 100644
index 0000000..d5f2f0d
--- /dev/null
+++ b/sys/defuel.h
@@ -0,0 +1,39 @@
+// MorgenGrauen MUDlib
+//
+// defuel.h -- Header fuer defuel.c (Enttanken)
+//
+// $Id: defuel.h,v 1.3 2003/11/11 10:59:06 Muadib Exp $
+
+#ifndef __DEFUEL_H__
+#define __DEFUEL_H__
+
+//--------------------------------------------------------------------------
+//   Statistik
+#define FUELSTAT	"/d/erzmagier/muadib/fuelstat/fuelstat"   
+
+
+//--------------------------------------------------------------------------
+//   Limit - #defines
+//   Ab wieviel kann man ueberhaupt enttanken? (rassenabhaengig)
+#define   P_DEFUEL_LIMIT_FOOD       "defuel_limit_food"
+#define   P_DEFUEL_LIMIT_DRINK      "defuel_limit_drink"
+
+//--------------------------------------------------------------------------
+//   Time - #defines
+//   Wielange muss man zwischen dem Enttanken verdauen? (rassenabhaengig)
+#define   P_DEFUEL_TIME_FOOD        "defuel_time_food"
+#define   P_DEFUEL_TIME_DRINK       "defuel_time_drink"
+
+//--------------------------------------------------------------------------
+//   Amount - #defines
+//   Wieviel Prozent der aktuellen P_FOOD/P_DRINK Werte kann man enttanken?
+//   (rassenabhaenhig)
+#define   P_DEFUEL_AMOUNT_FOOD      "defuel_amount_food"
+#define   P_DEFUEL_AMOUNT_DRINK     "defuel_amount_drink"
+
+// Returnwerte der zu verwendeten Interfaces
+#define   NO_DEFUEL                  0  // leer
+#define   DEFUEL_TOO_LOW            -1  // nicht leer, aber zu wenig
+#define   DEFUEL_TOO_SOON           -2  // letztes entanken ist noch nicht 
+                                        // lange genug her
+#endif // __DEFUEL_H__
diff --git a/sys/doorroom.h b/sys/doorroom.h
new file mode 100644
index 0000000..8f63143
--- /dev/null
+++ b/sys/doorroom.h
@@ -0,0 +1,73 @@
+// MorgenGrauen MUDlib
+//
+// doorroom.h -- new doors, managed by doormaster
+//
+// $Id: doorroom.h 9128 2015-01-26 17:42:21Z Arathorn $
+
+#ifndef _DOORROOM_H_
+#define _DOORROOM_H_
+
+#define DOOR_MASTER "/obj/doormaster"
+#define P_DOOR_INFOS "door_infos"   // Informationen
+
+#define DOOR_OPEN     0x01 // Tuer initial offen
+#define DOOR_CLOSED   0x02 // Tuer initial zu
+#define DOOR_NEEDKEY  0x08 // Man braucht einen Schluessel zum Oeffnen
+#define DOOR_CLOSEKEY 0x10 // Man braucht einen Schluessel zum Schliessen
+#define DOOR_RESET_CL 0x20 // Tuer schliesst sich bei jedem reset()
+#define DOOR_RESET_OP 0x40 // Tuer oeffnet sich bei jedem reset()
+
+#define D_DEST 0
+#define D_CMDS 1
+#define D_IDS 2
+
+// properties
+// Ab hier die aenderbaren Eigenschaften der Tuer
+#define D_FLAGS 3
+#define D_LONG 4
+#define D_SHORT 5
+#define D_NAME 6
+#define D_GENDER 7
+#define D_FUNC 8
+// Funktion, die VOR dem Durchschreiten der Tuer aufgerufen wird (im Startraum)
+#define D_MSGS 9
+// Messages fuer Move
+#define D_FUNC2 10
+// Funktion, die NACH dem Durchschreiten der Tuer aufgerufen wird (im Zielraum)
+#define D_TESTFUNC 11
+// Funktion, die testet, ob die Tuer durchschritten werden darf (im Startraum)
+#define D_RESET_MSG 12
+// Meldung beim Tuer-Reset (tuer->name(WER,0)+D_RESET_MSG).
+#define D_OPEN_WITH_MOVE 13
+// Falls gesetzt wird die Tuer auch mit dem Bewegungsbefehl geoeffnet
+// und durchschritten, falls oeffnen erfolgreich
+
+#define D_MINPROPS 3
+#define D_MAXPROPS 13
+
+#define D_STATUS_LOCKED -2
+#define D_STATUS_CLOSED -1
+#define D_STATUS_OPEN    1
+
+#endif /* _DOORROOM_H_ */
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __DOORROOM_H_PROTO__
+#define __DOORROOM_H_PROTO__
+
+// prototypes
+mapping QueryAllDoors();
+varargs int NewDoor(string|string* cmds, string dest, string|string* ids,
+                    mapping|<int|string|string*>* props);
+void    init_doors ();
+string  look_doors ();
+void    reset_doors ();
+varargs int go_door (string str);
+//int     oeffnen (string str);
+//int     schliessen (string str);
+int     set_doors (string *cmds, int open);
+varargs string GetExits(object viewer); 
+
+#endif /* __DOORROOM_H_PROTO__ */
+#endif /* NEED_PROTOTYPES */
diff --git a/sys/driver_hook.h b/sys/driver_hook.h
new file mode 100644
index 0000000..0b97f80
--- /dev/null
+++ b/sys/driver_hook.h
@@ -0,0 +1,36 @@
+#ifndef LPC_DRIVER_HOOK_H_
+#define LPC_DRIVER_HOOK_H_ 1
+
+/* --- Driver Hooks ---
+ */
+
+#define H_MOVE_OBJECT0           0
+#define H_MOVE_OBJECT1           1
+#define H_LOAD_UIDS              2
+#define H_CLONE_UIDS             3
+#define H_CREATE_SUPER           4
+#define H_CREATE_OB              5
+#define H_CREATE_CLONE           6
+#define H_RESET                  7
+#define H_CLEAN_UP               8
+#define H_MODIFY_COMMAND         9
+#define H_NOTIFY_FAIL           10
+#define H_NO_IPC_SLOT           11
+#define H_INCLUDE_DIRS          12
+#define H_TELNET_NEG            13
+#define H_NOECHO                14
+#define H_ERQ_STOP              15
+#define H_MODIFY_COMMAND_FNAME  16
+#define H_COMMAND               17
+#define H_SEND_NOTIFY_FAIL      18
+#define H_AUTO_INCLUDE          19
+#define H_DEFAULT_METHOD        20
+#define H_DEFAULT_PROMPT        21
+#define H_PRINT_PROMPT          22
+#define H_REGEXP_PACKAGE        23
+#define H_MSG_DISCARDED         24
+
+#define NUM_DRIVER_HOOKS        25  /* Number of hooks */
+
+#endif /* LPC_DRIVER_HOOK_ */
+
diff --git a/sys/driver_info.h b/sys/driver_info.h
new file mode 100644
index 0000000..336975c
--- /dev/null
+++ b/sys/driver_info.h
@@ -0,0 +1,237 @@
+#ifndef LPC_DRIVER_INFO_H_
+#define LPC_DRIVER_INFO_H_
+
+/* Definition of argument values for driver_info()
+ */
+
+#include "configuration.h"
+
+/* Driver Environment */
+#define DI_BOOT_TIME                                          -1
+
+/* LPC Runtime status */
+#define DI_CURRENT_RUNTIME_LIMITS                            -10
+#define DI_EVAL_NUMBER                                       -11
+
+/* Network configuration */
+#define DI_MUD_PORTS                                         -20
+#define DI_UDP_PORT                                          -21
+
+/* Memory management */
+#define DI_MEMORY_RESERVE_USER                               -30
+#define DI_MEMORY_RESERVE_MASTER                             -31
+#define DI_MEMORY_RESERVE_SYSTEM                             -32
+
+/* Traces */
+#define DI_TRACE_CURRENT                                     -40
+#define DI_TRACE_CURRENT_DEPTH                               -41
+#define DI_TRACE_CURRENT_AS_STRING                           -42
+#define DI_TRACE_LAST_ERROR                                  -43
+#define DI_TRACE_LAST_ERROR_AS_STRING                        -44
+#define DI_TRACE_LAST_UNCAUGHT_ERROR                         -45
+#define DI_TRACE_LAST_UNCAUGHT_ERROR_AS_STRING               -46
+
+/* LPC Runtime statistics */
+#define DI_NUM_FUNCTION_NAME_CALLS                          -100
+#define DI_NUM_FUNCTION_NAME_CALL_HITS                      -101
+#define DI_NUM_FUNCTION_NAME_CALL_MISSES                    -102
+
+#define DI_NUM_OBJECTS_LAST_PROCESSED                       -103
+
+#define DI_NUM_HEARTBEAT_TOTAL_CYCLES                       -104
+#define DI_NUM_HEARTBEAT_ACTIVE_CYCLES                      -105
+#define DI_NUM_HEARTBEATS_LAST_PROCESSED                    -106
+
+#define DI_NUM_STRING_TABLE_STRINGS_ADDED                   -110
+#define DI_NUM_STRING_TABLE_STRINGS_REMOVED                 -111
+#define DI_NUM_STRING_TABLE_LOOKUPS_BY_VALUE                -112
+#define DI_NUM_STRING_TABLE_LOOKUPS_BY_INDEX                -113
+#define DI_NUM_STRING_TABLE_LOOKUP_STEPS_BY_VALUE           -114
+#define DI_NUM_STRING_TABLE_LOOKUP_STEPS_BY_INDEX           -115
+#define DI_NUM_STRING_TABLE_HITS_BY_VALUE                   -116
+#define DI_NUM_STRING_TABLE_HITS_BY_INDEX                   -117
+#define DI_NUM_STRING_TABLE_COLLISIONS                      -118
+
+#define DI_NUM_REGEX_LOOKUPS                                -120
+#define DI_NUM_REGEX_LOOKUP_HITS                            -121
+#define DI_NUM_REGEX_LOOKUP_MISSES                          -122
+#define DI_NUM_REGEX_LOOKUP_COLLISIONS                      -123
+
+/* Network statistics */
+#define DI_NUM_MESSAGES_OUT                                 -200
+#define DI_NUM_PACKETS_OUT                                  -201
+#define DI_NUM_PACKETS_IN                                   -202
+#define DI_SIZE_PACKETS_OUT                                 -203
+#define DI_SIZE_PACKETS_IN                                  -204
+
+/* Load */
+#define DI_LOAD_AVERAGE_COMMANDS                            -300
+#define DI_LOAD_AVERAGE_LINES                               -301
+#define DI_LOAD_AVERAGE_PROCESSED_OBJECTS                   -302
+#define DI_LOAD_AVERAGE_PROCESSED_OBJECTS_RELATIVE          -303
+#define DI_LOAD_AVERAGE_PROCESSED_HEARTBEATS_RELATIVE       -304
+
+/* Memory use statistics */
+#define DI_NUM_ACTIONS                                      -400
+#define DI_NUM_CALLOUTS                                     -401
+#define DI_NUM_HEARTBEATS                                   -402
+#define DI_NUM_SHADOWS                                      -403
+#define DI_NUM_OBJECTS                                      -404
+#define DI_NUM_OBJECTS_SWAPPED                              -405
+#define DI_NUM_OBJECTS_IN_LIST                              -406
+#define DI_NUM_OBJECTS_IN_TABLE                             -407
+#define DI_NUM_OBJECTS_DESTRUCTED                           -408
+#define DI_NUM_OBJECTS_NEWLY_DESTRUCTED                     -409
+#define DI_NUM_OBJECT_TABLE_SLOTS                           -410
+#define DI_NUM_PROGS                                        -411
+#define DI_NUM_PROGS_SWAPPED                                -412
+#define DI_NUM_PROGS_UNSWAPPED                              -413
+#define DI_NUM_ARRAYS                                       -414
+#define DI_NUM_MAPPINGS                                     -415
+#define DI_NUM_MAPPINGS_CLEAN                               -416
+#define DI_NUM_MAPPINGS_HASH                                -417
+#define DI_NUM_MAPPINGS_HYBRID                              -418
+#define DI_NUM_STRUCTS                                      -419
+#define DI_NUM_STRUCT_TYPES                                 -420
+#define DI_NUM_VIRTUAL_STRINGS                              -421
+#define DI_NUM_STRINGS                                      -422
+#define DI_NUM_STRINGS_TABLED                               -423
+#define DI_NUM_STRINGS_UNTABLED                             -424
+#define DI_NUM_STRING_TABLE_SLOTS                           -425
+#define DI_NUM_STRING_TABLE_SLOTS_USED                      -426
+#define DI_NUM_REGEX                                        -427
+#define DI_NUM_REGEX_TABLE_SLOTS                            -428
+
+#define DI_SIZE_ACTIONS                                     -450
+#define DI_SIZE_CALLOUTS                                    -451
+#define DI_SIZE_HEARTBEATS                                  -452
+#define DI_SIZE_SHADOWS                                     -453
+#define DI_SIZE_OBJECTS                                     -454
+#define DI_SIZE_OBJECTS_SWAPPED                             -455
+#define DI_SIZE_OBJECT_TABLE                                -456
+#define DI_SIZE_PROGS                                       -457
+#define DI_SIZE_PROGS_SWAPPED                               -458
+#define DI_SIZE_PROGS_UNSWAPPED                             -459
+#define DI_SIZE_ARRAYS                                      -460
+#define DI_SIZE_MAPPINGS                                    -461
+#define DI_SIZE_STRUCTS                                     -462
+#define DI_SIZE_STRUCT_TYPES                                -463
+#define DI_SIZE_STRINGS                                     -464
+#define DI_SIZE_STRINGS_TABLED                              -465
+#define DI_SIZE_STRINGS_UNTABLED                            -466
+#define DI_SIZE_STRING_TABLE                                -467
+#define DI_SIZE_STRING_OVERHEAD                             -468
+#define DI_SIZE_REGEX                                       -469
+#define DI_SIZE_BUFFER_FILE                                 -470
+#define DI_SIZE_BUFFER_SWAP                                 -471
+
+/* Memory swapper statistics */
+#define DI_NUM_SWAP_BLOCKS                                  -500
+#define DI_NUM_SWAP_BLOCKS_FREE                             -501
+#define DI_NUM_SWAP_BLOCKS_REUSE_LOOKUPS                    -502
+#define DI_NUM_SWAP_BLOCKS_REUSE_LOOKUP_STEPS               -503
+#define DI_NUM_SWAP_BLOCKS_FREE_LOOKUPS                     -505
+#define DI_NUM_SWAP_BLOCKS_FREE_LOOKUP_STEPS                -506
+#define DI_SIZE_SWAP_BLOCKS                                 -507
+#define DI_SIZE_SWAP_BLOCKS_FREE                            -508
+#define DI_SIZE_SWAP_BLOCKS_REUSED                          -509
+#define DI_SWAP_RECYCLE_PHASE                               -510
+
+/* Memory allocator statistics */
+#define DI_MEMORY_ALLOCATOR_NAME                            -600
+
+#define DI_NUM_SYS_ALLOCATED_BLOCKS                         -610
+#define DI_NUM_LARGE_BLOCKS_ALLOCATED                       -611
+#define DI_NUM_LARGE_BLOCKS_FREE                            -612
+#define DI_NUM_LARGE_BLOCKS_WASTE                           -613
+#define DI_NUM_SMALL_BLOCKS_ALLOCATED                       -614
+#define DI_NUM_SMALL_BLOCKS_FREE                            -615
+#define DI_NUM_SMALL_BLOCKS_WASTE                           -616
+#define DI_NUM_SMALL_BLOCK_CHUNKS                           -617
+#define DI_NUM_UNMANAGED_BLOCKS                             -618
+#define DI_NUM_FREE_BLOCKS_AVL_NODES                        -619
+
+#define DI_SIZE_SYS_ALLOCATED_BLOCKS                        -630
+#define DI_SIZE_LARGE_BLOCKS_ALLOCATED                      -631
+#define DI_SIZE_LARGE_BLOCKS_FREE                           -632
+#define DI_SIZE_LARGE_BLOCKS_WASTE                          -633
+#define DI_SIZE_LARGE_BLOCK_OVERHEAD                        -634
+#define DI_SIZE_SMALL_BLOCKS_ALLOCATED                      -635
+#define DI_SIZE_SMALL_BLOCKS_FREE                           -636
+#define DI_SIZE_SMALL_BLOCKS_WASTE                          -637
+#define DI_SIZE_SMALL_BLOCK_OVERHEAD                        -638
+#define DI_SIZE_SMALL_BLOCK_CHUNKS                          -639
+#define DI_SIZE_UNMANAGED_BLOCKS                            -640
+#define DI_SIZE_MEMORY_USED                                 -641
+#define DI_SIZE_MEMORY_UNUSED                               -642
+#define DI_SIZE_MEMORY_OVERHEAD                             -643
+
+#define DI_NUM_INCREMENT_SIZE_CALLS                         -650
+#define DI_NUM_INCREMENT_SIZE_CALL_SUCCESSES                -651
+#define DI_SIZE_INCREMENT_SIZE_CALL_DIFFS                   -652
+#define DI_NUM_REPLACEMENT_MALLOC_CALLS                     -653
+#define DI_SIZE_REPLACEMENT_MALLOC_CALLS                    -654
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALLS_FULL            -655
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALLS_TARGETED        -656
+#define DI_NUM_MEMORY_DEFRAGMENTATION_CALL_TARGET_HITS      -657
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_INSPECTED      -658
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_MERGED         -659
+#define DI_NUM_MEMORY_DEFRAGMENTATION_BLOCKS_RESULTING      -660
+
+#define DI_MEMORY_EXTENDED_STATISTICS                       -670
+
+/* Status texts */
+#define DI_STATUS_TEXT_MEMORY                               -700
+#define DI_STATUS_TEXT_TABLES                               -701
+#define DI_STATUS_TEXT_SWAP                                 -702
+#define DI_STATUS_TEXT_MALLOC                               -703
+#define DI_STATUS_TEXT_MALLOC_EXTENDED                      -704
+
+/* Indices into the subarrays of DI_MEMORY_EXTENDED_STATISTICS (if given) */
+
+#define DIM_ES_MAX_ALLOC   0
+#define DIM_ES_CUR_ALLOC   1
+#define DIM_ES_MAX_FREE    2
+#define DIM_ES_CUR_FREE    3
+#define DIM_ES_AVG_XALLOC  4
+#define DIM_ES_AVG_XFREE   5
+#define DIM_ES_FULL_SLABS  6
+#define DIM_ES_FREE_SLABS  7
+#define DIM_ES_TOTAL_SLABS 8
+
+#define DIM_ES_MAX  9
+
+
+/* Definition of argument values for dump_driver_info()
+ */
+
+#define DDI_OBJECTS                     0
+#define DDI_OBJECTS_DESTRUCTED          1
+#define DDI_OPCODES                     2
+#define DDI_MEMORY                      3
+
+/* Indices into the subarrays resulting from driver_info(DI_TRACE_*)
+ */
+
+#define TRACE_TYPE    0
+#define TRACE_NAME    1
+#define TRACE_PROGRAM 2
+#define TRACE_OBJECT  3
+#define TRACE_LOC     4
+#ifdef __EVAL_COST_TRACE__
+#define TRACE_EVALCOST 5
+
+#define TRACE_MAX     6
+#else
+#define TRACE_MAX     5
+#endif
+
+/* Values for entry TRACE_TYPE */
+
+#define TRACE_TYPE_SYMBOL  0
+#define TRACE_TYPE_SEFUN   1
+#define TRACE_TYPE_EFUN    2
+#define TRACE_TYPE_LAMBDA  3
+#define TRACE_TYPE_LFUN    4
+
+#endif /* LPC_DRIVER_INFO_H_ */
diff --git a/sys/erq.h b/sys/erq.h
new file mode 100644
index 0000000..3d0edfd
--- /dev/null
+++ b/sys/erq.h
@@ -0,0 +1,59 @@
+/* external request demon interface definitions */
+
+#ifndef LPC__ERQ_H__
+#define LPC__ERQ_H__ 1
+
+/* servive request types */
+
+#define ERQ_RLOOKUP     0  /* Lookup ip -> name */
+#define ERQ_EXECUTE     1  /* Execute a program */
+#define ERQ_FORK        2  /* Fork a program */
+#define ERQ_AUTH        3  /* Connect to a remote authd */
+#define ERQ_SPAWN       4  /* Spawn a program */
+#define ERQ_SEND        5  /* Send data to a program or connection */
+#define ERQ_KILL        6  /* Kill a program or connection */
+#define ERQ_OPEN_UDP    7  /* Open a UDP socket */
+#define ERQ_OPEN_TCP    8  /* Open a TCP connection */
+#define ERQ_LISTEN      9  /* Open a TCP accept-socket */
+#define ERQ_ACCEPT     10  /* Accept a connection from a accept-socket */
+#define ERQ_LOOKUP     11  /* Lookup name -> ip */
+
+#ifdef __IPV6__
+#define ERQ_RLOOKUPV6  12  /* Lookup name/ip6 */
+#endif
+
+/* Additional service request type flags evaluated by efun send_erq().
+ * The ERQ itself won't get to see it.
+ */
+
+#define ERQ_CB_STRING  (1 << 31)  /* Callback closure takes a string arg */
+
+
+/* answers from ERQ_EXECUTE / ERQ_FORK */
+
+#define ERQ_OK		  0
+#define ERQ_SIGNALED	  1
+#define ERQ_E_NOTFOUND	  2  /* process not found by wait */
+#define ERQ_E_UNKNOWN	  3  /* unknown exit condition from wait() */
+#define ERQ_E_ARGLENGTH	  4
+#define ERQ_E_ARGFORMAT	  5
+#define ERQ_E_ARGNUMBER	  6
+#define ERQ_E_ILLEGAL	  7
+#define ERQ_E_PATHLEN	  8
+#define ERQ_E_FORKFAIL	  9
+#define ERQ_E_TICKET	 11
+#define ERQ_E_INCOMPLETE 12
+#define ERQ_E_WOULDBLOCK 13
+#define ERQ_E_PIPE	 14
+#define ERQ_STDOUT	 15  /* Normal data received */
+#define ERQ_STDERR	 16
+#define ERQ_EXITED	 17  /* Connection closed on EOF */
+#define ERQ_E_NSLOTS	 18
+
+/* reserved handles */
+
+#define ERQ_HANDLE_RLOOKUP (-1)
+#define ERQ_HANDLE_KEEP_HANDLE (-2)
+#define ERQ_HANDLE_RLOOKUPV6 (-3)
+
+#endif /* LPC__ERQ_H__ */
diff --git a/sys/events.h b/sys/events.h
new file mode 100644
index 0000000..a5f45f6
--- /dev/null
+++ b/sys/events.h
@@ -0,0 +1,64 @@
+// MorgenGrauen MUDlib
+//
+// /sys/events.h -- Standard-Event-ID und Prototypen der Mudlib
+//
+// $Id$
+
+#ifndef __EVENTS_H__
+#define __EVENTS_H__
+
+#define EVENTD "/p/daemon/eventd"
+
+// Standardlib
+#define EVT_LIB_LOGIN               "evt_lib_login"
+#define EVT_LIB_LOGOUT              "evt_lib_logout"
+#define EVT_LIB_PLAYER_DEATH        "evt_lib_player_death"
+#define EVT_LIB_PLAYER_DELETION     "evt_lib_player_deletion"
+#define EVT_LIB_PLAYER_CREATION	    "evt_lib_player_creation"
+#define EVT_LIB_NPC_DEATH(x)        ("evt_lib_npc_death_"+x)
+#define EVT_LIB_ADVANCE             "evt_lib_advance"
+#define EVT_LIB_QUEST_SOLVED        "evt_lib_quest_solved"
+#define EVT_LIB_MINIQUEST_SOLVED    "evt_lib_miniquest_solved"
+#define EVT_LIB_PLAYER_ATTR_CHANGE  "evt_lib_player_attr_change"
+#define EVT_LIB_CLOCK               "evt_lib_clock"
+#define EVT_LIB_DATECHANGE          "evt_lib_datechange"
+#define EVT_LIB_NEW_ERROR           "evt_lib_eventd_new_error"
+
+// Gilden
+#define EVT_GUILD_CHANGE        "evt_guild_change"
+#define EVT_GUILD_ADVANCE       "evt_guild_advance"
+
+
+// Konstanten fuer Event-Daten. s. Manpages der einzelnen Events, die
+// Bedeutungen dieser Keys koennen sich jeweils leicht unterscheiden!
+#define E_TIME            "evt_time"
+#define E_OBJECT          "evt_object"
+#define E_OBNAME          "evt_object_name"
+#define E_ENVIRONMENT     "evt_environment"
+#define E_PLNAME          "evt_player_name"
+#define E_EXTERNAL_DEATH  "evt_external_death"
+#define E_POISON_DEATH    "evt_poison_death"
+#define E_CORPSE          "evt_corpse"
+#define E_GUILDNAME       "evt_guild_name"
+#define E_LAST_GUILDNAME  "evt_last_guild_name"
+#define E_QUESTNAME       "evt_quest_name"
+#define E_QP_GRANTED      "evt_qp_granted"
+#define E_MINIQUESTNAME   "evt_miniquest_name"
+#define E_MQP_GRANTED     "evt_mqp_granted"
+
+#endif // __EVENTS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __EVENTS_PROTOTYPES_H_
+#define __EVENTS_PROTOTYPES_H_
+        int CheckEventID(string eid);
+        int RegisterEvent(string eid, string fun, object ob);
+        int UnregisterEvent(string eid, object ob);
+varargs int TriggerEvent(string eid, mixed args);
+
+#endif // __EVENTS_PROTOTYPES_H_
+
+
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/files.h b/sys/files.h
new file mode 100644
index 0000000..3d7e2c8
--- /dev/null
+++ b/sys/files.h
@@ -0,0 +1,29 @@
+#ifndef LPC_FILES_H_
+#define LPC_FILES_H_ 1
+
+/* Definitions and macros for the various file efuns */
+
+/* Special return values of file_size() and the size part of get_dir().
+ */
+
+#define FSIZE_NOFILE  -1  /* File doesn't exist or is not readable */
+#define FSIZE_DIR     -2  /* The file is actually a directory */
+
+
+/* Flag values for get_dir().
+ */
+
+#define GETDIR_EMPTY       (0)  /* return an empty array (not very useful) */
+#define GETDIR_NAMES     (0x01)  /* return the filenames */
+#define GETDIR_SIZES     (0x02)  /* return the file sizes */
+#define GETDIR_DATES     (0x04)  /* return the dates of last modification */
+/*                       (0x08) unused */
+#define GETDIR_ACCESS    (0x40)  /* return the dates of last access */
+#define GETDIR_MODES     (0x80)  /* return the file mode */
+
+#define GETDIR_PATH      (0x10)  /* with _NAMES: add the path to the filenames */
+#define GETDIR_UNSORTED  (0x20)  /* return the results unsorted */
+
+#define GETDIR_ALL       (0xDF)  /* return all */
+
+#endif /* LPC_FILES_H_ */
diff --git a/sys/fishing.h b/sys/fishing.h
new file mode 100644
index 0000000..be660eb
--- /dev/null
+++ b/sys/fishing.h
@@ -0,0 +1,6 @@
+// MorgenGrauen MUDlib
+//
+// $Id: fishing.h 8930 2014-09-08 22:00:32Z Arathorn $
+
+#include <items/fishing/fishing.h>
+
diff --git a/sys/food.h b/sys/food.h
new file mode 100644
index 0000000..085c6cb
--- /dev/null
+++ b/sys/food.h
@@ -0,0 +1,198 @@
+// MorgenGrauen MUDlib
+//
+// /sys/food.sys  - Defines und Prototypen fuer Lebensmittel
+//
+// $Id: food.h 7702 2010-10-26 21:22:37Z Zesstra $
+
+#ifndef _FOOD_H_
+#define _FOOD_H_
+
+#include <properties.h>
+
+// Fuellgrad pro Portion Essen (defined in life.h)
+// #define   P_FOOD
+
+// Fuellgrad pro Schluck des Getraenkes (defined in life.h)
+// #define   P_DRINK
+
+// Menge an Alkohol, die die Speise pro Portion hat (defined in life.h)
+// #define   P_ALCOHOL
+
+// Heilwirkung der Speise (defined in life.h)
+// #define   P_SP
+// #define   P_HP
+
+// Gewicht pro Portion (defined in restrictions.h)
+// in P_EMPTY_PROPS ist es das Gewicht des Behaelters
+// mit beiden Angaben wird das Gewicht immer korrekt berechnet
+// #define   P_WEIGHT
+
+// Wert pro Portion (defined in properties.h)
+// in P_EMPTY_PROPS ist es der Wert des Behaelters
+// mit beiden Angaben wird der Wert immer korrekt berechnet
+// #define   P_VALUE
+
+// Die Meldung, die die Umstehenden erhalten, wenn gegessen/getrunken wird.
+#define   P_CONSUME_MSG        "std_food_consume_msg"
+
+// Die Meldung, die derjenige kriegt, der das Ding isst/trinkt.
+#define   P_EATER_MSG          "std_food_eater_msg"
+
+// Message, wenn man die Speise beim Konsumieren gar nicht in der Hand hat
+// Wenn man die Prop loescht, kann die Speise immer vertilgt werden
+#define   P_ENV_MSG            "std_food_env_msg"
+
+// Die Meldung, wenn die Speise leer ist
+#define   P_EMPTY_MSG          "std_food_empty_msg"
+
+// Die Meldung, wenn Getraenke gegessen werden
+#define   P_NOFOOD_MSG         "std_food_nofood_msg"
+
+// Die Meldung, wenn Speisen getrunken werden
+#define   P_NODRINK_MSG        "std_food_nodrink_msg"
+
+// Die Meldung, wenn die Speise gerade verdirbt
+#define   P_BAD_MSG            "std_food_bad_msg"
+
+// Die Meldung, wenn nichts mehr gegessen werden kann
+#define   P_FOOD_FULL_MSG      "std_food_full_msg"
+// Die Meldung, wenn nichts mehr getrunken werden kann
+#define   P_DRINK_FULL_MSG     "std_food_drink_full_msg"
+// Die Meldung, wenn nichts mehr alkoholisches geht
+#define   P_ALC_FULL_MSG       "std_food_alc_full_msg"
+// Die Meldung, wenn eine verdorbene Speise zerstoert wird
+// wird nur verwendet, wenn P_DESTROY_BAD > 0 ist
+#define   P_REMOVE_MSG         "std_food_remove_message"
+
+// Mapping mit Properties fuer den leeren Behaelter.
+// Alle enthaltenen Properties werden gesetzt, wenn
+// keine Portionen mehr vorhanden sind, bereits in diesen Properties
+// eingetragene Werte werden ueberschrieben!
+// Wenn diese Property nicht gesetzt ist, wird die Speise zerstoert,
+// wenn alle Portionen aufgebraucht ist.
+// Achtung: es werden keine closures unterstuetzt!
+#define   P_EMPTY_PROPS        "std_food_empty_props"
+
+// Wieviele Portionen hat die Speise
+#define   P_PORTIONS           "std_food_portions"
+
+// Verteilung der Heilungsrate pro Portion (siehe H_DISTRIBUTION)
+#define   P_DISTRIBUTION       "std_food_distribution"
+
+// Anzahl der Sekunden, bis die Speise verdorben ist.
+// Es muss ein Wert groesser 0 eingetragen werden.
+// Wenn kein Wert gesetzt wird, verdirbt die Speise beim naechsten Reset
+// Der Timer startet immer erst, wenn ein Spieler die Speise das erste Mal
+// in die Hand bekommt
+#define   P_LIFETIME           "std_food_lifetime"
+// Anzahl der Resets, bis die Speise verdorben ist.
+// P_RESET_LIFETIME und P_LIFETIME sind komplementaer, das heisst, dass
+// beim Setzen der einen die andere automatisch berechnet wird. Man braucht
+// daher nicht beide zu setzen, bzw. sollte dies gar nicht erst tun.
+#define   P_RESET_LIFETIME     "std_food_lifetime_reset"
+
+// Flag, ob die Speise verdirbt
+// Standard: 0 -> Darf nur mit Balancegenehmigung geaendert werden!
+#define   P_NO_BAD             "std_food_no_bad"
+
+// Zeit in Sekunden, wann die Speise nach dem Schlechtwerden zerstoert wird.
+// wenn P_EMPTY_PROPS gesetzt ist, wird der Behaelter geleert.
+// Standard: -1 = sofort beim Schlechtwerden
+//            0 = wird nicht zerstoert
+//           >0 = Anzahl der Sekunden
+#define   P_DESTROY_BAD        "std_food_destroy_bad"
+#define   DESTROY_NEVER         0
+#define   DESTROY_BAD          -1
+
+//============================================================================
+// Kompatibilitaetscode
+#define   F_IS_FOOD            "old_is_food"
+#define   F_IS_DRINK           "old_is_drink"
+#define   F_IS_FULL            "old_is_full"
+#define   F_MESSAGE            "old_mess"
+#define   F_EATER              "old_eater"
+#define   F_EMPTY_CONTAINER    "old_empty_con"
+#define   F_EMPTY_GENDER       "old_empty_gender"
+#define   F_EMPTY_ID           "old_empty_id"
+#define   F_EMPTY_LONG         "old_empty_long"
+#define   F_ALC                "old_alc"
+#define   F_LIQUID             "old_water"
+#define   F_FOOD_SIZE          "old_food_size"
+#define   F_POTION             "old_potion"
+#define   F_HEAL_SP            "old_heal_sp"
+#define   F_HEAL_HP            "old_heal_hp"
+#define   F_NO_CONTAINER       "old_no_con"
+#define   F_BAD                "old_bad"
+#define   F_POISON             "old_poison"
+
+#endif // _FOOD_H_
+
+#ifdef NEED_PROTOTYPES
+#ifndef _FOOD_H_PROTOTYPES_
+#define _FOOD_H_PROTOTYPES_
+
+public int cmd_eat(string str);
+public int cmd_drink(string str);
+public int is_eatable();
+public int is_drinkable();
+public int is_not_empty();
+public int is_bad();
+
+// Anzahl der Sekunden, die das Lebensmittel bereits hinter sich hat,
+// seit es mit einem Spieler in Beruehrung kam
+// wenn 0 zurueckgegeben wird, ist der Timer zum Schlechtwerden noch nicht
+// gestartet worden
+public int get_current_lifetime();
+
+// Startet den Timer zum Verderben der Speise, falls keine Gruende dagegen
+// sprechen, wird von init() und NotifyMove aufgerufen, kann in speziellen
+// Situationen aber auch manuell aufgerufen werden (siehe man food)
+public void start_lifetime();
+
+// wird aufgerufen, wenn die Speise verdorben ist und die Zeit aus
+// P_DESTROY_BAD abgelaufen ist
+// return 1, falls Objekt zerstoert wird, sonst 0
+public int make_destroy();
+
+// wird aufgerufen, wenn die Speise gerade verdirbt
+// return 1, falls Objekt dabei zerstoert wird, sonst 0
+public int make_bad();
+
+// wird aufgerufen, sobald die letzte Portion gegessen/getrunken wurde
+// Falls P_EMPTY_PROPS 0 ist, wird das Objekt zerstoert
+// return 1, falls Objekt dabei zerstoert wird, sonst 0
+public int make_empty();
+
+// wird jedesmal aufgerufen, wenn eine verdorbene Speise konsumiert wird.
+// Als Argument wird das Mapping uebergeben, das consume() im Lebewesen
+// uebergeben werden soll. Dieses Mapping kann veraendert werden.
+// Standard: Die Heilwirkung wird entfernt und stattdessen wird das Lebewesen
+//           vergiftet.
+protected void consume_bad(mapping entry_info);
+
+// wird aus cmd_eat und cmd_drink aufgerufen und fuehrt das Konsumieren durch
+protected int consume();
+// wird aus consume() aufgerufen und fuehrt das Konsumieren durch
+// ist ausgelagert, damit man das testflag bei Bedarf nutzen kann
+protected varargs int try_consume(int testonly);
+
+// Futtern hat geklappt
+protected void success_consume();
+// Futtern hat nicht geklappt (leerer Behaelter ist hier kein Grund!)
+// Wird aus try_consume() gerufen.
+// reason entspricht dem Rueckgabewert von consume() im Lebewesen.
+protected void failed_consume(int reason);
+
+// Methode, die Meldungen zu Statusaenderungen verarbeitet und korrekt ausgibt.
+// Es wird der Name der auszugebenen Property uebergeben.
+// Es werden alle notwendigen Ersetzungen per replace_personal gemacht und
+// geprueft, ob dem Besitzer oder dem Raum die Meldung ausgegeben werden
+// muss.
+// Hierueber sollten nur Meldungen ausgegeben werden, die durch Aenderungen
+// an der Speise im Reset ausgeloest werden, also im reset selbst und in den
+// make_*-Methoden.
+protected void message(string prop);
+
+#endif // _FOOD_H_PROTOTYPES_
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/functionlist.h b/sys/functionlist.h
new file mode 100644
index 0000000..61dcd64
--- /dev/null
+++ b/sys/functionlist.h
@@ -0,0 +1,62 @@
+#ifndef LPC_FUNCTIONLIST_H
+#define LPC_FUNCTIONLIST_H
+
+#ifndef __DRIVER_SOURCE__
+#include "lpctypes.h"
+
+#define NAME_INHERITED      0x80000000 /* Defined by inheritance         */
+#define TYPE_MOD_STATIC     0x40000000 /* Static function or variable    */
+#define TYPE_MOD_NO_MASK    0x20000000 /* The nomask => not redefineable */
+#define TYPE_MOD_PRIVATE    0x10000000 /* Can't be inherited             */
+#define TYPE_MOD_PUBLIC     0x08000000 /* Force inherit through private  */
+#define TYPE_MOD_VARARGS    0x04000000 /* Used for type checking         */
+#define TYPE_MOD_VIRTUAL    0x02000000  /* can be re- and cross- defined */
+#define TYPE_MOD_PROTECTED  0x01000000 /* cannot be called externally    */
+#define TYPE_MOD_XVARARGS   0x00800000  /* accepts optional arguments    */
+#define TYPE_MOD_NOSAVE     TYPE_MOD_STATIC  /* vars: can't be saved     */
+  /* Internally TYPE_MOD_NOSAVE is 0x00400000, but that never leaves
+   * the compiler.
+   */
+#define NAME_CROSS_DEFINED  0x00080000 /* function defined from other program */
+#define NAME_HIDDEN         0x00020000 /* Not visible for inheritance    */
+#define NAME_PROTOTYPE      0x00010000 /* Defined by a prototype only    */
+#define NAME_UNDEFINED      0x00008000 /* Not defined yet                */
+#define NAME_TYPES_LOST     0x00004000 /* inherited, no save_types       */
+
+#endif /* !__DRIVER_SOURCE__ */
+
+
+/* Return value flag types for functionlist() and variable_list() */
+
+#define RETURN_FUNCTION_NAME	0x01
+#define RETURN_FUNCTION_FLAGS	0x02
+#define RETURN_FUNCTION_TYPE	0x04
+
+
+/* Additional return value flag types for functionlist() */
+
+#define RETURN_FUNCTION_NUMARG	0x08
+#define RETURN_FUNCTION_ARGTYPE 0x10 /* not implemented */
+
+
+/* Additional return value flag types for variable_list() */
+
+#define RETURN_VARIABLE_VALUE	0x08
+
+
+/* Masks of the flag unions allowed for various efuns: */
+#define RETURN_FUNCTION_MASK    0x0f  /* functionlist() */
+#define RETURN_VARIABLE_MASK    0x0f  /* variable_list() */
+
+/* Return value flag types for function_exists() */
+
+#define FEXISTS_PROGNAME  (0)
+#define FEXISTS_FILENAME  (1)
+#define FEXISTS_LINENO    (2)
+#define FEXISTS_NUMARG    (3)
+#define FEXISTS_TYPE      (4)
+#define FEXISTS_FLAGS     (5)
+
+#define FEXISTS_ALL       (3)
+
+#endif /* LPC_FUNCTIONLIST_H */
diff --git a/sys/guard.h b/sys/guard.h
new file mode 100644
index 0000000..9cc477f
--- /dev/null
+++ b/sys/guard.h
@@ -0,0 +1,12 @@
+// MorgenGrauen MUDlib
+//
+// guard.h -- Definition fuer P_GUARD-Property von NPCs.
+//
+// $Id: guard.h 7701 2010-10-24 20:38:37Z Zesstra $
+
+#ifndef _GUARD_H_
+#define _GUARD_H_
+
+#define P_GUARD "guard"
+
+#endif
diff --git a/sys/header.h b/sys/header.h
new file mode 100644
index 0000000..ac7a107
--- /dev/null
+++ b/sys/header.h
@@ -0,0 +1,24 @@
+// MorgenGrauen MUDlib
+//
+// xxxx.h -- header
+//
+// $Id: header.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+ 
+#ifndef __XXXX_H__
+#define __XXXX_H__
+
+// properties
+
+#endif // __XXXX_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __XXXX_H_PROTO__
+#define __XXXX_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __XXXX_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/health.h b/sys/health.h
new file mode 100644
index 0000000..7457bcb
--- /dev/null
+++ b/sys/health.h
@@ -0,0 +1,50 @@
+// MorgenGrauen MUDlib
+//
+// health.h -- Heilstaerken und -geschwindigkeiten
+//
+// $Id: health.h 8368 2013-02-12 21:03:07Z Zesstra $
+
+#ifndef _HEALTH_
+#define _HEALTH_
+
+/*
+ * health.h
+ *
+ * A configuration file for all food and drink stuff
+ */
+
+/* These are tune macros to determine the actual effect of food, */
+/* drink and alcohol */
+#define ALOCHOL_VALUE(strength) strength
+#define DRINK_VALUE(strength) strength
+#define FOOD_VALUE(strength) strength
+
+/* How fast alcohol wears off and drink and food are reduced */
+#define ALCOHOL_DELAY 5 /* quite fast */
+#define DRINK_DELAY 7 /* quite medium */
+#define FOOD_DELAY 9 /* quite slow */
+#define HEAL_DELAY 4 /* quite fast */
+
+#define POISON_DELAY 4
+#define POISON_MERCY_DELAY 3
+
+#define ALC_EFFECT_HICK 0
+#define ALC_EFFECT_RUELPS 1
+#define ALC_EFFECT_LOOKDRUNK 2
+#define ALC_EFFECT_STUMBLE 3
+
+#define ALC_EFFECT_AREA_GUILD 0
+#define ALC_EFFECT_AREA_ENV 1
+
+/* Any regeneration prohibited ? */
+#define NO_REG_HP         0x01
+#define NO_REG_BUFFER_HP  0x02
+#define NO_REG_SP         0x04
+#define NO_REG_BUFFER_SP  0x08
+#define NO_REG_ALCOHOL    0x10
+#define NO_REG_DRINK      0x20
+#define NO_REG_FOOD       0x40
+#define NO_REG   (NO_REG_HP|NO_REG_BUFFER_HP|NO_REG_SP|NO_REG_BUFFER_SP| \
+                  NO_REG_ALCOHOL|NO_REG_DRINK|NO_REG_FOOD)
+                  
+#endif
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
diff --git a/sys/idn.h b/sys/idn.h
new file mode 100644
index 0000000..d8823b5
--- /dev/null
+++ b/sys/idn.h
@@ -0,0 +1,26 @@
+#ifndef LPC_IDN_H_
+#define LPC_IDN_H_ 1
+
+/* --- IDNA Constants ---
+ */
+
+/* idna_stringprep() profiles. */
+
+#define STRINGPREP_NAMEPREP 1
+#define STRINGPREP_SASLPREP 2
+#define STRINGPREP_PLAIN 3
+#define STRINGPREP_TRACE 4
+#define STRINGPREP_KERBEROS5 5
+#define STRINGPREP_XMPP_NODEPREP 6
+#define STRINGPREP_XMPP_RESOURCEPREP 7 
+#define STRINGPREP_ISCSI 8
+
+/* idna_stringprep() flags */
+
+#define STRINGPREP_NO_NFKC_FLAG        (1<<0)
+#define STRINGPREP_NO_BIDI_FLAG        (1<<1)
+#define STRINGPREP_NO_UNASSIGNED_FLAG  (1<<2)
+
+#define STRINGPREP_FLAG_MAX  (1<<2)
+
+#endif
diff --git a/sys/include_list.h b/sys/include_list.h
new file mode 100644
index 0000000..ad86f24
--- /dev/null
+++ b/sys/include_list.h
@@ -0,0 +1,9 @@
+#ifndef LPC_INCLUDE_LIST_H
+#define LPC_INCLUDE_LIST_H
+
+/* Return value flag types for include_list() */
+
+#define INCLIST_FLAT         0x00
+#define INCLIST_TREE         0x01
+
+#endif /* LPC_INCLUDE_LIST_H */
diff --git a/sys/inherit_list.h b/sys/inherit_list.h
new file mode 100644
index 0000000..626b1e9
--- /dev/null
+++ b/sys/inherit_list.h
@@ -0,0 +1,10 @@
+#ifndef LPC_INHERIT_LIST_H
+#define LPC_INHERIT_LIST_H
+
+/* Return value flag types for inherit_list() */
+
+#define INHLIST_FLAT         0x00
+#define INHLIST_TREE         0x01
+#define INHLIST_TAG_VIRTUAL  0x02
+
+#endif /* LPC_INHERIT_LIST_H */
diff --git a/sys/inpc.h b/sys/inpc.h
new file mode 100644
index 0000000..0ffced9
--- /dev/null
+++ b/sys/inpc.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// inpc.h -- Headerfile fuer intelligente NPCs
+//
+// $Id: inpc.h,v 3.4 2003/08/06 19:06:11 Vanion Exp $
+
+#ifndef __INPC_H__
+#define __INPC_H__
+
+#include "/sys/inpc/select.h"
+#include "/sys/inpc/eval.h"
+#include "/sys/inpc/walking.h"
+#include "/sys/inpc/boozing.h"
+
+#endif
diff --git a/sys/inpc/boozing.h b/sys/inpc/boozing.h
new file mode 100644
index 0000000..94909eb
--- /dev/null
+++ b/sys/inpc/boozing.h
@@ -0,0 +1,22 @@
+// MorgenGrauen MUDlib
+//
+// inpc/boozing.h -- Intelligent Saufen
+//
+// $Id: boozing.h,v 1.2 1997/02/12 13:17:14 Wargon Exp $
+
+#ifndef __INPC_BOOZING_H__
+#define __INPC_BOOZING_H__
+
+#define P_I_HATE_ALCOHOL "i_hate_alcohol"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __INPC_BOOZING_PROTO__
+#define __INPC_BOOZING_PROTO__
+
+int Drink();
+void DrinkLoop();
+
+#endif
+#endif
diff --git a/sys/inpc/eval.h b/sys/inpc/eval.h
new file mode 100644
index 0000000..0a10a42
--- /dev/null
+++ b/sys/inpc/eval.h
@@ -0,0 +1,13 @@
+// MorgenGrauen MUDlib
+//
+// inpc/eval.h -- Definitionen zum Einschaetzen
+//
+// $Id: eval.h,v 3.1 1997/02/12 13:17:14 Wargon Exp $
+
+#ifndef __INPC_EVAL_H__
+#define __INPC_EVAL_H__
+
+#define P_EVAL_OFFSETS "inpc_eval_offsets"
+#define P_EVAL_FACTORS "inpc_eval_factors"
+
+#endif
diff --git a/sys/inpc/select.h b/sys/inpc/select.h
new file mode 100644
index 0000000..ef2dcf2
--- /dev/null
+++ b/sys/inpc/select.h
@@ -0,0 +1,40 @@
+// MorgenGrauen MUDlib
+//
+// inpc/select.h -- Definitionen zur Objektauswahl
+//
+// $Id: select.h,v 3.3 2003/08/06 18:40:05 Vanion Exp $
+
+#ifndef __INPC_SELECT_H__
+#define __INPC_SELECT_H__
+
+#define OT_WEAPON "weapon"
+#define OT_COMBAT_OBJECT "combat_object"
+#define OT_MISC "misc_objects"
+#define INPC_BEST_WEAPON_ID "inpc_best_weapon"
+#define INPC_BEST_SHIELD_ID "inpc_best_shield"
+
+// if npc does not like weapons, i.e. Karateorc
+#define INPC_DONT_WIELD_WEAPONS "inpc_dont_wield_weapons"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __INPC_SELECT_PROTO__
+#define __INPC_SELECT_PROTO__
+
+int eval_wepon(object ob);
+int eval_armour(object ob);
+int eval_combat_object(object ob, mapping vals, object enemy);
+
+object find_best_weapon(mixed from);
+object find_best_armour(mixed from, mixed typ);
+object *find_best_armours(mixed from);
+varargs string find_best_combat_command(mixed from, object enemy, mapping pref);
+
+varargs int wield_best_weapon(mixed from);
+varargs int wear_best_armours(mixed from);
+varargs int use_best_combat_command(mixed enemy, mixed from, mapping pref);
+
+
+#endif
+#endif
diff --git a/sys/inpc/walking.h b/sys/inpc/walking.h
new file mode 100644
index 0000000..6e143cf
--- /dev/null
+++ b/sys/inpc/walking.h
@@ -0,0 +1,43 @@
+// MorgenGrauen MUDlib
+//
+// walking.h -- Definitionen und Properties fuer laufende INPCs
+//
+// $Id: walking.h,v 3.1 1997/02/12 13:17:14 Wargon Exp $
+
+#ifndef __INPC_WALKING_H__
+#define __INPC_WALKING_H__
+
+// Properties and types
+#define P_INPC_LAST_PLAYER_CONTACT "inpc_last_player_contact"
+#define P_INPC_LAST_ENVIRONMENT "inpc_last_environment"
+#define P_INPC_WALK_MODE "inpc_walk_mode"
+#define P_INPC_WALK_DELAYS "inpc_walk_delay"
+#define P_INPC_WALK_FLAGS "inpc_walk_flags"
+#define P_INPC_WALK_AREA "inpc_walk_area"
+#define P_INPC_WALK_ROUTE "inpc_walk_route"
+#define P_INPC_HOME "inpc_home"
+
+#define WF_MAY_LOAD 0x01
+#define WF_MAY_FOLLOW 0x02
+#define WF_MAY_USE_SPECIAL 0x04
+#define WF_MAY_WALK_BACK 0x08
+
+#define WM_STOP 0
+#define WM_RANDOM 1
+#define WM_ROUTE 2
+#define WM_WALKTO 3
+#define WM_FOLLOW 4
+#define WM_FLEE 5
+
+#endif // __INPC_WALKING_H__
+
+#ifdef NEED_PROTOTYPES
+#ifndef __INPC_WALKING_H_PROTOTYPES__
+#define __INPC_WALKING_H_PROTOTYPES__
+
+// Prototypen
+int may_enter_room(mixed room);
+
+#endif // __INPC_WALKING_H_PROTOTYPES__
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/input_to.h b/sys/input_to.h
new file mode 100644
index 0000000..f7f094f
--- /dev/null
+++ b/sys/input_to.h
@@ -0,0 +1,17 @@
+#ifndef LPC_INPUT_TO_H_
+#define LPC_INPUT_TO_H_
+
+/* Mode values recognized by the efun input_to() */
+
+#define INPUT_NOECHO         1  /* Don't echo the next line typed */
+#define INPUT_CHARMODE       2  /* Switch into/out of charmode */
+#define INPUT_PROMPT         4  /* Use a custom prompt */
+#define INPUT_NO_TELNET      8  /* Switch into/out of charmode on the driver
+                                 * side only.
+                                 */
+#define INPUT_APPEND        16  /* Append the input_to to the list of already
+                                 * pending input_to's.
+                                 */
+#define INPUT_IGNORE_BANG  128  /* Disallow the '!' escape */
+
+#endif /* LPC_INPUT_TO_H_ */
diff --git a/sys/interactive_info.h b/sys/interactive_info.h
new file mode 100644
index 0000000..920ac92
--- /dev/null
+++ b/sys/interactive_info.h
@@ -0,0 +1,29 @@
+#ifndef LPC_INTERACTIVE_INFO_H_
+#define LPC_INTERACTIVE_INFO_H_
+
+/* Definition of argument values for interactive_info()
+ */
+
+#include "configuration.h"
+
+/* Connection information */
+#define II_IP_NAME                      -1
+#define II_IP_NUMBER                    -2
+#define II_IP_PORT                      -3
+#define II_IP_ADDRESS                   -4
+#define II_MUD_PORT                     -5
+
+/* Telnet related information */
+#define II_MCCP_STATS                   -10
+
+/* Input handling */
+#define II_INPUT_PENDING                -20
+#define II_EDITING                      -21
+#define II_IDLE                         -22
+
+/* Output handling */
+#define II_SNOOP_NEXT                   -30
+#define II_SNOOP_PREV                   -31
+#define II_SNOOP_ALL                    -32
+
+#endif /* LPC_INTERACTIVE_INFO_H_ */
diff --git a/sys/items/fishing/aquarium.h b/sys/items/fishing/aquarium.h
new file mode 100644
index 0000000..0ac700d
--- /dev/null
+++ b/sys/items/fishing/aquarium.h
@@ -0,0 +1,15 @@
+#ifndef _AQUARIUM_
+#define _AQUARIUM_
+
+#define STDFISHLIST ([ \
+  W_BEACH:  ({"scholle","flunder","rochen","szunge","khai"}),\
+  W_HARBOR: ({"rochen","dorsch","szunge","hering","khai"}),\
+  W_OCEAN:  ({"thun","hai","kjau","schwert","seehase","seeteufel", \
+              "seewolf"}),\
+  W_RIVER:  ({"piranha","lachs","forelle","bsaib"}), \
+  W_POOL:   ({"stichling","gfisch","schlei","karpfen","gorfe"}), \
+  W_LAKE:   ({"ssaib","barsch","hecht","karpfen"}), \
+  W_ROCK:   ({"lachs","forelle","bsaib"}), \
+  W_STREAM: ({"stichling","bforelle","neun","bsaib"}) ]) \
+
+#endif
diff --git a/sys/items/fishing/fishing.h b/sys/items/fishing/fishing.h
new file mode 100644
index 0000000..38970fc
--- /dev/null
+++ b/sys/items/fishing/fishing.h
@@ -0,0 +1,72 @@
+// MorgenGrauen MUDlib
+//
+// fishing.h -- Definitionen fuer alles, was sich ums Angeln dreht
+//              Fragen, Vorschlaege etc. an Arathorn
+//
+// $Id: fishing.h,v 3.2 2002/12/17 10:01:43 Rikus Exp $
+
+#ifndef __FISHING_H__
+#define __FISHING_H__
+
+// Standardobjekte/-pfade
+#define ANGELBASE(x) ("/std/items/fishing/"+x)
+#define STD_ANGEL    ANGELBASE("angel")
+#define STD_FISCH    ANGELBASE("fish")
+#define STD_HAKEN    ANGELBASE("haken")
+#define STD_KOEDER   ANGELBASE("koeder")
+
+#define ANGELOBJ(x)  ("/items/fishing/"+x)
+
+// ******************
+// * Gewaessertypen *
+// ******************
+#define P_WATER  "water"
+
+// Gewaessertypen
+// Salzwasser
+#define W_BEACH     1    // Strand
+#define W_HARBOR    2    // Hafen
+#define W_OCEAN     4    // Ozean
+// Suesswasser
+#define W_RIVER     8    // Fluss
+#define W_POOL     16    // Teich
+#define W_LAKE     32    // See
+#define W_ROCK     64    // Bergbach
+#define W_STREAM   256   // Bach
+// Sonstige
+#define W_USER     128   // hier kann man ein eigenes Aquarium anhaengen!
+#define W_DEAD     512   // Lebloses Wasser/enthaelt keine Fische/man kann
+                         // aber die Stdflasche fuellen.
+#define W_OTHER   1024   // Flasche enthaelt Fluessigkeit!=Wasser
+
+// vordefinierte Kombinationen fuer Angeln:
+#define W_SHORT (W_HARBOR|W_RIVER|W_POOL|W_LAKE|W_ROCK|W_USER|W_OCEAN|W_STREAM)
+#define W_LONG  (W_BEACH|W_USER)
+#define W_SALT  (W_HARBOR|W_OCEAN|W_BEACH)               // Salzwasser
+#define W_SWEET (W_RIVER|W_POOL|W_LAKE|W_ROCK|W_STREAM)  // Suesswasser
+#define W_UNIVERSAL (W_SHORT|W_LONG)
+
+// **********
+// * Fische *
+// **********
+#define P_FISH     "fish"
+#define P_FISH_AGE "fish_age"
+
+// Flags fuer Fische
+#define F_NOROTTEN  1   // Fisch fault nicht.
+#define F_NOTHUNGRY 2   // isst Koeder nicht auf, falls zu schwer fuer Angel
+#define F_REPLACE   4   // Soll sich beim Entfernen von Angel verwandeln.
+#define F_NOHEAL    8   // Fisch heilt nicht bei Verzehr
+
+// Pfad zum "Aquarium", dort finden sich die Standardfische. Zuordnung
+// zu den Gewaessertypen siehe /sys/items/fishing/aquarium.h
+#define FISH(x) ANGELOBJ("aquarium/"+x)
+
+// IDs fuer Angel,Haken,Wurm,Fisch
+#define ANGEL_ID "\nf_angel"
+#define HAKEN_ID "\nf_koeder"
+#define WURM_ID  "\nf_worm"
+#define FISCH_ID "\nf_fish"
+
+#endif // __FISHING_H__
+
diff --git a/sys/items/flasche.h b/sys/items/flasche.h
new file mode 100644
index 0000000..de901ab
--- /dev/null
+++ b/sys/items/flasche.h
@@ -0,0 +1,23 @@
+// MorgenGrauen MUDlib
+//
+// flasche.h -- Definitionen fuer eine Standardflasche
+//
+// $Id: fishing.h,v 3.2 2002/12/17 10:01:43 Rikus Exp $
+
+#ifndef __FLASCHE_H__
+#define __FLASCHE_H__
+
+// *************
+// * Behaelter *
+// *************
+// Zur Erklaerung siehe am besten /d/ebene/fraggle/txt/flasche.txt
+// Fassungsvermoegen des Behaelters in ml
+#define P_LIQUID     "w_max_wasserfuellmenge"
+
+// Zusatz zu P_LONG fuer leeren Zustand des Stdhakens
+#define P_LONG_EMPTY "w_longdesc_empty"
+
+// Zusatz zu P_LONG fuer gefuellten Zustand der Stdflasche
+#define P_LONG_FULL  "w_longdesc_full"
+
+#endif // __FLASCHE_H__
diff --git a/sys/items/kraeuter/kraeuter.h b/sys/items/kraeuter/kraeuter.h
new file mode 100644
index 0000000..596606f
--- /dev/null
+++ b/sys/items/kraeuter/kraeuter.h
@@ -0,0 +1,40 @@
+// MorgenGrauen MUDlib
+//
+// kraeuter.h -- Definition fuer Kraeuter 
+//
+// $Id: fishing.h,v 3.2 2002/12/17 10:01:43 Rikus Exp $
+
+#ifndef __KRAEUTER_H__
+#define __KRAEUTER_H__
+
+#define KRAEUTERLISTE      "/sys/items/kraeuter/kraeuterliste.h"
+
+#define PLANTDIR           "/items/kraeuter/"
+
+#define SECURE(x) ("/secure/"+x)
+#define KRAEUTERVCSAVEFILE SECURE("ARCH/kraeuterVC")
+#define PLANTMASTER        (SECURE("krautmaster"))
+#define KRAEUTERVC         PLANTDIR"virtual_compiler"
+
+#define STDPLANT           "/std/items/kraeuter/kraut"
+#define PLANTITEM          PLANTDIR"kraut"
+#define STDTRANK           "/std/items/kraeuter/trank"
+#define TRANKITEM          PLANTDIR"trank"
+
+#define KESSELID           "_lib\nkraeuterkessel"
+
+#define INGREDIENT_ID           0
+#define INGREDIENT_DEMON        1
+#define INGREDIENT_GENDER       2
+#define INGREDIENT_NAME         3
+#define INGREDIENT_ADJ          4
+#define INGREDIENT_LONG         5
+#define INGREDIENT_ROOMDETAIL   6
+
+#define PLANT_ROOMDETAIL   "_lib_p_plantroomdetail"
+
+#define IS_PLANT(x) (member(inherit_list(x), \
+                     "/std/items/kraeuter/kraut.c")>=0)
+
+#endif // __KRAEUTER_H__
+
diff --git a/sys/items/kraeuter/kraeuterliste.h b/sys/items/kraeuter/kraeuterliste.h
new file mode 100644
index 0000000..159d53f
--- /dev/null
+++ b/sys/items/kraeuter/kraeuterliste.h
@@ -0,0 +1,256 @@
+// Automatisch generiertes File, nicht von Hand editieren!
+// Erzeugendes File: /secure/krautmaster
+
+#define PLANTCOUNT 249
+
+#define PLANT(x) "/items/kraeuter/"+x
+
+#define ZYPRESSENWOLFSMILCH            PLANT("zypressenwolfsmilch")
+#define ZWOELFFINGERKRAUT              PLANT("zwoelffingerkraut")
+#define ZWIRBELWURZ                    PLANT("zwirbelwurz")
+#define ZWERGWURZ                      PLANT("zwergwurz")
+#define ZWERGENHUT                     PLANT("zwergenhut")
+#define ZWACKELKRAUT                   PLANT("zwackelkraut")
+#define ZOOKZWIEBEL                    PLANT("zookzwiebel")
+#define ZICKZACK_KLEE                  PLANT("zickzack_klee")
+#define ZESSTRAZWIEBEL                 PLANT("zesstrazwiebel")
+#define ZAPPERLILIE                    PLANT("zapperlilie")
+#define WURZELSILIE                    PLANT("wurzelsilie")
+#define WURMKRAUT                      PLANT("wurmkraut")
+#define WUNDKLEE                       PLANT("wundklee")
+#define WUESTENROSE                    PLANT("wuestenrose")
+#define WUESTENENZIAN                  PLANT("wuestenenzian")
+#define WUERGERKRAUT                   PLANT("wuergerkraut")
+#define WOLPITROESTER                  PLANT("wolpitroester")
+#define WINDWURZ                       PLANT("windwurz")
+#define WINDNESSEL                     PLANT("windnessel")
+#define WILHELMSBURGER_SIEBENSTERN     PLANT("wilhelmsburger_siebenstern")
+#define WIESENSCHAUMKRAUT              PLANT("wiesenschaumkraut")
+#define WIESENRISPE                    PLANT("wiesenrispe")
+#define WIESENRETTICH                  PLANT("wiesenrettich")
+#define WIESENMELDE                    PLANT("wiesenmelde")
+#define WIESENLICHTNELKE               PLANT("wiesenlichtnelke")
+#define WIESENKUCKUCKSBLUME            PLANT("wiesenkuckucksblume")
+#define WIESENKERBEL                   PLANT("wiesenkerbel")
+#define WIESENGLOCKENBLUME             PLANT("wiesenglockenblume")
+#define WIESENBUTTERBLUME              PLANT("wiesenbutterblume")
+#define WERWOLFSMILCH_GRUEN            PLANT("werwolfsmilch_gruen")
+#define WEISSWURZ_VIELBLUETIG          PLANT("weisswurz_vielbluetig")
+#define WEISSWURZ_QUIRLBLAETTRIG       PLANT("weisswurz_quirlblaettrig")
+#define WEISSWURZ_GEMEIN               PLANT("weisswurz_gemein")
+#define WEISSKLEE                      PLANT("weissklee")
+#define WEIDENKLEE                     PLANT("weidenklee")
+#define WASSERWURZ                     PLANT("wasserwurz")
+#define WASSERRETTICH                  PLANT("wasserrettich")
+#define WASSERKLEE                     PLANT("wasserklee")
+#define WASSER_HAHNENFUSS_WEISS        PLANT("wasser_hahnenfuss_weiss")
+#define WARZENWOLFSMILCH               PLANT("warzenwolfsmilch")
+#define WALDSCHATTENRAUTENWICKE        PLANT("waldschattenrautenwicke")
+#define WALDRETTICH                    PLANT("waldrettich")
+#define WALDREBE_WEISS                 PLANT("waldrebe_weiss")
+#define WALDREBE_SCHWARZ               PLANT("waldrebe_schwarz")
+#define WALDREBE_ROT                   PLANT("waldrebe_rot")
+#define WALDREBE_GEMEIN                PLANT("waldrebe_gemein")
+#define WALDMOOS_LANGLEBIG             PLANT("waldmoos_langlebig")
+#define WALDMOOS                       PLANT("waldmoos")
+#define WALDLICHTNELKE                 PLANT("waldlichtnelke")
+#define WALDENZIAN                     PLANT("waldenzian")
+#define VOGELHANF                      PLANT("vogelhanf")
+#define VAINERPILZ                     PLANT("vainerpilz")
+#define TYPONIA                        PLANT("typonia")
+#define TROPENENZIAN                   PLANT("tropenenzian")
+#define TROLLTROESTER                  PLANT("trolltroester")
+#define TROLLSCHMAROTZER               PLANT("trollschmarotzer")
+#define TRAEUMERSCHLINGE               PLANT("traeumerschlinge")
+#define TORFMOORRAUTENWICKE_GLATT      PLANT("torfmoorrautenwicke_glatt")
+#define TORFMOORRAUTENWICKE_GEZAHNT    PLANT("torfmoorrautenwicke_gezahnt")
+#define TORFMOORRAUTENWICKE_GEFRANST   PLANT("torfmoorrautenwicke_gefranst")
+#define TEUFELSKRALLE_SCHWARZ          PLANT("teufelskralle_schwarz")
+#define TEUFELSKRALLE_ROT              PLANT("teufelskralle_rot")
+#define TEUFELSKRALLE_RISPIG           PLANT("teufelskralle_rispig")
+#define TEUFELSKRALLE_KOPFIG           PLANT("teufelskralle_kopfig")
+#define TEUFELSKRALLE_DREIKANTIG       PLANT("teufelskralle_dreikantig")
+#define TEUFELSKRALLE_BUSCHIG          PLANT("teufelskralle_buschig")
+#define TEUFELSKRALLE_AEHRIG           PLANT("teufelskralle_aehrig")
+#define TEUFELSABBISS_GEMEIN           PLANT("teufelsabbiss_gemein")
+#define SUMPFRETTICH                   PLANT("sumpfrettich")
+#define SUMPFREBE_SCHWARZ              PLANT("sumpfrebe_schwarz")
+#define SUMPFRAUTENWICKE               PLANT("sumpfrautenwicke")
+#define SUMPFLICHTNELKE                PLANT("sumpflichtnelke")
+#define SUESSKLEE                      PLANT("suessklee")
+#define STUPSKRAUT                     PLANT("stupskraut")
+#define STERNMIERE                     PLANT("sternmiere")
+#define STERNENFLECHTE                 PLANT("sternenflechte")
+#define STEINBEISSERKNOLLE             PLANT("steinbeisserknolle")
+#define SPITZWEGERICH                  PLANT("spitzwegerich")
+#define SONNENWENDWOLFSMILCH           PLANT("sonnenwendwolfsmilch")
+#define SONNENPILZ                     PLANT("sonnenpilz")
+#define SOMMERFINDLING                 PLANT("sommerfindling")
+#define SICHELNELKE                    PLANT("sichelnelke")
+#define SCHWARZWURZ_WILD               PLANT("schwarzwurz_wild")
+#define SCHWARZWURZ_KRIECHEND          PLANT("schwarzwurz_kriechend")
+#define SCHWARZWURZ_GEZACKT            PLANT("schwarzwurz_gezackt")
+#define SCHWARZWURZ_GEMEIN             PLANT("schwarzwurz_gemein")
+#define SCHWARZSCHATTENMOOS            PLANT("schwarzschattenmoos")
+#define SCHWALBENWURZ_ENZIAN           PLANT("schwalbenwurz_enzian")
+#define SCHUETTELKRAUT                 PLANT("schuettelkraut")
+#define SCHILFRAUTENWICKE              PLANT("schilfrautenwicke")
+#define SCHATTENKRAUT                  PLANT("schattenkraut")
+#define SCHANDKRAUT                    PLANT("schandkraut")
+#define SAUERKLEE                      PLANT("sauerklee")
+#define RIESENORKSCHORFLING_LILA_GEPUNKTET PLANT("riesenorkschorfling_lila_gepunktet")
+#define REGENWURZ                      PLANT("regenwurz")
+#define RAUTENWICKE_FEURIG             PLANT("rautenwicke_feurig")
+#define RAUCHKRESSE                    PLANT("rauchkresse")
+#define RATSHERRENKRESSE               PLANT("ratsherrenkresse")
+#define RASCHELKRAUT                   PLANT("raschelkraut")
+#define POTTERRAUTENWICKE_GLATT        PLANT("potterrautenwicke_glatt")
+#define POTTERRAUTENWICKE_GEFRANST     PLANT("potterrautenwicke_gefranst")
+#define POLARWOLFSMILCH                PLANT("polarwolfsmilch")
+#define POLARBIRKENGESELLE             PLANT("polarbirkengeselle")
+#define ORANGUTANHANF                  PLANT("orangutanhanf")
+#define NEBELRAUTENWICKE_GLATT         PLANT("nebelrautenwicke_glatt")
+#define NEBELRAUTENWICKE_GEZAHNT       PLANT("nebelrautenwicke_gezahnt")
+#define NEBELRAUTENWICKE_GEFRANST      PLANT("nebelrautenwicke_gefranst")
+#define NEBELMOOS_TRUEGERISCH          PLANT("nebelmoos_truegerisch")
+#define NEANDERTALER_KNOCHENMOOS       PLANT("neandertaler_knochenmoos")
+#define NACHTSCHATTEN_SCHWARZ          PLANT("nachtschatten_schwarz")
+#define MOULOKINER_SIEBENSTERN         PLANT("moulokiner_siebenstern")
+#define MORONER_SIEBENSTERN            PLANT("moroner_siebenstern")
+#define MOORRETTICH                    PLANT("moorrettich")
+#define MIRILSZWIEBEL                  PLANT("mirilszwiebel")
+#define MEERRETTICH                    PLANT("meerrettich")
+#define MALTEKRESSE                    PLANT("maltekresse")
+#define MAEUSEHANF                     PLANT("maeusehanf")
+#define LUNGEN_ENZIAN_DUNKELBLAU       PLANT("lungen_enzian_dunkelblau")
+#define LOEWENHANF                     PLANT("loewenhanf")
+#define LICHTNELKE_ROT                 PLANT("lichtnelke_rot")
+#define LEIMKRAUT_WEISS                PLANT("leimkraut_weiss")
+#define LEIMKRAUT_ROT                  PLANT("leimkraut_rot")
+#define LEIMKRAUT_NICKEND              PLANT("leimkraut_nickend")
+#define LEIMKRAUT_KLEBRIG              PLANT("leimkraut_klebrig")
+#define LEIMKRAUT_AUFGEBLASEN          PLANT("leimkraut_aufgeblasen")
+#define LEBERMOOS                      PLANT("lebermoos")
+#define LAUCHKRESSE                    PLANT("lauchkresse")
+#define LAUBMOOS                       PLANT("laubmoos")
+#define LANGFINGERKRAUT_AUFRECHT       PLANT("langfingerkraut_aufrecht")
+#define KUCKUCKSLICHTNELKE             PLANT("kuckuckslichtnelke")
+#define KRONENZWIEBEL                  PLANT("kronenzwiebel")
+#define KRIESELZWIEBEL                 PLANT("krieselzwiebel")
+#define KOBOLDSWURZ_GETUEPFELT         PLANT("koboldswurz_getuepfelt")
+#define KNURRPILZ                      PLANT("knurrpilz")
+#define KLEINBUGERICH                  PLANT("kleinbugerich")
+#define KLEEFARN                       PLANT("kleefarn")
+#define KLEE_WEISS                     PLANT("klee_weiss")
+#define KLEE_TROPFIG                   PLANT("klee_tropfig")
+#define KLEE_ROT                       PLANT("klee_rot")
+#define KLEE_PERSISCH                  PLANT("klee_persisch")
+#define KLEE_KRIECHEND                 PLANT("klee_kriechend")
+#define KLEE_KOPFIG                    PLANT("klee_kopfig")
+#define KLEE_DOLDIG                    PLANT("klee_doldig")
+#define KICHERPILZ                     PLANT("kicherpilz")
+#define KICHERKRESSE                   PLANT("kicherkresse")
+#define KATZENWURZ                     PLANT("katzenwurz")
+#define KATZENHANF                     PLANT("katzenhanf")
+#define JOFSWURZ                       PLANT("jofswurz")
+#define INKARNATKLEE                   PLANT("inkarnatklee")
+#define HYDRAZAHN                      PLANT("hydrazahn")
+#define HYDRABALSAMKRAUT_GROSS         PLANT("hydrabalsamkraut_gross")
+#define HUNGERKRAUT                    PLANT("hungerkraut")
+#define HUNDEHANF                      PLANT("hundehanf")
+#define HUMNIZWIEBEL                   PLANT("humnizwiebel")
+#define HUEPFERLISL                    PLANT("huepferlisl")
+#define HONIGKLEE                      PLANT("honigklee")
+#define HEXENTRAUM_QUIETSCHGRUEN       PLANT("hexentraum_quietschgruen")
+#define HEXENKRAUT_WILD                PLANT("hexenkraut_wild")
+#define HEXENKRAUT_VERBRANNT           PLANT("hexenkraut_verbrannt")
+#define HEXENKRAUT_KREUZBLAETTRIG      PLANT("hexenkraut_kreuzblaettrig")
+#define HEXENKRAUT_KLEIN               PLANT("hexenkraut_klein")
+#define HEXENKRAUT_GROSS               PLANT("hexenkraut_gross")
+#define HEXENKRAUT_GEMEIN              PLANT("hexenkraut_gemein")
+#define HEXENKRAUT_BRAUN               PLANT("hexenkraut_braun")
+#define HEXENKRAUT_13_FINGRIG          PLANT("hexenkraut_13_fingrig")
+#define HASENKLEE                      PLANT("hasenklee")
+#define HANGRAUTENWICKE_WEISS_GEPUNKTET PLANT("hangrautenwicke_weiss_gepunktet")
+#define HANGRAUTENWICKE                PLANT("hangrautenwicke")
+#define HAMMERKRAUT                    PLANT("hammerkraut")
+#define HALTEKRESSE                    PLANT("haltekresse")
+#define HAHNENFUSS_WOLLIG              PLANT("hahnenfuss_wollig")
+#define HAHNENFUSS_SPREIZEND           PLANT("hahnenfuss_spreizend")
+#define HAHNENFUSS_SCHARF              PLANT("hahnenfuss_scharf")
+#define HAHNENFUSS_KRIECHEND           PLANT("hahnenfuss_kriechend")
+#define HAHNENFUSS_KNOLLIG             PLANT("hahnenfuss_knollig")
+#define HAHNENFUSS_GELB                PLANT("hahnenfuss_gelb")
+#define HAHNENFUSS_GACKERND            PLANT("hahnenfuss_gackernd")
+#define HAHNENFUSS_FLUTEND             PLANT("hahnenfuss_flutend")
+#define HAHNENFUSS_EISENHUTBLAETTRIG   PLANT("hahnenfuss_eisenhutblaettrig")
+#define HAHNENFUSS_EFEUBLAETTRIG       PLANT("hahnenfuss_efeublaettrig")
+#define HAHNENFUSS_BRENNEND            PLANT("hahnenfuss_brennend")
+#define GOLDHAHNENFUSS                 PLANT("goldhahnenfuss")
+#define GLOCKENBLUME                   PLANT("glockenblume")
+#define GLETSCHER_HAHNENFUSS_ROT       PLANT("gletscher_hahnenfuss_rot")
+#define GIPFELRAUTENWICKE_WILD         PLANT("gipfelrautenwicke_wild")
+#define GESELLENKRESSE                 PLANT("gesellenkresse")
+#define GEBIRGSRETTICH                 PLANT("gebirgsrettich")
+#define GEBIRGSENZIAN                  PLANT("gebirgsenzian")
+#define GAENSEFINGERKRAUT              PLANT("gaensefingerkraut")
+#define GAENSEBLUEMCHEN                PLANT("gaensebluemchen")
+#define FUTTERKRESSE                   PLANT("futterkresse")
+#define FRUEHLINGSFINGERKRAUT          PLANT("fruehlingsfingerkraut")
+#define FRUEHLINGS_ENZIAN_POLSTERWUECHSIG PLANT("fruehlings_enzian_polsterwuechsig")
+#define FRUEHLINGS_ENZIAN_HIMMELBLAU   PLANT("fruehlings_enzian_himmelblau")
+#define FRUEHLINGS_ENZIAN_FUENFZIPFLIG PLANT("fruehlings_enzian_fuenfzipflig")
+#define FRUEHLINGS_ENZIAN              PLANT("fruehlings_enzian")
+#define FROSTREBE_ROT                  PLANT("frostrebe_rot")
+#define FROSTENZIAN                    PLANT("frostenzian")
+#define FRANSENENZIAN                  PLANT("fransenenzian")
+#define FINSTERMOOS                    PLANT("finstermoos")
+#define FINGERKRAUT_KRIECHEND          PLANT("fingerkraut_kriechend")
+#define FINGERKRAUT_GROSSBLUETIG       PLANT("fingerkraut_grossbluetig")
+#define FINGERKRAUT_AUFRECHT           PLANT("fingerkraut_aufrecht")
+#define FEUERTULPE                     PLANT("feuertulpe")
+#define FEUERENZIAN                    PLANT("feuerenzian")
+#define FELDKLEE                       PLANT("feldklee")
+#define FELD_ENZIAN_BLAUVIOLETT        PLANT("feld_enzian_blauviolett")
+#define ERDBEERFINGERKRAUT             PLANT("erdbeerfingerkraut")
+#define ENZIAN_STENGELLOS              PLANT("enzian_stengellos")
+#define ENZIAN_GELB                    PLANT("enzian_gelb")
+#define ELFENOHRWURZ                   PLANT("elfenohrwurz")
+#define ELEFANTENHANF                  PLANT("elefantenhanf")
+#define EISZWIEBEL                     PLANT("eiszwiebel")
+#define EISZAHN                        PLANT("eiszahn")
+#define EISWURZ                        PLANT("eiswurz")
+#define EISSTERN                       PLANT("eisstern")
+#define EISNESSEL                      PLANT("eisnessel")
+#define EISKRAUT                       PLANT("eiskraut")
+#define EISENZWIEBEL                   PLANT("eisenzwiebel")
+#define EISDORN                        PLANT("eisdorn")
+#define EISDISTEL                      PLANT("eisdistel")
+#define DUNKELPILZ                     PLANT("dunkelpilz")
+#define DUNKELMOOS                     PLANT("dunkelmoos")
+#define DUESTERZWIEBEL_FINSTER         PLANT("duesterzwiebel_finster")
+#define DREIFINGERKRAUT_GROSSBLUETIG   PLANT("dreifingerkraut_grossbluetig")
+#define DREIFINGERKRAUT_GEMEIN         PLANT("dreifingerkraut_gemein")
+#define DRACHENZINNENDORN_GESCHECKT    PLANT("drachenzinnendorn_gescheckt")
+#define DRACHENHORTER_SIEBENSTERN      PLANT("drachenhorter_siebenstern")
+#define DRACHENHANF                    PLANT("drachenhanf")
+#define BUSCHREBE_NIEDER               PLANT("buschrebe_nieder")
+#define BUSCHREBE_GROSS                PLANT("buschrebe_gross")
+#define BRUNNENKRESSE                  PLANT("brunnenkresse")
+#define BREITWEGERICH                  PLANT("breitwegerich")
+#define BOCKSHORNKLEE                  PLANT("bockshornklee")
+#define BLUTNELKE                      PLANT("blutnelke")
+#define BITTERKLEE                     PLANT("bitterklee")
+#define BERGRETTICH                    PLANT("bergrettich")
+#define BERGRAUTENWICKE_GEZAHNT        PLANT("bergrautenwicke_gezahnt")
+#define BERGRAUTENWICKE_GEMEIN         PLANT("bergrautenwicke_gemein")
+#define BERGMOOS                       PLANT("bergmoos")
+#define BERGKLEE                       PLANT("bergklee")
+#define BAERLAPPMOOS                   PLANT("baerlappmoos")
+#define BAERENKLAU                     PLANT("baerenklau")
+#define AUGENTROST_GEMEIN              PLANT("augentrost_gemein")
+#define ARKZWIEBEL                     PLANT("arkzwiebel")
+#define ARATHORNSILIKUM_WEIS           PLANT("arathornsilikum_weis")
+#define ACKERLICHTNELKE                PLANT("ackerlichtnelke")
+#define ACKERKLEE_GELB                 PLANT("ackerklee_gelb")
+#define ACKER_RETTICH                  PLANT("acker_rettich")
diff --git a/sys/items/kraeuter/trankattribute.h b/sys/items/kraeuter/trankattribute.h
new file mode 100644
index 0000000..484347c
--- /dev/null
+++ b/sys/items/kraeuter/trankattribute.h
@@ -0,0 +1,59 @@
+#ifndef __KRAEUTER_TRANKATTRIBUTE_H__
+#define __KRAEUTER_TRANKATTRIBUTE_H__
+
+#define T_CARRY                 "attr_tragen"
+#define T_DAMAGE_ANIMALS        "attr_dam_animals"
+#define T_DAMAGE_MAGIC          "attr_dam_magical"
+#define T_DAMAGE_UNDEAD         "attr_dam_undead"
+#define T_PROTECTION_ANIMALS    "attr_prot_animals"
+#define T_PROTECTION_MAGIC      "attr_prot_magical"
+#define T_PROTECTION_UNDEAD     "attr_prot_undead"
+#define T_FROG                  "attr_defrog"
+#define T_FLEE_TPORT            "attr_flee_tport"
+#define T_HEAL_LP               "attr_heal_lp"
+#define T_HEAL_SP               "attr_heal_sp"
+#define T_HEAL_POISON           "attr_heal_poison"
+#define T_HEAL_DISEASE          "attr_heal_disease"
+#define T_CHANGE_DIMENSION      "attr_change_dimension"
+#define T_SA_SPEED              "attr_change_sa_speed"
+#define T_SA_DURATION           "attr_change_sa_duration"
+#define T_SA_SPELL_PENETRATION  "attr_change_sa_spell_penetration"
+#define T_EFFECT_DURATION       "attr_effect_duration"
+#define T_SUPPORTER             "attr_supporter"
+#define T_BLOCKING              "attr_blocking"
+#define T_ABUNDANCE             "attr_abundance"
+#define T_EXPIRE                "best_before"
+
+#define T_KRAUT_EFFECTS ({ \
+    T_CARRY, T_DAMAGE_ANIMALS, T_DAMAGE_MAGIC, \
+    T_DAMAGE_UNDEAD, T_PROTECTION_ANIMALS, T_PROTECTION_MAGIC, \
+    T_PROTECTION_UNDEAD, T_FROG, T_FLEE_TPORT, T_HEAL_LP, T_HEAL_SP, \
+    T_HEAL_POISON, T_HEAL_DISEASE, T_CHANGE_DIMENSION, \
+    T_SA_SPEED, T_SA_DURATION, T_SA_SPELL_PENETRATION, })
+
+#define T_KRAUT_MAP \
+  (["car": T_CARRY, \
+    "da":  T_DAMAGE_ANIMALS, \
+    "dm":  T_DAMAGE_MAGIC, \
+    "du":  T_DAMAGE_UNDEAD, \
+    "dn":  T_EFFECT_DURATION, \
+    "flt": T_FLEE_TPORT, \
+    "fro": T_FROG, \
+    "hI":  T_HEAL_DISEASE, \
+    "hP":  T_HEAL_POISON, \
+    "hK":  T_HEAL_SP, \
+    "hL":  T_HEAL_LP, \
+    "pa":  T_PROTECTION_ANIMALS, \
+    "pm":  T_PROTECTION_MAGIC, \
+    "pu":  T_PROTECTION_UNDEAD, \
+    "ss":  T_SA_SPEED, \
+    "sp":  T_SA_SPELL_PENETRATION, \
+    "sd":  T_SA_DURATION ])
+
+// negative Effekte muesssen abs. groesser als dies sein, damit sie bei der Wirkung
+// beruecksichtigt werden.
+#define T_MINIMUM_THRESHOLD	150
+// Dies ist der max. Effekt. Alles, was hierueber gebt, wird gedeckelt.
+#define T_MAXIMUM_THRESHOLD	2000
+
+#endif // __KRAEUTER_TRANKATTRIBUTE_H__
diff --git a/sys/language.h b/sys/language.h
new file mode 100644
index 0000000..aad6a41
--- /dev/null
+++ b/sys/language.h
@@ -0,0 +1 @@
+#include <thing/language.h>
diff --git a/sys/lightsource.h b/sys/lightsource.h
new file mode 100644
index 0000000..0a0928b
--- /dev/null
+++ b/sys/lightsource.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// lightsource.h -- lightsources header file
+//
+// $Id: lightsource.h,v 1.1 2000/02/09 15:52:48 Padreic Exp $
+ 
+#ifndef __LIGHTSOURCE_H__
+#define __LIGHTSOURCE_H__
+
+#define P_FUEL         "fuel"        // Brennzeit in Sekunden
+#define P_LIGHTDESC    "lightdesc"   // Beschreibung des Lichts
+#define P_DO_DESTRUCT  "do_destruct" // Soll sich die Lichtquelle aufloesen?
+#define P_LIGHTED      "lighted"     // Flag ob die Lichtquelle in Betrieb ist
+
+#endif // __LIGHTSOURCE_H__
diff --git a/sys/living.h b/sys/living.h
new file mode 100644
index 0000000..f1f5380
--- /dev/null
+++ b/sys/living.h
@@ -0,0 +1,31 @@
+// MorgenGrauen MUDlib
+//
+// living.h -- Header fuer Lebewesen
+//
+// $Id: living.h 6513 2007-10-06 15:55:27Z Zesstra $
+
+#include "/sys/living/life.h"
+#include "/sys/living/attributes.h"
+#include "/sys/living/put_and_get.h"
+#include "/sys/living/combat.h"
+#include "/sys/living/team.h"
+#include "/sys/living/skills.h"
+//#include "/sys/living/moving.h"
+
+#ifndef __LIVING_H__
+#define __LIVING_H__
+
+#define INTERVAL_BETWEEN_HEALING	10
+#define WEAPON_CLASS_OF_HANDS		(3)
+#define ARMOUR_CLASS_OF_BARE		0
+#define KILL_NEUTRAL_ALIGNMENT		10
+#define ADJ_ALIGNMENT(al)		((-al - KILL_NEUTRAL_ALIGNMENT)/4)
+#define MAX_LIST			20
+#define NAME_OF_GHOST			"some mist"
+
+/* Hands */
+#define HAND_SHORT 0
+#define HAND_WEAPON 1
+#define HAND_WC 2
+
+#endif // __LIVING_H__
diff --git a/sys/living/attributes.h b/sys/living/attributes.h
new file mode 100644
index 0000000..8f28299
--- /dev/null
+++ b/sys/living/attributes.h
@@ -0,0 +1,96 @@
+// MorgenGrauen MUDlib
+//
+// living/attributes.h -- living attributes
+//
+// $Id: attributes.h 6282 2007-05-09 20:55:17Z Zesstra $
+ 
+#ifndef __LIVING_ATTRIBUTES_H__
+#define __LIVING_ATTRIBUTES_H__
+
+// properties
+
+#define P_ATTRIBUTES              "attributes"
+#define P_ATTRIBUTES_OFFSETS      "attributes_offsets"
+#define P_ATTRIBUTES_MODIFIER     "attributes_modifier"
+#define P_X_ATTR_MOD              "extern_attributes_modifier"
+#define P_X_HEALTH_MOD            "extern_health_modifier"
+#define P_M_ATTR_MOD              "magic_attributes_modifier"
+#define P_M_HEALTH_MOD            "magic_health_modifier"
+#define P_ABILITIES               "abilities"
+#define P_TIMED_ATTR_MOD		  "timed_attr_mod"
+
+// special defines
+
+/* standard attributes */
+#define A_STR "str"
+#define A_INT "int"
+#define A_DEX "dex"
+#define A_CON "con"
+
+/* errorcodes for P_TIMED_ATTR_MOD */
+#define TATTR_OK				0
+#define TATTR_NO_SUCH_MODIFIER	1
+#define TATTR_INVALID_ARGS  	2
+
+/* indices used for P_TIMED_ATTR_MOD */
+#define TATTR_OUTDATE		0
+#define TATTR_DEPENDENTS	1
+#define TATTR_ENTRIES		2	
+#define TATTR_MOD 		0
+#define TATTR_OUTDATED 		1
+#define TATTR_DEPENDENT 	2
+#define TATTR_NOTIFY 		3
+
+/* maximum of cumulative attribute modifiers */
+#define CUMULATIVE_ATTR_LIMIT	4
+
+#endif // __LIVING_ATTRIBUTES_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_ATTRIBUTES_H_PROTO__
+#define __LIVING_ATTRIBUTES_H_PROTO__
+
+// prototypes
+
+nomask public int SetTimedAttrModifier(string key, mapping modifier, int outdated, object dependent, mixed notify);  
+nomask public mapping QueryTimedAttrModifier(string key);
+nomask public int DeleteTimedAttrModifier(string key);
+
+public int SetAttr(string attr, int val);
+nomask public void register_modifier(object modifier);
+nomask public void deregister_modifier(object modifier);
+
+public int SetAttribute(string attr, int val);
+public int SetRealAttribute(string attr, int val);
+public int QueryAttribute(string attr);
+public int QueryRealAttribute(string attr);
+public int QueryAttributeOffset(string attr);
+
+public void UpdateAttributes();
+
+public status TestLimitViolation(mapping check);
+
+// Set- und Query-Methoden
+static mapping _set_attributes(mapping arr);
+static mapping _query_attributes();
+static mapping _set_attributes_offsets(mapping arr);
+static mapping _query_attributes_offsets();
+static mixed   _set_attributes_modifier(mixed arr);
+static mapping _query_attributes_modifier();
+static mixed _query_timed_attr_mod();
+
+// internal
+nomask protected void attribute_hb();
+protected void add_offsets(mapping arr);
+protected nomask void calculate_valid_modifiers();
+protected nomask void notifyInvalidModifiers();
+protected int _filterattr_str(int val);
+protected int _filterattr_dex(int val);
+protected int _filterattr_int(int val);
+protected int _filterattr_con(int val);
+nomask protected void notifyExpiredModifiers(mapping nots);
+
+#endif // __LIVING_ATTRIBUTES_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/living/clothing.h b/sys/living/clothing.h
new file mode 100644
index 0000000..d875c61
--- /dev/null
+++ b/sys/living/clothing.h
@@ -0,0 +1,12 @@
+// MorgenGrauen MUDlib
+//
+// living/clothing.h -- Konstanten und Pfade rund um Bekleidung von Lebewesen
+//
+// $Id: moneyhandler.h,v 3.1 1997/02/12 13:29:09 Wargon Exp %
+
+#ifndef __LIVING_CLOTHING_H__
+#define __LIVING_CLOTHING_H__
+
+#define P_CLOTHING                "std:clothing"
+
+#endif // __LIVING_CLOTHING_H__
diff --git a/sys/living/combat.h b/sys/living/combat.h
new file mode 100644
index 0000000..528f446
--- /dev/null
+++ b/sys/living/combat.h
@@ -0,0 +1,166 @@
+// MorgenGrauen MUDlib
+//
+// living/combat.h -- combat header
+//
+// $Id: combat.h 9008 2015-01-06 17:20:17Z Zesstra $
+
+#ifndef __LIVING_COMBAT_H__
+#define __LIVING_COMBAT_H__
+
+// properties
+#define P_DISABLE_ATTACK          "disable_attack"
+#define P_NEXT_DISABLE_ATTACK     "next_disable_attack"
+
+#define P_CORPSE                  "corpse"
+#define P_NOCORPSE                "nocorpse"
+
+// bitte P_ARMOURS auch in /secure/master.h aendern, falls das mal geaendert
+// wird.
+#define P_ARMOURS                 "armours"
+#define P_BODY                    "body"
+
+#define P_RESISTANCE_STRENGTHS    "resistance_strengths"
+#define P_RESISTANCE_MODIFIER     "rstr:mod"
+#define P_RESISTANCE              "resistance"
+#define P_VULNERABILITY           "vulnerability"
+#define P_TOTAL_AC 	          "total_ac"
+#define P_TOTAL_WC                "total_wc"
+
+#define P_HANDS                   "hands"
+#define P_MAX_HANDS               "max_hands"
+#define P_USED_HANDS              "used_hands"
+#define P_FREE_HANDS              "free_hands"
+#define P_HANDS_USED_BY           "hands_used_by"
+
+#define P_ATTACK_BUSY	          "attack_busy"
+#define P_NO_ATTACK               "no_attack"
+
+#define P_PREFERED_ENEMY          "pref_enemy"
+#define P_SHOW_ATTACK_MSG         "show_attack_msg"
+
+#define P_LAST_DAMAGE             "last_damage"
+#define P_LAST_DAMTYPES           "last_damtypes"
+#define P_LAST_DAMTIME            "last_damtime"
+
+#define P_DEATH_SPONSORED_BY      "responsible_wizard_for_death"
+#define P_KILLER                  "killer"
+#define P_MURDER_MSG              "murder_msg"
+#define P_FORCE_MURDER_MSG        "force_murder_msg"
+#define P_ENEMY_DEATH_SEQUENCE    "enemy_death_sequence"
+#define P_NEXT_DEATH_SEQUENCE     "p_lib_next_death_sequence"
+#define P_DEATH_MSG               "death_msg"
+
+#define P_HUNTTIME                "p_lib_hunttime"
+
+// Befriede: Gildenzaehler
+#define P_PEACE_HISTORY           "_peace_history"
+
+#define DISABLE_TOO_EARLY 	  -100111
+
+#define ENEMY_HUNTTIME		0
+
+// Helfer-NPC
+// a) NPC: welchem Spieler ist dieser NPC zugeordnet, d.h. fuer wen kaempft
+//         er? Array: ({ spielerobject, flags })
+// b) Spieler: welche NPC sind diesem Spieler zugeordnet. Mapping mit Objekten
+//             und Flags.
+#define P_HELPER_NPC              "std:helper_npc"
+// Flags:
+// 2 Klassen von Helfern momentan: Gilden-NPC und sonstige.
+#define GUILD_HELPER     0x1
+#define MISC_HELPER      0x2
+// Wenn gesetzt, ist der Helfer exklusiv und laesst keinen anderen in der
+// derselben Klasse zu.
+#define EXCLUSIVE_HELPER 0x40000000
+// Wenn gesetzt, ist der Helfer 'aktiv', d.h. nicht nur Schlagfaenger
+#define ACTIVE_HELPER    0x20000000
+
+// individuelle Schadensmeldungen eines Lebewesens
+#define P_DAMAGE_MSG     "std_p_dam_msg"
+
+#endif // __LIVING_COMBAT_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_COMBAT_H_PROTO__
+#define __LIVING_COMBAT_H_PROTO__
+
+// prototypes
+public int Kill(object ob);
+public void Attack2(object enemy);
+public void Attack(object enemy);
+public void AddDefender(object friend);
+public void RemoveDefender(object friend);
+public void InformDefend(object enemy);
+public mixed DefendOther(int dam, string|string* dam_type, int|mapping spell, object enemy);
+public int Defend(int dam, string|string* dam_type, int|mapping spell, object enemy);
+public void CheckWimpyAndFlee();
+public varargs void Flee(object oldenv, int force);
+
+public varargs int StopHuntFor(object arg, int silent);
+public varargs mapping StopHuntingMode(int silent);
+
+public void UpdateResistanceStrengths();
+public varargs int AddResistanceModifier(mapping mod, string add);
+public varargs void RemoveResistanceModifier(string add);
+public float CheckResistance(string* dam_type);
+
+public int InsertSingleEnemy(object ob);
+public int InsertEnemy(object ob);
+public int IsEnemy(object wer);
+public object *PresentEnemies();
+public object QueryPreferedEnemy();
+public varargs object SelectEnemy(object *here);
+public <object*|int*>* QueryEnemies();
+public mapping GetEnemies();
+#if __VERSION_MAJOR__>=3 && __VERSION_MINOR__>=5 && (__VERSION_MICRO__>0 || (__VERSION_MICRO__==0 && __VERSION_PATCH__>=2))
+public mapping SetEnemies(<object*|int*>* myenemies);
+#else
+public mapping SetEnemies(mixed *myenemies);
+#endif
+public mixed EnemyPresent();
+public mixed InFight();
+public int CheckEnemy(object ob);
+
+public int SpellDefend(object caster, mapping sinfo);
+
+public object|object* QueryArmourByType(string type);
+
+public varargs int UseHands(object ob, int num);
+public varargs int FreeHands(object ob);
+
+public void InitAttack();
+public void ExitAttack();
+
+public int Pacify(object caster);
+
+public varargs int StopHuntID(string str, int silent);
+public void StopHuntText(object arg);
+public varargs void ExecuteMissingAttacks(object *remove_attackers);
+
+// Query- und Set-Methoden
+static int     _query_attack_busy();
+static int     _query_free_hands();
+static mixed   _query_hands();
+static mixed  *_query_hands_used_by();
+static mapping _query_resistance_strengths();
+static int     _query_total_ac();
+static int     _query_total_wc();
+static int     _query_used_hands();
+static int     _set_attack_busy(mixed val);
+static int     _set_disable_attack(int val);
+static mixed   _set_hands(mixed h);
+static mixed   _set_resistance(mixed arg);
+static int     _set_used_hands(int new_num);
+static mixed   _set_vulnerability(mixed arg);
+static int     _set_wimpy(int i);
+
+// Internal
+protected void SkillResTransfer(mapping from_M, mapping to_M);
+protected void InternalModifyAttack(mapping ainfo);
+protected void InternalModifyDefend(int dam, string* dt, mapping spell, object enemy);
+protected string mess(string msg,object me,object enemy);
+ 
+#endif // __LIVING_COMBAT_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/living/comm.h b/sys/living/comm.h
new file mode 100644
index 0000000..3950622
--- /dev/null
+++ b/sys/living/comm.h
@@ -0,0 +1,101 @@
+// MorgenGrauen MUDlib
+//
+// living/comm.h -- communication module properties for Livings
+//
+// $Id: comm.h,v 3.3 2000/02/09 15:56:25 Padreic Exp $
+
+#ifndef __LIVING_COMM_H__
+#define __LIVING_COMM_H__
+
+#include <break_string.h>
+
+// Flags fuer ReceiveMsg().
+// The BS-Flags MUST always be equal to the one defined for break_string!
+#define MSG_BS_LEAVE_LFS    BS_LEAVE_MY_LFS    //1
+#define MSG_BS_SINGLE_SPACE BS_SINGLE_SPACE    //2
+#define MSG_BS_BLOCK        BS_BLOCK           //4
+#define MSG_BS_NO_PARINDENT BS_NO_PARINDENT    //8
+#define MSG_BS_INDENT_ONCE  BS_INDENT_ONCE     //16
+#define MSG_BS_PREP_INDENT  BS_PREPEND_INDENT  //32
+// Flags < 1024 (2^10) reserviert fuer BS
+#define MSG_DONT_BUFFER  1024
+#define MSG_DONT_STORE   2048
+#define MSG_DONT_WRAP    4096
+#define MSG_DONT_IGNORE  8192
+// Flags < 1048576 (2^20) reserviert fuer Flags
+#define MSG_ALL_BS_FLAGS (BS_LEAVE_MY_LFS | BS_SINGLE_SPACE | BS_BLOCK\
+                          | BS_NO_PARINDENT | BS_INDENT_ONCE\
+                          |BS_PREPEND_INDENT)
+#define MSG_ALL_FLAGS (MSG_DONT_BUFFER | MSG_DONT_STORE | MSG_DONT_WRAP\
+                      | MSG_DONT_IGNORE | MSG_ALL_BS_FLAGS)
+
+// Nachrichtentypen, Werte ab 2^20
+#define MT_UNKNOWN    0
+#define MT_LOOK       1048576
+#define MT_LISTEN     2097152
+#define MT_FEEL       4194304
+#define MT_TASTE      8388608
+#define MT_SMELL      16777216
+#define MT_MAGIC      33554432
+#define MT_NOTIFICATION 67108864
+#define MT_COMM       134217728
+#define MT_FAR        268435456
+#define MT_DEBUG      536870912
+#define MT_NEWS       1073741824
+
+// Aktionen
+// Bei MA_UNKNOWN wird die Aktion aus query_verb() geraten. Wenn das nicht
+// existiert, bleibt die Aktion MA_UNKNOWN.
+#define MA_UNKNOWN    0
+#define MA_PUT        "wirf"
+#define MA_TAKE       "nimm"
+#define MA_MOVE_IN    "move_in"
+#define MA_MOVE_OUT   "move_out"
+#define MA_MOVE       "move"
+#define MA_FIGHT      "toete"
+#define MA_WIELD      "zuecke"
+#define MA_UNWIELD    "stecke"
+#define MA_WEAR       "trage"
+#define MA_UNWEAR     "ziehe"
+#define MA_EAT        "iss"
+#define MA_DRINK      "trinke"
+#define MA_SPELL      "zaubere"
+#define MA_LOOK       "untersuche"
+#define MA_LISTEN     "lausche"
+#define MA_FEEL       "taste"
+#define MA_SMELL      "rieche"
+#define MA_SENSE      "erspueren"
+#define MA_READ       "lies"
+#define MA_USE        "benutze"
+#define MA_SAY        "sage"
+#define MA_REMOVE     "remove"
+#define MA_CHANNEL    "ebenen"
+#define MA_EMOTE      "emote"
+#define MA_SHOUT      "rufe"
+#define MA_SHOUT_SEFUN "shout"
+#define MA_TELL       "teilemit"
+
+// Rueckgabewerte von ReceiveMsg()
+#define MSG_DELIVERED    1
+#define MSG_BUFFERED     2
+#define MSG_FAILED      -1
+#define MSG_IGNORED     -2
+#define MSG_VERB_IGN    -3
+#define MSG_MUD_IGN     -4
+#define MSG_SENSE_BLOCK -5
+#define MSG_BUFFER_FULL -6
+
+#endif // __LIVING_COMM_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_COMM_H_PROTO__
+#define __LIVING_COMM_H_PROTO__
+
+public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
+                              string msg_prefix, object origin);
+
+#endif // __LIVING_COMM_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/living/description.h b/sys/living/description.h
new file mode 100644
index 0000000..dc07fbf
--- /dev/null
+++ b/sys/living/description.h
@@ -0,0 +1,48 @@
+#ifndef __LIVING_DESCRIPTION_H__
+#define __LIVING_DESCRIPTION_H__
+
+// properties
+
+#define P_GUILD                   "guild"
+#define P_VISIBLE_GUILD           "visible_guild"
+
+#define P_EXTRA_LOOK              "extralook"
+#define P_INTERNAL_EXTRA_LOOK     "internal_extralook"
+
+#define P_PLAYER_LIGHT            "player_light"
+#define P_LIGHT_MODIFIER          "light_modifier"
+
+#define P_LEVEL                   "level"
+
+#define P_RACE                    "race"
+#define P_REAL_RACE               "real_race"
+
+// bitte auch in /secure/master.h aendern, falls das mal geaendert wird.
+#define P_WEAPON                  "weapon"
+
+#define P_PARA                    "para"
+#define P_SIZE                    "size"
+
+#define P_DIE_MSG                 "die_msg"
+
+#define P_WIMPY                   "wimpy"
+#define P_WIMPY_DIRECTION         "wimpy_dir"
+
+#define P_AVATAR_URI              "p_lib_avataruri"
+
+#endif // __LIVING_DESCRIPTION_H__
+
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_DESCRIPTION_H_PROTO__
+#define __LIVING_DESCRIPTION_H_PROTO__
+
+varargs int         CannotSee(int silent);
+public varargs int  AddExtraLook(string look, int duration, string key, 
+                                 string lookende, object ob);
+public int          RemoveExtraLook(string key);
+
+#endif // __LIVING_DESCRIPTION_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/living/helpers.h b/sys/living/helpers.h
new file mode 100644
index 0000000..4e3793a
--- /dev/null
+++ b/sys/living/helpers.h
@@ -0,0 +1,42 @@
+// MorgenGrauen MUDlib
+//
+// living/helpers.h -- Konstanten und Methoden fuer Hilfsobjekte
+//
+// $Id: moneyhandler.h,v 3.1 1997/02/12 13:29:09 Wargon Exp %
+
+#ifndef __LIVING_HELPERS_H__
+#define __LIVING_HELPERS_H__
+
+// Properties
+
+#define P_HELPER_OBJECTS    "lib_p_helper_objects"
+
+#define P_AQUATIC_HELPERS   "lib_p_aquatic_helpers"
+#define P_AERIAL_HELPERS    "lib_p_aerial_helpers"
+
+// Defines fuer Helferobjekt-Typen und Rueckgabewerte
+
+#define HELPER_TYPE_AQUATIC 1
+#define HELPER_TYPE_AERIAL  2
+
+#define HELPER_NO_CALLBACK_OBJECT    -1
+#define HELPER_ALREADY_LISTED        -2
+#define HELPER_NOTHING_TO_UNREGISTER -3
+#define HELPER_SUCCESS                1
+
+#endif // __LIVING_HELPERS_H__
+
+// Prototypes
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_HELPERS_H_PROTO__
+#define __LIVING_HELPERS_H_PROTO__
+
+int RegisterHelperObject(object helper, int type, mixed callback);
+int UnregisterHelperObject(object helper, int type);
+
+#endif // __LIVING_HELPERS_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/living/life.h b/sys/living/life.h
new file mode 100644
index 0000000..81ba3dd
--- /dev/null
+++ b/sys/living/life.h
@@ -0,0 +1,125 @@
+// MorgenGrauen MUDlib
+//
+// living/life.h -- living life header
+//
+// $Id: life.h 9048 2015-01-11 18:21:32Z Zesstra $
+
+#ifndef __LIVING_LIFE_H__
+#define __LIVING_LIFE_H__
+
+// properties
+
+#define P_AGE                     "age"
+#define P_ALIGN                   "align"
+
+#define P_DEADS                   "deads"
+#define P_GHOST                   "ghost"
+#define P_FROG                    "frog"
+
+#define P_FOOD                    "food"
+#define P_MAX_FOOD                "max_food"
+#define P_DRINK                   "drink"
+#define P_MAX_DRINK               "max_drink"
+#define P_ALCOHOL                 "alcohol"
+#define P_MAX_ALCOHOL             "max_alcohol"
+
+#define P_HP                      "hp"
+#define P_MAX_HP                  "max_hp"
+#define P_SP                      "sp"
+#define P_MAX_SP                  "max_sp"
+#define P_XP                      "xp"
+#define P_NO_XP                   "no_xp"
+#define P_LAST_XP                 "last_xp"
+
+#define P_FOOD_DELAY              "food_delay"
+#define P_DRINK_DELAY             "drink_delay"
+#define P_ALCOHOL_DELAY           "alcohol_delay"
+#define P_HP_DELAY                "hp_delay"
+#define P_SP_DELAY                "sp_delay"
+#define P_POISON_DELAY            "poison_delay"
+
+#define P_POISON                  "poison"
+#define P_MAX_POISON              "max_poison"
+
+#define P_NO_REGENERATION         "no_regeneration"
+
+#define P_ENEMY_DAMAGE            "enemy_damage"
+#define P_TIMING_MAP              "timing_map"
+#define P_LAST_DEATH_TIME         "last_death_time"
+#define P_LAST_DEATH_PROPS        "last_death_props"
+#define P_CORPSE_DECAY_TIME       "corpse_decay"
+
+// ----- Definitionen fuer Beeinflussung der Gesundheit durch consume -----
+
+// H_EFFECTS - Zu aendernde Properties fuer den Effekt
+#define H_EFFECTS "effects"
+// H_CONDITIONS - Zu pruefende Properties für den Effekt (Saettigung, ...)
+#define H_CONDITIONS "conditions"
+// H_DISTRIBUTION - Wie die Aenderung an HP/SP austeilen, sofort, zeitlich
+// versetzt, ...
+#define H_DISTRIBUTION "distribution"
+// H_INGREDIENTS - Bestandteile, die die Aenderung verursachen
+#define H_INGREDIENTS "ingredients"
+
+// Verteilungen,
+// 0    Sofortwirkung
+// 1-50 gleichverteilte Pufferung mit angegebener Rate fuer SP/HP
+// >= 51 spezielle Verteilungen (TODO)
+#define HD_INSTANT      0
+#define HD_STANDARD     5
+
+#define H_ALLOWED_CONDITIONS ({P_FOOD, P_DRINK, P_ALCOHOL})
+#define H_ALLOWED_EFFECTS    ({P_SP, P_HP, P_POISON})
+
+#define HC_MAX_FOOD_REACHED        1
+#define HC_MAX_DRINK_REACHED       2
+#define HC_MAX_ALCOHOL_REACHED     4
+#define HC_HOOK_CANCELLATION       8
+
+// -------------------------------------------------------------------------
+
+#endif // __LIVING_LIFE_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_LIFE_H_PROTO__
+#define __LIVING_LIFE_H_PROTO__         
+
+// prototypes
+
+// ----- zentrale Funktion, um die Gesundheit des Lebewesens zu beeinflussen -----
+public varargs int consume(mapping cinfo, int testonly);
+// -------------------------------------------------------------------------
+
+public int do_damage(int dam, object enemy);
+public int reduce_hit_points(int dam);
+public int restore_hit_points(int heal);
+
+public int reduce_hit_point(int dam);  //Nur als Uebergansloesung (Rikus)
+
+public void restore_spell_points(int h);
+public void reduce_spell_points(int h);
+
+public void heal_self(int h);
+
+public varargs void die( int poisondeath, int extern );
+
+public varargs void transfer_all_to( string|object dest, int check );
+
+public varargs int drink_alcohol(int strength, int testonly, string mytext);
+public varargs int drink_soft(int strength, int testonly, string mytext);
+public varargs int eat_food(int strength, int testonly, string mytext);
+
+public int buffer_hp(int val,int rate);
+public int buffer_sp(int val,int rate);
+
+public void show_age();
+
+public int AddExp(int e);
+
+// internal
+protected void ResetEnemyDamage();
+
+#endif // __LIVING_LIFE_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/living/moving.h b/sys/living/moving.h
new file mode 100644
index 0000000..4914466
--- /dev/null
+++ b/sys/living/moving.h
@@ -0,0 +1,40 @@
+// MorgenGrauen MUDlib
+//
+// living/moving.h -- Props/Prototypen fuer living/moving.c
+//
+// $Id: moving.h 8892 2014-08-04 19:48:28Z Zesstra $
+
+#ifndef __LIVING_MOVING_H__
+#define __LIVING_MOVING_H__
+
+#define P_PURSUERS       "pursuers"
+
+#endif // __LIVING_MOVING_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_MOVING_H_PROTO__
+#define __LIVING_MOVING_H_PROTO__
+
+public void AddPursuer(object ob);
+public void RemovePursuer(object ob);
+
+public void TakeFollowers();
+
+#ifdef __THING_MOVING_H_PROTO__
+// das darf nicht passieren, weil move in thing anders ist als hier. *seufz*
+inconsistent_move_protoyp_error
+#endif
+public varargs int move( object|string dest, int methods, string direction,
+                         string textout, string textin );
+public varargs int remove(int silent);
+
+// internal
+public void _SetPursued(object ob);
+public void _RemovePursued(object ob);
+
+
+#endif // __LIVING_MOVING_H_PROTO__
+
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/living/put_and_get.h b/sys/living/put_and_get.h
new file mode 100644
index 0000000..802ad23
--- /dev/null
+++ b/sys/living/put_and_get.h
@@ -0,0 +1,37 @@
+// MorgenGrauen MUDlib
+//
+// living/put_and_get.h -- living put and get header
+//
+// $Id: put_and_get.h 6930 2008-08-09 09:20:16Z Zesstra $
+ 
+#ifndef __LIVING_PUT_AND_GET_H__
+#define __LIVING_PUT_AND_GET_H__
+
+// properties
+#define P_DROP_MSG        "drop_message" 
+#define P_PUT_MSG         "put_message"
+#define P_PICK_MSG        "pick_message"
+#define P_GIVE_MSG        "give_message"
+#define P_SHOW_MSG        "show_message"
+
+// If you don't want put_and_get send a message, set the property to
+#define NO_PNG_MSG       -1
+
+// For user defined drop messages look for man P_DROP_MSG
+
+#endif // __LIVING_PUT_AND_GET_H__
+
+// prototypes
+#ifdef NEED_PROTOTYPES
+
+#ifndef __LIVING_PUT_AND_GET_H_PROTO__
+#define __LIVING_PUT_AND_GET_H_PROTO__
+
+object *find_obs(string str, int meth);
+
+void add_put_and_get_commands();
+
+#endif // __LIVING_PUT_AND_GET_H_PROTO__
+
+#endif	// NEED_PROTOYPES
+
diff --git a/sys/living/skill_attributes.h b/sys/living/skill_attributes.h
new file mode 100644
index 0000000..939ca15
--- /dev/null
+++ b/sys/living/skill_attributes.h
@@ -0,0 +1,100 @@
+// MorgenGrauen MUDlib
+//
+// FileName.c -- Beschreibung
+//
+// $Id$
+
+#ifndef __SKILL_ATTRIBUTES_H__
+#define __SKILL_ATTRIBUTES_H__
+
+// ===== Properties fuer Skill-Attribute: =====
+
+#define P_SKILL_ATTRIBUTES          "skill_attr"
+#define P_SKILL_ATTRIBUTE_OFFSETS   "skill_attr_offsets"
+
+// ===== Skill Attribute: =====  
+// Allgemeine Qualitaet
+#define SA_QUALITY                  "sa_qual"
+  
+// Schaden
+#define SA_DAMAGE                   "sa_dam"
+  
+// Geschwindigkeit
+#define SA_SPEED                    "sa_speed"
+
+// Dauer
+#define SA_DURATION                 "sa_dur"
+
+// Ausdehnung
+#define SA_EXTENSION                "sa_ext"
+
+// Reichweite
+#define SA_RANGE                    "sa_range"
+
+// Je hoeher, desto groesser die Chance, dass nen vom Lebewesen gecasteter
+// Spell durch das gegnerische P_NOMAGIC durchschlaegt.
+// (SA_ENEMY_SAVE obsolet!)
+#define SA_ENEMY_SAVE               "sa_save"
+#define SA_SPELL_PENETRATION        "sa_save"
+
+// welche Skill-Attribute gibt es?
+#define VALID_SKILL_ATTRIBUTES ({ SA_QUALITY, SA_DAMAGE, SA_SPEED,\
+                                  SA_DURATION, SA_EXTENSION, SA_RANGE,\
+                                  SA_ENEMY_SAVE })
+
+// Indizes fuer die Verwaltung der Skill-Attribute
+#define SAM_CACHE              0
+#define SAM_STATIC             1
+#define SAM_DYNAMIC            2
+
+#define SAM_SUM                0
+#define SAM_CACHE_TIMEOUT      1
+#define SAM_COUNT              2
+
+#define SAM_DURATION           0
+#define SAM_VALUE              1
+
+
+// einige Konstanten
+#define SAM_MAX_MODS           5
+#define SAM_MAX_CACHE_TIMEOUT  60
+
+// rueckgabewerte der Verwaltungsfunktionen:
+#define SA_MOD_OK              1
+#define SA_MOD_REMOVED         1
+#define SA_TOO_MANY_MODS       -1
+#define SA_MOD_TOO_SMALL       -2
+#define SA_MOD_TOO_BIG         -3
+#define SA_MOD_INVALID_ATTR    -4
+#define SA_MOD_INVALID_OBJECT  -5
+#define SA_MOD_NOT_FOUND       -6
+#define SA_MOD_INVALID_VALUE   -7
+
+// Statistik?
+#define SASTATD "/p/daemon/sastatd"
+
+#endif // __SKILL_ATTRIBUTES_H__
+
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __SKILL_ATTRIBUTES_H_PROTO__
+#define __SKILL_ATTRIBUTES_H_PROTO__
+
+// prototypes
+
+public int    ModifySkillAttribute(string atrname, mixed value,
+                                    int duration);
+public int    RemoveSkillAttributeModifier(object caster, string attrname);
+public int    QuerySkillAttribute(string attr);
+public varargs mapping QuerySkillAttributeModifier(object caster,
+                           string *attr);
+
+// Kompatibilitaetsfunktion mit altem Interface.
+public int    ModifySkillAttributeOld(object caster, string atrname, int value,
+                          int duration, mixed fun);
+
+#endif // __SKILL_ATTRIBUTES_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/living/skills.h b/sys/living/skills.h
new file mode 100644
index 0000000..ef2572c
--- /dev/null
+++ b/sys/living/skills.h
@@ -0,0 +1,33 @@
+// MorgenGrauen MUDlib
+//
+// skills.h -- Defines and prototypes for /std/living/skills.c
+//
+// $Id: skills.h 8694 2014-02-20 23:06:50Z Zesstra $
+
+#ifndef _LIVING_SKILLS_H_
+#define _LIVING_SKILLS_H_
+
+#endif // _LIVING_SKILLS_H_
+
+#ifdef NEED_PROTOTYPES
+#ifndef _LIVING_SKILLS_H_PROTO_
+#define _LIVING_SKILLS_H_PROTO_
+public    varargs int     UseSpell(string str, string spell);
+
+public    varargs mapping QuerySkill(string sname, string gilde);
+public    varargs int     QuerySkillAbility(mixed sname, mixed argl);
+
+protected varargs mixed   LimitAbility(mixed sinfo, int diff);
+public    varargs mixed   UseSkill(string skill, mapping args);
+
+public    varargs void    LearnSkill(string sname, int add, int diff);
+public    varargs void    ModifySkill(string sname, mixed val, int diff, 
+                                      string gilde);
+public    varargs int     SetSpellFatigue(int duration, string key);
+public    varargs int     CheckSpellFatigue(string key);
+public            void    DeleteSpellFatigue(string key);
+
+#endif // _LIVING_SKILLS_H_PROTO_
+
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/living/team.h b/sys/living/team.h
new file mode 100644
index 0000000..942e0c3
--- /dev/null
+++ b/sys/living/team.h
@@ -0,0 +1,50 @@
+// MorgenGrauen MUDlib
+//
+// living/team.h -- team header
+//
+// $Id: team.h 8449 2013-03-04 21:06:38Z Zesstra $
+
+#ifndef __LIVING_TEAM_H__
+#define __LIVING_TEAM_H__
+
+#define P_TEAM                    "team"
+#define P_TEAM_NEWMEMBER          "potential_team_member"
+#define P_TEAM_ATTACK_CMD         "team_attack_cmd"
+#define P_TEAM_AUTOFOLLOW         "team_autofollow"
+#define P_TEAM_WANTED_ROW         "team_wanted_row"
+#define P_TEAM_WIMPY_ROW          "team_wimpy_row"
+#define P_TEAM_LEADER             "team_leader"
+#define P_TEAM_ASSOC_MEMBERS      "team_assoc_members"
+#define P_TEAM_COLORS             "team_colors"
+
+#define TEAM_OBJECT "/obj/team"
+#define TEAM_MASTER "/p/daemon/teammaster"
+#define EMPTY_TEAMARRAY ({({}),({}),({}),({}),({})})
+#define MAX_TEAMROWS 5
+#define MAX_TEAM_ROWLEN 6
+#define MAX_TEAM_MEMBERS 12
+
+#endif // __LIVING_TEAM_H__
+
+#ifdef NEED_PROTOTYPES
+#ifndef __LIVING_TEAM_H_PROTO__
+#define __LIVING_TEAM_H_PROTO__
+
+string TeamPrefix();
+object IsTeamLeader();
+object IsTeamMove();
+object *TeamMembers();
+varargs int PresentPosition(mixed pmap);
+varargs mapping PresentTeamPositions(mixed pres_rows);
+mixed *PresentTeamRows();
+varargs mixed *PresentEnemyRows(object *here);
+varargs object SelectNearEnemy(object *here, int forcefrom);
+varargs object SelectFarEnemy(object *here, int min, int max, int forcefrom);
+varargs void InsertEnemyTeam(mixed ens, int rek);
+int AssocMember(object npc);
+int DeAssocMember(object npc);
+int TeamFlee();
+varargs void InformRowChange(int from, int to, object caster);
+ 
+#endif // __LIVING_TEAM_H_PROTO__
+#endif // // NEED_PROTOYPES
diff --git a/sys/logging.h b/sys/logging.h
new file mode 100644
index 0000000..ffd4a11
--- /dev/null
+++ b/sys/logging.h
@@ -0,0 +1,31 @@
+// MorgenGrauen MUDlib
+//
+// logging.h
+//
+// $Id: logging.h 7116 2009-02-06 21:49:42Z Zesstra $
+
+#ifndef __LOGGING_H__
+#define __LOGGING_H__
+
+#define SYSLOGPATH    "syslog/"
+#define SYSLOG(x)     (SYSLOGPATH+x)
+
+#define SHELLLOGPATH  SYSLOG("shell/")
+#define SHELLLOG(x)   (SHELLLOGPATH+x)
+
+#define DAEMONLOGPATH SYSLOG("daemon/")
+#define DAEMONLOG(x)  (DAEMONLOGPATH+x)
+
+#define INTERMUDLOGPATH SYSLOG("intermud/")
+#define INTERMUDLOG(x) (INTERMUDLOGPATH+x)
+
+#define GUILDLOGPATH  "gilden/"
+#define GUILDLOG(x)   (GUILDLOGPATH+x)
+
+#define REPFILEPATH   "report/"
+#define REPFILE(x)    (REPFILEPATH+x)
+
+#define ERRORLOGPATH  "error/"
+#define ERRORLOG(x)   (ERRORLOGPATH+x)
+
+#endif
diff --git a/sys/lpctypes.h b/sys/lpctypes.h
new file mode 100644
index 0000000..3187d6b
--- /dev/null
+++ b/sys/lpctypes.h
@@ -0,0 +1,64 @@
+#ifndef LPC_LPCTYPES_H
+#define LPC_LPCTYPES_H
+
+/* compile time types, from functionlist() */
+
+#define TYPE_UNKNOWN    0       /* This type must be casted */
+#define TYPE_NUMBER     1
+#define TYPE_STRING     2
+#define TYPE_VOID       3
+#define TYPE_OBJECT     4
+#define TYPE_MAPPING    5
+#define TYPE_FLOAT      6
+#define TYPE_ANY        7       /* Will match any type */
+#define TYPE_CLOSURE    8
+#define TYPE_SYMBOL     9
+#define TYPE_QUOTED_ARRAY 10
+#define TYPE_STRUCT     11
+
+#define TYPE_MOD_POINTER        0x0040  /* Pointer to a basic type        */
+
+/* runtime types, from typeof() */
+
+#define T_INVALID       0x0
+#define T_LVALUE        0x1
+#define T_NUMBER        0x2
+#define T_STRING        0x3
+#define T_POINTER       0x4
+#define T_OBJECT        0x5
+#define T_MAPPING       0x6
+#define T_FLOAT         0x7
+#define T_CLOSURE       0x8
+#define T_SYMBOL        0x9
+#define T_QUOTED_ARRAY  0xa
+#define T_STRUCT        0xb
+
+/* Closure types, stored as secondary type info */
+
+#ifndef __DRIVER_SOURCE__
+
+#define CLOSURE_LFUN            0  /* lfun in an object */
+  /* Code 1: currently unused, used to be CLOSURE_ALIEN_LFUN */
+#define CLOSURE_IDENTIFIER      2  /* variable in this object */
+#define CLOSURE_PRELIMINARY     3
+    /* Efun closure used in a static initialization */
+#define CLOSURE_BOUND_LAMBDA    4  /* Bound unbound-lambda closure */
+#define CLOSURE_LAMBDA          5  /* normal lambda closure */
+#define CLOSURE_UNBOUND_LAMBDA  6  /* unbound lambda closure. */
+
+#define CLOSURE_OPERATOR        (0xe800)
+#define CLOSURE_EFUN            (0xf000)
+#define CLOSURE_SIMUL_EFUN      (0xf800)
+
+#define CLOSURE_IS_LFUN(x)		(((x)&~1) == 0)
+#define CLOSURE_IS_IDENTIFIER(x)	((x) == CLOSURE_IDENTIFIER)
+#define CLOSURE_IS_BOUND_LAMBDA(x)	((x) == CLOSURE_BOUND_LAMBDA)
+#define CLOSURE_IS_LAMBDA(x)		((x) == CLOSURE_LAMBDA)
+#define CLOSURE_IS_UNBOUND_LAMBDA(x)	((x) == CLOSURE_UNBOUND_LAMBDA)
+#define CLOSURE_IS_SIMUL_EFUN(x) (((x) & 0xf800) == CLOSURE_SIMUL_EFUN)
+#define CLOSURE_IS_EFUN(x)	 (((x) & 0xf800) == CLOSURE_EFUN)
+#define CLOSURE_IS_OPERATOR(x)	 (((x) & 0xf800) == CLOSURE_OPERATOR)
+
+#endif /* __DRIVER_SOURCE__ */
+
+#endif /* LPC_LPCTYPES_H */
diff --git a/sys/magier.h b/sys/magier.h
new file mode 100644
index 0000000..33cd98f
--- /dev/null
+++ b/sys/magier.h
@@ -0,0 +1,225 @@
+// MorgenGrauen MUDlib
+//
+// magier.h -- Magiererweiterung der Shell
+//
+// $Id: magier.h 9553 2016-05-03 20:22:47Z Zesstra $
+
+#ifndef _MAGIER_H_
+#define _MAGIER_H_
+
+#define SHELLDEBUGGER "zesstra"
+
+#define MAX_ARRAY_SIZE   3000 // MUSS EIGENTLICH NACH /sys/config.h oder so
+
+#define ERROR(msg, arg, res)   (printf(msg, arg),res)
+
+#define NO_READ         "%s: Keine Leserechte!\n"
+#define NO_WRITE        "%s: Keine Schreibrechte!\n"
+#define DOESNT_EXIST    "%s: Datei existiert nicht!\n"
+#define ALREADY_EXISTS  "%s: Datei existiert schon.\n"
+#define NO_DIRS          "%s ist ein Verzeichnis.\n"
+#define SAME_FILE        "%s: Gleiches Quell- und Zielfile: uebergangen.\n"
+#define NO_CREATE_DIR   "%s: Verzeichnis konnte nicht erstellt werden.\n"
+#define DEST_IS_DIR     "%s: Zieldatei ist ein Verzeichnis.\n"
+#define DEST_NO_DELETE  "%s: Zieldatei konnte nicht geloescht werden.\n"
+#define NO_MOVE         "%s: Datei konnte nicht verschoben werden.\n"
+#define NO_COPY         "%s: Datei konnte nicht kopiert werden.\n"
+#define FILE_COPIED     "%s: kopiert.\n"
+#define DIR_CREATED     "%s: Verzeichnis erzeugt.\n"
+#define FILE_MOVED      "%s: verschoben.\n"
+#define FILE_DELETED    "%s wurde geloescht.\n"
+#define NO_DELETE       "%s konnte nicht geloescht werden.\n"
+
+#define MAY_READ(x)   call_other(__MASTER_OBJECT__,"valid_read",x,getuid(this_object()))
+#define MAY_WRITE(x)  call_other(__MASTER_OBJECT__,"valid_write",x,getuid(this_object()))
+#define MAY_DELETE(x) call_other(__MASTER_OBJECT__,"remove_file",x,getuid(this_object()))
+
+#define MAXLEN  50000
+
+#define P_VARIABLES "variables"
+
+#define MAN_OPTS   "mri"
+#define MAN_M            1           // Matchen des Begriffs
+#define MAN_R            2           // Regexp-Matchen
+#define MAN_I            4           // Interaktive Hilfe (deaktiviert)
+
+#define MKDIR_OPTS "vrp"
+#define MKDIR_V          1           // Verbose: Ausgeben, was gemacht wird
+#define MKDIR_R          2           // Rekursiv alle hoeheren
+                                     // Verzeichnisse erstellen
+#define MKDIR_P          2           // das gleiche wie MKDIR_R
+
+#define RMDIR_OPTS "v"
+#define RMDIR_V          1           // Verbose: Ausgeben, was gemacht wird
+
+#define RM_OPTS   "vrmi"
+#define RM_V            1            // Verbose: Ausgeben, was gemacht wird
+#define RM_R            2            // Verzeichnisse rekursiv loeschen
+#define RM_M            4            // DateiMASKE beachten
+#define RM_I            8            // Interaktiv loeschen (immer fragen)
+
+#define UPD_OPTS  "afilrmbvcdhsC"
+#define UPD_A            1           // Alle Instanzen bearbeiten
+#define UPD_F            2           // Alle Instanzen finden und anzeigen
+#define UPD_I            4           // Geerbte Klassen aktualisieren
+#define UPD_L            8           // zerstoeren und neu laden
+#define UPD_R           16           // neu laden, falls zerstoert
+#define UPD_M           32           // alle geerbten Klassen auf
+                                     // aktualitaet Testen und
+                                     // ggf. aktualisieren
+#define UPD_B           64           // Backtrace bei Fehlern
+#define UPD_V          128           // Erbschaftslisten mit ausgeben
+#define UPD_C          256           // Properties erhalten
+#define UPD_D          512           // Objektinhalt komplett destructen
+#define UPD_H         1024           // Hard-Destruct (kein remove())
+#define UPD_S         2048           // Silent
+#define UPD_CONF      4096           // Configure() erzwingen (d.h. kein Update,
+                                     // wenn Configure() nicht definiert ist)
+#define UPD_LOAD      8192           // laden, falls nicht geladen (nur
+                                     // intern fuer 'load)
+
+#define CP_OPTS         "vrfmi"
+#define CP_V            1            // Verbose: Ausgeben, was gemacht wird
+#define CP_R            2            // Rekursiv kopieren
+#define CP_F            4            // Force (nie fragen)
+#define CP_M            8            // DateiMASKE beachten
+#define CP_I           16            // Interaktiv kopieren (immer fragen)
+
+#define MV_OPTS         "vrfmi"
+#define MV_V            1            // Verbose: Ausgeben, was gemacht wird
+#define MV_R            2            // Immer auch Dateien im Dir moven
+#define MV_F            4            // Force (nie fragen)
+#define MV_M            8            // DateiMASKE beachten
+#define MV_I           16            // Interaktiv bewegen (immer fragen)
+
+#define CD_OPTS         "ls"
+#define CD_L            1            // .readme ausgeben
+#define CD_S            2            // .readme unterdruecken
+#define CD_B            4            // Zurueck zum letzten Verzeichnis
+
+#define LS_OPTS         "alrtsug"
+#define LS_A            1            // ALLE Files anzeigen
+#define LS_L            2            // Lange Ausgabe
+#define LS_R            4            // Rueckwaerts ausgeben
+#define LS_T            8            // Nach Zeit ordnen
+#define LS_S            16           // Nach Größe ordnen
+#define LS_U            32           // UID anzeigen
+#define LS_G            64           // Gruppe anzeigen
+
+#define CLONE_OPTS      "f"
+#define CLONE_F         1            // Auf jeden Fall versuchen zu clonen
+
+#define GREP_OPTS       "chilnvrmf"
+#define GREP_C          1            // Nur Zahl der Zeilen ausgeben
+#define GREP_H          2            // Dateinamen nicht mit ausgeben
+#define GREP_I          4            // Gross-/Kleinschreibung ignorieren
+#define GREP_L          8            // Dateinamen immer mit ausgeben
+#define GREP_N          16           // Zeilennummern mit ausgeben
+#define GREP_V          32           // Nur Zeilen matchen, die NICHT passen
+#define GREP_R          64           // Rekursiv suchen
+#define GREP_M          128          // Dateimaske angegeben
+#define GREP_F          256          // Ausgabe in Datei
+
+#define ACCESS_OPTS     "arlfgm"
+#define ACCESS_A        1            // Berechtigung hinzufuegen
+#define ACCESS_R        2            // Berechtigung entfernen
+#define ACCESS_L        4            // Berechtigungen anzeigen
+#define ACCESS_F        8            // Berechtigung fuer Dateien anzeigen
+#define ACCESS_G        16           // Das ganze fuer Gruppen
+#define ACCESS_M        32           // Das ganze fuer Gruppenleiter
+
+// Funktioniert nur, wenn SNOOP_L == SF_LOCKED und SNOOP_F == SF_FORCE
+// (Definitionen aus /sys/snooping.h)
+#define SNOOP_OPTS      "lf"
+#define SNOOP_L         1            // Niedriger Magier kann sich nicht
+                                     // dazwischenklinken
+#define SNOOP_F         2            // Snoope snoopenden Magier, wenn der
+                                     // Charakter schon gesnoopt wird
+
+#define NO_CHECK        M_GO|M_SILENT|M_NO_SHOW|M_NO_ATTACK|M_NOCHECK
+
+#define INV_SAVE        "/room/void.c"
+
+#define USAGE(str)      (_notify_fail(break_string(sprintf("Syntax: %s\n", str),77)), 0)
+
+#define BASENAME 0
+#define FILESIZE 1
+#define FILEDATE 2
+#define FULLNAME 3
+#define PATHNAME 4
+#define DESTNAME 5
+#define SUBDIRSIZE 6
+
+#define RET_OK 1
+#define RET_FAIL 0
+#define RET_JUMP -1
+#define RET_DELETE -2
+
+#define MODE_LSA   0
+#define MODE_LSB   1
+#define MODE_CP    2
+#define MODE_MV    3
+#define MODE_RM    4
+#define MODE_CD    5
+#define MODE_CAT   6
+#define MODE_GREP  7
+#define MODE_ED    8
+#define MODE_UPD   9
+#define MODE_MORE  10
+#define MODE_RMDIR 11
+#define MODE_CLONE 12
+
+#define COLORS ([ "none": ANSI_NORMAL, \
+                  "bold": ANSI_BOLD, \
+                  "blink": ANSI_BLINK, \
+                  "invers": ANSI_INVERS, \
+                  "black": ANSI_BLACK, \
+                  "red": ANSI_RED, \
+                  "green": ANSI_GREEN, \
+                  "yellow": ANSI_YELLOW, \
+                  "blue": ANSI_BLUE, \
+                  "purple": ANSI_PURPLE, \
+                  "cyan": ANSI_CYAN, \
+                  "white": ANSI_WHITE, \
+                  "bblack": ANSI_BG_BLACK, \
+                  "bred": ANSI_BG_RED, \
+                  "bgreen": ANSI_BG_GREEN, \
+                  "byellow": ANSI_BG_YELLOW, \
+                  "bblue": ANSI_BG_BLUE, \
+                  "bpurple": ANSI_BG_PURPLE, \
+                  "bcyan": ANSI_BG_CYAN, \
+                  "bwhite": ANSI_BG_WHITE, \
+                ])
+
+#define VALID_READ_CL  symbol_function("valid_read",__MASTER_OBJECT__)
+#define VALID_WRITE_CL symbol_function("valid_write",__MASTER_OBJECT__)
+#define CREATOR_CL  symbol_function("creator_file",__MASTER_OBJECT__)
+
+#define DIR "directory"
+#define OBJ "loaded"
+#define VC  "virtual"
+
+#ifdef DEBUG
+#undef DEBUG
+#endif
+#define DEBUG(x) if (find_player(SHELLDEBUGGER)) \
+                     tell_object(find_player(SHELLDEBUGGER),x+"\n")
+
+#endif // _MAGIER_H_
+
+
+#ifdef NEED_PROTOTYPES
+#ifndef _MAGIER_H_PROTOS_
+#define _MAGIER_H_PROTOS_
+static string *parseargs(string cmdline,int flags,string opts,int build_fn);
+static varargs void asynchron(mixed* array, closure cmd, mixed data, mixed flags, int c);
+static varargs mixed *file_list(string *files, int mode, int recursive, string dest, string mask);
+static mixed to_filename(string str);
+static int _verfolge(string str);
+static string glob2regexp(string str);
+
+varargs public void More(string txt, int file,mixed ctrl, mixed *ctrlargs, int flags);
+#endif // _MAGIER_H_PROTOS_
+#endif // NEED_PROTOTYPES
+
+
diff --git a/sys/mail.h b/sys/mail.h
new file mode 100644
index 0000000..9db1ccc
--- /dev/null
+++ b/sys/mail.h
@@ -0,0 +1,43 @@
+// MorgenGrauen MUDlib
+//
+// mail.h -- Definitionen fuer die Post
+//
+// $Id: mail.h,v 3.4 2000/01/20 15:13:25 Tiamak Exp $
+
+#ifndef _MAIL_
+#define _MAIL_
+/*
+ *------------------------------------------------------------
+ * Definitions of fields used in mail messages
+ *------------------------------------------------------------
+ *
+ *	A message is represented as an array with the following fields:
+ */
+#define MSG_FROM 0
+#define MSG_SENDER 1
+#define MSG_RECIPIENT 2
+#define MSG_CC 3
+#define MSG_BCC 4
+#define MSG_SUBJECT 5
+#define MSG_DATE 6
+#define MSG_ID 7
+#define MSG_BODY 8
+
+#define NO_USER_ALIASES    1
+#define NO_SYSTEM_ALIASES  2
+#define NO_CARBON_COPIES   4
+
+#include "/mail/post.h"
+
+/*
+ *	DeliverMail(mixed *message)
+ *	  Hand a mail message over to the mailer demon. The mailer
+ *	  demon extracts recipients from the recipient, cc and bcc
+ *	  fields and removes the bcc information. It then deposits
+ *	  the message to the mail files of all recipients. A valid
+ *	  message is shown above.
+ *
+ *	int FingerMail(string user)
+ *	  Gives the number of unread messages a user has.
+ */
+#endif
diff --git a/sys/money.h b/sys/money.h
new file mode 100644
index 0000000..f304481
--- /dev/null
+++ b/sys/money.h
@@ -0,0 +1,32 @@
+// MorgenGrauen MUDlib
+//
+// money.h -- Konstanten und Pfade rund ums Geld
+//
+// $Id: moneyhandler.h,v 3.1 1997/02/12 13:29:09 Wargon Exp $
+
+#ifndef __LIB_MONEY_H__
+#define __LIB_MONEY_H__
+
+#include <container/moneyhandler.h>
+#include <bank.h>
+
+#define GELD       "/items/money"
+#define BOERSE     "/items/boerse"
+#define SEHERKARTE "/items/seercard"
+
+#define GELDID       "\ngeld"
+#define BOERSEID     "\ngeldboerse"
+#define SEHERKARTEID "\ngeldkarte"
+// Id fuer eine Boerse mit Geld drin...
+#define GELDBOERSE_MIT_GELD "\ngeldboerse_mit_geld"
+// ID fuer aktive Geldkarte
+#define SEHERKARTEID_AKTIV "\ngeldkarte_aktiv"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __LIB_MONEY_H_PROTO__
+#define __LIB_MONEY_H_PROTO__
+
+#endif
+#endif
diff --git a/sys/moving.h b/sys/moving.h
new file mode 100644
index 0000000..9b73bcc
--- /dev/null
+++ b/sys/moving.h
@@ -0,0 +1,83 @@
+// MorgenGrauen MUDlib
+//
+// moving.h -- Methoden und Rueckgabewerte fuer/von move()
+//             Dieser Header sollte IMMER benutzt werden, wenn ein Objekt
+//             move() benutzt!
+//
+// $Id: moving.h 8801 2014-05-04 21:30:59Z Zesstra $
+
+#ifndef _MOVING_
+#define _MOVING_
+
+// leider nicht via <> moeglich, da dieses File benutzt wird, bevor der Master
+// den Include-Dir-Hook gesetzt hat.
+#include "/sys/living/moving.h"
+#include "/sys/player/moving.h"
+
+/*
+ * moving.h
+ *
+ * How objects are moving around and reasons why they cant do it.
+ */
+
+/* Methods to move objects */
+#define M_GO      1  /* we walk around */
+#define M_TPORT 128  /* We teleport to another place */
+#define M_NOCHECK 2  /* just plain move it without any checks */
+#define M_GET     4  /* obj geht von nonliving zu living */
+#define M_PUT     8  /* obj geht von living zu nonliving */
+#define M_GIVE   16  /* obj geht von living zu living */
+#define M_SILENT 32  /* obj soll ohne meldung ausgezogen werden */
+#define M_NO_ATTACK 512 /* Kein Begruessungsschlag */
+#define M_NO_SHOW 256 /* Zeige nicht die Room-Descr beim ankommen */
+
+/* Hier folgt noch was fuer die Unit */
+#define M_MOVE_ALL 32
+
+/* Errors when moving things */
+#define MOVE_OK                   1 // gar kein Fehler. ;-)
+/* Hey, I'm a player and cant be simply carried away */
+#define ME_PLAYER 	         -1
+/* Cant move into container because I'm too heavy */
+#define ME_TOO_HEAVY             -2
+#define ME_CANT_TPORT_IN         -3 /* Cant teleport there ! */
+#define ME_CANT_TPORT_OUT        -4 /* Cant teleport from here ! */
+#define ME_CANT_BE_DROPPED       -5 /* You cant drop the feel... this thing */
+#define ME_CANT_BE_TAKEN         -6 /* Nope, you cannot take me */
+#define ME_CANT_BE_INSERTED      -7 /* Container prevents me from inserting */
+#define ME_CANT_LEAVE_ENV        -8 /* Container prevents me from leaving */
+/* Can't move into container, its Env would get too heavy */
+#define ME_TOO_HEAVY_FOR_ENV     -9
+#define TOO_MANY_OBJECTS         -10 /* too many objects in new environment */
+#define ME_NOT_ALLOWED           -11 /* Sorry - off limits for players */
+// Object was destructed during move/in init()
+#define ME_WAS_DESTRUCTED        -12
+// object itself does not want to be moved for undefined reason
+#define ME_DONT_WANT_TO_BE_MOVED -13
+
+// check for valid move error - mainly for internal use!
+#define ALL_MOVE_ERRORS ({ME_PLAYER,ME_TOO_HEAVY,ME_CANT_TPORT_IN,\
+                          ME_CANT_TPORT_OUT,ME_CANT_BE_DROPPED,\
+                          ME_CANT_BE_TAKEN,ME_CANT_BE_INSERTED,\
+                          ME_CANT_LEAVE_ENV,ME_TOO_HEAVY_FOR_ENV,\
+                          TOO_MANY_OBJECTS,ME_NOT_ALLOWED,\
+                          ME_WAS_DESTRUCTED,ME_DONT_WANT_TO_BE_MOVED})
+#define VALID_MOVE_ERROR(x) (member(ALL_MOVE_ERRORS,x) != -1)
+
+#define NO_TPORT 1
+#define NO_TPORT_IN 2
+#define NO_TPORT_OUT 4
+
+/* Ablehnreaktionen von NPCs */
+#define REJECT_LIGHT_MODIFIER "reject_light_modifier"
+#define REJECT_DROP           "reject_drop"
+#define REJECT_GIVE           "reject_give"
+#define REJECT_KEEP           "reject_keep"
+
+/* Zugriffsmethoden fuer find_obs */
+
+#define PUT_GET_NONE 0x00
+#define PUT_GET_TAKE 0x01
+#define PUT_GET_DROP 0x02
+
+#endif
diff --git a/sys/new_skills.h b/sys/new_skills.h
new file mode 100644
index 0000000..6af5cbc
--- /dev/null
+++ b/sys/new_skills.h
@@ -0,0 +1,415 @@
+// MorgenGrauen MUDlib
+//
+// new_skills.h -- Alle noetigen Defintionen fuer Skills (Faehigkeiten),
+//                 Spells (Zaubersprueche) und Gilden.
+//
+// $Id: new_skills.h 8610 2014-01-06 20:59:13Z Zesstra $
+
+#ifndef _NEW_SKILLS_H_
+#define _NEW_SKILLS_H_
+
+#include <combat.h>
+#include <living/skill_attributes.h>
+
+// ===== Aktuelle Version der Skills ====
+#define CURRENT_SKILL_VERSION       2
+
+// ===== Allgemeine Defines: =====
+
+#define DEFAULT_GUILD               "abenteurer"
+#define GUILD_DIR                   "/gilden/"
+#define GUILD_SAVEFILE              "/etc/gildenmaster"
+#define GUILDMASTER                 "/secure/gildenmaster"
+#define SPELLBOOK_DIR               "/spellbooks/"
+
+#define MAX_ABILITY                 10000
+#define MAX_SKILLEARN               200
+
+// ===== Moegliche Resultate eine Spells: =====
+
+#define ERFOLG                      1
+#define MISSERFOLG                  -1
+#define ABGEWEHRT                   2
+
+// ===== Properties des Gilden-Masters: =====
+
+#define P_VALID_GUILDS              "valid_guilds"
+
+// ===== Properties der Gilde: ======
+
+#define P_GUILD_SKILLS              "guild_skills"
+#define P_GUILD_RESTRICTIONS        "guild_rest"
+//bitte dieses Define auch in /scure/master/userinfo.c aendern...
+#define P_GUILD_DEFAULT_SPELLBOOK   "guild_sb"
+#define P_GUILD_MALE_TITLES         "guild_male_titles"
+#define P_GUILD_FEMALE_TITLES       "guild_female_titles"
+#define P_GUILD_LEVELS              "guild_levels"
+#define P_GUILD_PREPAREBLOCK        "guild_prepareblock"
+#define P_GUILD_DEACTIVATE_SKILLS   "guild_deactivate_skills"
+
+// ===== Properties des Spellbooks: =====
+
+#define P_SB_SPELLS                 "sb_spells"
+
+// ===== Properties der Gilde UND des Spellbooks: =====
+#define P_GLOBAL_SKILLPROPS         "sm_global"
+
+// ===== Properties des Spielers: =====
+
+// #define P_GUILD                     "guild"
+#define P_DEFAULT_GUILD             "default_guild"
+#define P_DEFENDERS                 "defenders"
+#define P_GUILD_LEVEL               "guild_level"
+#define P_GUILD_RATING              "guild_rating"
+#define P_GUILD_TITLE               "guild_title"
+#define P_SUBGUILD_TITLE            "subguild_title"
+#define P_VISIBLE_SUBGUILD_TITLE    "visible_subguild_title"
+#define P_MAGIC_RESISTANCE_OFFSET   "mag_res_offset"
+#define P_NEWSKILLS                 "newskills"
+#define P_NEXT_SPELL_TIME           "next_spell"
+#define P_PREPARED_SPELL            "prepared_spell"
+#define P_TMP_ATTACK_HOOK           "attack_hook"
+#define P_TMP_ATTACK_MOD            "attack_mod"
+#define P_TMP_DEFEND_HOOK           "defend_hook"
+#define P_TMP_DIE_HOOK              "die_hook"
+#define P_TMP_MOVE_HOOK             "move_hook"
+#define P_WEAPON_TEACHER            "weapon_teacher"
+#define P_SKILLSVERSION             "p_lib_skillsversion"
+
+// ===== Standard-Skills: =====
+
+#define FIGHT(x)                    ("Fight_"+x)
+#define SHOOT(x)                    ("Shoot_"+x)
+#define SK_BOOZE                    "Booze"
+#define SK_CARRY                    "CarrySkill"
+#define SK_CASTING                  "Cast"
+#define SK_DEFEND_OTHER             "DefendOther"
+#define SK_FIGHT                    "Fight"
+#define SK_INFORM_DEFEND            "InformDefend"
+#define SK_MAGIC_ATTACK             "MagicAttack"
+#define SK_MAGIC_DEFENSE            "MagicDefense"
+#define SK_NIGHTVISION              "Nightvision"
+#define SK_SHOOT                    "Shoot"
+#define SK_SPELL_DEFEND             "SpellDefend"
+#define SK_SWORDFIGHTING            FIGHT(WT_SWORD)
+#define SK_TWOHANDED                "Bihand"
+#define SK_WEAPONLESS               FIGHT(WT_HANDS)
+
+// ===== Skill Infos: =====
+
+#define FACTOR(x)                   ("fac_"+x)
+#define OFFSET(x)                   ("off_"+x)
+
+#define SI_SKILLFUNC                "si_func"
+  // Funktion, die aufgerufen wird
+
+#define SI_CLOSURE                  "si_closure"
+  // Nur fuer den internen Gebrauch
+  // (Geschwindigkeitsoptimierung)
+
+#define SI_SPELLBOOK                "si_spellbook"
+  // Spellbook, in dem der Spell
+  // steht
+
+#define SI_SPELLCOST                "si_cost"
+  // Kosten des Spells
+
+#define SI_TIME_MSG                 "time_msg"
+  // Die Meldung wird anstelle von
+  // "Du bist noch zu erschoepft
+  //  von Deinem letzten Spruch."
+  // ausgegeben.
+
+#define SI_SP_LOW_MSG               "sp_low_msg"
+  // Die Meldung wird anstelle von
+  // "Du hast zu wenig Zauberpunkte
+  //  fuer diesen Spruch."
+  // ausgegeben.
+
+#define SI_PREPARE_MSG              "si_prepare_msg"
+#define SI_PREPARE_ABORT_MSG        "si_prepare_abort_msg"
+#define SI_PREPARE_BUSY_MSG         "si_prepare_busy_msg"
+  // Meldungen fuer Spruch-
+  // vorbereitung, Abbruch und
+  // schon beschaeftigt
+
+#define SI_NOMAGIC                  "si_nomagic"
+  // Prozentwert, mit dem P_NOMAGIC
+  // umgangen werden kann
+
+#define SI_NOMAGIC_MSG              "si_nomagic_msg"
+  // Meldung, die Anstelle von
+  // "Dein Zauberspruch verpufft
+  //  im Nichts" ausgegeben werden
+  // soll.
+
+#define SI_SPELLFATIGUE             "si_fatigue"
+  // Erschoepfung - Zeit, in der
+  // keine weiteren Spells
+  // aufgerufen werden koennen
+#define SI_X_SPELLFATIGUE           "std:si:xfatigue"
+
+#define SI_SKILLLEARN               "si_learn"
+  // Lerngeschwindigkeit in 0.01%
+  // pro A_INT/2
+
+#define SI_LEARN_ATTRIBUTE          "si_learn_attribute"
+  // Wenn man nicht will, dass man in Abhaengigkeit von
+  // INT lernt
+
+#define SI_NO_LEARN                 "si_no_learn"
+  // Wenn man (temporaer!) nicht will, dass dieser Skill gelernt wird.
+  // Muss von den Spellbooks beachtet werden.
+  // Sollte niemals im Spieler abgespeichert werden. Oder permanent in
+  // Gilde/Spellbook gesetzt sein. Sondern im Laufe einesr Nutzung in der jew.
+  // Kopie von sinfo gesetzt werden, die gerade genutzt wird.
+
+#define SI_SKILLABILITY             "si_abil"
+  // Faehigkeit, diesen Spruch zu
+  // benutzen
+
+#define SI_SKILLARG                 "si_arg"
+  // Argumente, die uebergeben
+  // wurden
+
+#define SI_SKILLRESTR_USE           "si_restr_u"
+  // Beschraenkungen beim Gebrauch
+
+#define SI_SKILLRESTR_LEARN         "si_restr_l"
+  // Beschraenkungen beim Lernen
+
+#define SI_SKILLINFO                "si_info"
+  // Kurzer Informationstext
+
+#define SI_SKILLINFO_LONG           "si_info_l"
+  // Langer Informationstext
+
+#define SI_SKILLDAMAGE              "si_damage"
+  // Schaden
+
+#define SI_SKILLDAMAGE_BY_ROW       "si_damage_by_row"
+  // Schaden durch Teamreihen
+
+#define SI_SKILLDAMAGE_TYPE         "si_damtyp"
+  // Art des Schadens
+
+#define SI_SKILLDAMAGE_MSG          "si_dammsg"
+  // Meldung die anstelle einer
+  // Waffe kommen soll
+
+#define SI_SKILLDAMAGE_MSG2         "si_dammsg2"
+  // dito fuer den Text fuer
+  // andere im Raum
+
+#define SI_SPELL                    "si_spell"
+  // Spell, mit dem angegriffen
+  // wurde
+
+#define SI_COLLATERAL_DAMAGE        "si_collateral_damage"
+  // Schadensanteil bei Flaechen-
+  // spells, den Freunde abbekommen,
+  // in Prozent
+
+#define SI_NUMBER_ENEMIES           "si_num_enemies"
+  // Anzahl Feinde bei
+  // Flaechenspruch
+
+#define SI_NUMBER_FRIENDS           "si_num_friends"
+  // Anzahl Freunde bei
+  // Flaechenspruch
+
+#define SI_DISTANCE                 "si_distance"
+  // Entfernung
+
+#define SI_WIDTH                    "si_width"
+  // Breite des Flaechenangriffs
+
+#define SI_DEPTH                    "si_depth"
+  // Tiefe des Flaechenangriffs
+
+#define SI_INHERIT                  "si_inherit"
+  // Skill, von dem etwas
+  // uebernommen werden soll
+
+#define SI_DIFFICULTY               "si_difficulty"
+  // Wert, der die Obergrenze der
+  // Faehigkeit abgrenzt
+
+#define SI_LASTLIGHT                "si_lastlight"
+  // Fuer Nachtsicht: Wann hat
+  // der Spieler zum letzten mal
+  // Licht gesehen.
+
+#define SI_SKILLHEAL                "si_heal"
+  // Heilung
+
+#define SI_USR                      "si_usr"
+  // selbst definierte Infos
+
+#define SI_TESTFLAG                 "si_testflag"
+  // Testflag
+
+#define SI_GUILD                    "si_guild"
+  // Gilde, falls Auswahl aus
+  // mehreren moeglich
+
+#define SI_ENEMY                    "si_enemy"
+  // Feind bei Kampfspruechen
+
+#define SI_FRIEND                   "si_friend"
+  // Der zu verteidigende Freund
+  // bei DefendOther und
+  // InformDefend
+
+#define SI_MAGIC_TYPE               "si_magic_type"
+  // Von was fuer einer Art ist
+  // die Magie (s.u.)
+
+#define SI_PREPARE_TIME             "si_prepare_time"
+  // Zeit die zur Vorbereitung
+  // benoetigt wird.
+
+#define SI_ATTACK_BUSY_MSG          "si_attack_busy_msg"
+  // Meldung, wenn der Spieler zu
+  // beschaeftigt ist
+
+#define SI_NO_ATTACK_BUSY           "si_no_attack_busy"
+  // Wenn der Spell nicht als
+  // Taetigkeit zaehlen/gezaehlt
+  // werden soll, kann man hier
+  // NO_ATTACK_BUSY[_SET|_QUERY]
+  // (s.u.) setzen
+
+#define SI_ATTACK_BUSY_AMOUNT       "si_attack_busy_amount"
+  // Der Spell hat ein gewisses
+  // AttackBusy, aber das weicht
+  // vom Standardwert 1 ab. Der
+  // Wert kann hier gesetzt
+  // werden.
+
+#define SI_LAST_USE                 "si_last_use"
+  // Letzte benutzung eines
+  // Skills (fuer Rassenskills)
+
+#define SI_LEARN_PROB               "si_learn_prob"
+  // Lernwahrscheinlichkeit
+  // (fuer Rassenskills)
+
+#define SI_SKILLDURATION            "si_duration"
+  // Wie soll wird der Skill anhalten?
+  // (fuer Spells mit einer Dauer)
+
+// ===== Parameter fuer Spell-Mapping: =====
+
+#define SP_NAME                     "sp_name"
+  // Name des Spells
+
+#define SP_SHOW_DAMAGE              "sp_showdamage"
+  // Treffermeldung soll gezeigt
+  // werden.
+
+#define SP_REDUCE_ARMOUR            "sp_reduce_ac"
+  // AC soll Typabhaengig
+  // reduziert werden.
+
+#define SP_PHYSICAL_ATTACK          "sp_physical"
+  // Koerperlicher Angriff
+
+#define SP_RECURSIVE                "sp_recursive"
+  // Rekursionen
+
+#define SP_NO_ENEMY                 "no_enemy"
+  // Ist kein richtiger Angriff
+
+#define SP_NO_ACTIVE_DEFENSE        "sp_no_active_defense"
+  // Es ist keine aktive Abwehr erwuenscht
+
+#define SP_GLOBAL_ATTACK            "sp_global_attack"
+  // Ist Flaechenangriff
+
+// ===== Skill Restrictions: =====
+
+#define SR_FUN                      "restr_fun"
+  // Funktion, die weitere
+  // Einschraenkungen prueft
+
+#define SR_EXCLUDE_RACE             "restr_race_ex"
+  // Ausgeschlossene Rassen
+
+#define SR_INCLUDE_RACE             "restr_race_in"
+  // Eingeschlossene Rassen
+
+#define SR_EXCLUDE_GUILD            "restr_guild_ex"
+  // Ausgeschlossene Gilden
+
+#define SR_INCLUDE_GUILD            "restr_guild_in"
+  // Eingeschlossene Gilden
+
+#define SR_GOOD                     "restr_good"
+  // Align <
+
+#define SR_BAD                      "restr_bad"
+  // Align >
+
+#define SR_FREE_HANDS               "restr_hands"
+  // Benoetigte freie Haende
+
+#define SR_SEER                     "restr_seer"
+  // Muss Seher sein
+
+#define SR_MIN_SIZE                 "min_size"
+  // Mindestgroesse
+
+#define SR_MAX_SIZE                 "max_size"
+  // Maximalgroesse
+
+#define SR_PROP                     "restr_properties"
+  // Werte beliebiger Properties
+
+#define SR_QUEST                    "restr_quests"
+  // Quest bestanden
+
+#define SR_MINIQUEST                "restr_miniquests"
+  // Miniquest geloest
+
+// ===== Skill Modifier: =====
+
+#define SM_RACE                     "modify_race"
+  // Rassenspezifische
+  // Besonderheiten
+
+// ===== Fuer das Attack-Busy-Handling: =====
+
+#define NO_ATTACK_BUSY_SET          0x001
+#define NO_ATTACK_BUSY_QUERY        0x002
+#define NO_ATTACK_BUSY              0x003
+
+// ===== Magie-Arten: =====
+
+#define MT_ANGRIFF                  "mt_angriff"
+#define MT_BEHERRSCHUNG             "mt_beherrschung"
+#define MT_BESCHWOERUNG             "mt_beschwoerung"
+#define MT_BEWEGUNG                 "mt_bewegung"
+#define MT_CREATION                 "mt_creation"
+#define MT_HEILUNG                  "mt_heilung"
+#define MT_HELLSICHT                "mt_hellsicht"
+#define MT_ILLUSION                 "mt_illusion"
+#define MT_PSYCHO                   "mt_psycho"
+#define MT_SAKRAL                   "mt_sakral"
+#define MT_SCHUTZ                   "mt_schutz"
+#define MT_VERWANDLUNG              "mt_verwandlung"
+
+#define MT_MISC                     "mt_misc"
+
+// ===== Defines fuer FindGroup() =====
+
+#define FG_ENEMIES                  -1
+#define FG_FRIENDS                  1
+#define FG_ALL                      0
+
+// ======== OBSOLETE Properties / Defines =============
+// Prop wird nicht mehr genutzt, ist aber noch fuer /std/player/base.c noetig,
+// um den SAVE-Status in den Spieler-Props zu loeschen.
+#define P_GUILD_PREVENTS_RACESKILL  "guild_prevents_raceskill"
+
+#endif
diff --git a/sys/news.h b/sys/news.h
new file mode 100644
index 0000000..38085a1
--- /dev/null
+++ b/sys/news.h
@@ -0,0 +1,36 @@
+// MorgenGrauen MUDlib
+//
+// news.h -- Definitionen fuer die Zeitung
+//
+// $Id: news.h 8809 2014-05-08 19:52:48Z Zesstra $
+
+#define G_NAME 0
+#define G_OWNER 1
+#define G_SAVEFILE 2
+#define G_EXPIRE 3
+#define G_DELETERS 4 
+#define G_WRITERS 5
+#define G_READERS 6
+#define G_DLEVEL 7
+#define G_WLEVEL 8
+#define G_RLEVEL 9
+#define G_MAX_MSG 10
+#ifdef TESTING
+#define G_MAX_NUM 11
+#define G_MESSAGES 12
+#else
+#define G_MESSAGES 11
+#endif
+
+#define M_BOARD 0
+#define M_WRITER 1
+#define M_ID 2
+#define M_TIME 3
+#define M_TITLE 4
+#define M_MESSAGE 5
+
+static string user_euid();
+static void save_group_list();
+static void save_group(string grp,mixed group);
+static mixed load_group(string name);
+               
\ No newline at end of file
diff --git a/sys/notify_fail.h b/sys/notify_fail.h
new file mode 100644
index 0000000..97d1786
--- /dev/null
+++ b/sys/notify_fail.h
@@ -0,0 +1,20 @@
+// MorgenGrauen MUDlib
+//
+// notify_failh -- sym. Konstanten fuer notify_fail()
+//
+// $Id: defines.h 6415 2007-08-10 19:24:04Z Zesstra $
+
+#ifndef _NOTIFY_FAIL_H_
+#define _NOTIFY_FAIL_H_
+
+// Prioritaeten / 'Nice levels' von notify_fail()s:
+// Wie 'nice' bin ich? Je groessere Zahl/Priorität, desto wenig lieb. ;-)
+#define NF_NL_NONE   -1   //max 'niceness', wird von allem ueberschrieben
+#define NF_NL_OWN    100  //eigenes Objekt (soul verben) ueberschreiben kaum was
+#define NF_NL_THING  100000
+#define NF_NL_ROOM   1000000 // Raeume ueberschreiben sonstigen Krams
+#define NF_NL_LIVING 10000000 // Lebewesen ueberschreiben auch Raeume
+#define NF_NL_MAX    __INT_MAX__ //hoechste Prioritaet, ueberschreibt alles
+
+#endif /* _NOTIFY_FAIL_H_ */
+
diff --git a/sys/npc.h b/sys/npc.h
new file mode 100644
index 0000000..8565930
--- /dev/null
+++ b/sys/npc.h
@@ -0,0 +1,60 @@
+// MorgenGrauen MUDlib
+//
+// npc.h -- Definitonen fuer NPCs
+//
+// $Id: npc.h 6709 2008-02-02 22:14:08Z Zesstra $
+
+#ifndef _NPC_H_
+#define _NPC_H_
+
+#define DEFAULT_INFO "\ndefault info"
+#define DEFAULT_NOINFO "\ndefault noinfo"
+#define P_PRE_INFO           "npc_pre_info"
+#define P_NPC_INFO           "npc_info"
+
+#define P_NPC                "is_npc"
+
+#define P_HB                 "hb"
+#define P_INFO               "info"
+
+#define P_AGGRESSIVE         "aggressive"
+
+#define P_SPELLS             "spells"
+#define P_SPELLRATE          "spellrate"
+
+#define P_CHATS              "chats"
+#define P_CHAT_CHANCE        "chat_chance"
+#define P_ACHATS             "achats"
+#define P_ACHAT_CHANCE       "achat_chance"
+
+#define P_REJECT             "reject"
+
+#define P_DEFAULT_INFO       "default_info" // Standardantwort fuer Fragen
+#define P_LOG_INFO           "log_info"
+
+#define CLONE_NEW   0x10000000  /* VERALTET! */
+#define CLONE_WEAR  0x20000000  /* anziehen */
+#define CLONE_WIELD 0x40000000  /* zuecken */
+#define CLONE_NO_CHECK 0x08000000  /* zuecken oder anziehen ohne checks */
+
+#define NPC_NEEDS_ITEM_INIT "npc:need item init"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef _NPC_H_PROTOTYPES_
+#define _NPC_H_PROTOTYPES_
+// aus npc/info.c
+public varargs void    AddInfo(mixed key, mixed info, string indent, 
+                               mixed silent, mixed casebased);
+public varargs void    AddSpecialInfo(mixed keys, string functionname, 
+                          string indent, mixed silent, mixed casebased );
+public int             frage(string str);
+public int             do_frage(string text);
+public void            RemoveInfo( string key );
+public varargs mixed   GetInfo(string str);
+// aus npc/items.c
+public varargs object  AddItem(mixed filename, int refresh, mixed props);
+#endif // _NPC_H_PROTOTYPES_
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/object_info.h b/sys/object_info.h
new file mode 100644
index 0000000..2578747
--- /dev/null
+++ b/sys/object_info.h
@@ -0,0 +1,70 @@
+#ifndef LPC_OBJECT_INFO_H_
+#define LPC_OBJECT_INFO_H_
+
+/* Definition of argument values for object_info()
+ */
+
+#include "configuration.h"
+
+/* Object flags */
+#define OI_ONCE_INTERACTIVE             -1
+#define OI_RESET_STATE                  -2
+#define OI_WILL_CLEAN_UP                -3
+#define OI_LAMBDA_REFERENCED            -4
+#define OI_REPLACED                     -5
+
+/* Program flags */
+#define OI_NO_INHERIT                   -10
+#define OI_NO_CLONE                     -11
+#define OI_NO_SHADOW                    -12
+#define OI_SHARE_VARIABLES              -13
+
+/* Swapping */
+#define OI_SWAPPED                      -20
+#define OI_PROG_SWAPPED                 -21
+#define OI_VAR_SWAPPED                  -22
+#define OI_SWAP_NUM                     -23
+
+/* Timing */
+#define OI_NEXT_RESET_TIME              -30
+#define OI_NEXT_CLEANUP_TIME            -31
+#define OI_LAST_REF_TIME                -32
+
+/* Object list */
+#define OI_OBJECT_NEXT                  -40
+#define OI_OBJECT_PREV                  -41
+#define OI_OBJECT_POS                   -42
+
+/* Shadows */
+#define OI_SHADOW_NEXT                  -50
+#define OI_SHADOW_PREV                  -51
+#define OI_SHADOW_ALL                   -52
+
+/* Statistics about the object */
+#define OI_OBJECT_REFS                  -60
+#define OI_TICKS                        -61
+#define OI_GIGATICKS                    -62
+#define OI_DATA_SIZE                    -63
+#define OI_DATA_SIZE_TOTAL              -64
+
+/* Statistics about the program */
+#define OI_PROG_REFS                    -70
+
+#define OI_NUM_FUNCTIONS                -71
+#define OI_NUM_VARIABLES                -72
+#define OI_NUM_STRINGS                  -73
+#define OI_NUM_INHERITED                -74
+#define OI_NUM_INCLUDED                 -75
+
+#define OI_SIZE_FUNCTIONS               -76
+#define OI_SIZE_VARIABLES               -77
+#define OI_SIZE_STRINGS                 -78
+#define OI_SIZE_STRINGS_DATA            -79
+#define OI_SIZE_STRINGS_DATA_TOTAL      -80
+#define OI_SIZE_INHERITED               -81
+#define OI_SIZE_INCLUDED                -82
+
+#define OI_PROG_SIZE                    -83
+#define OI_PROG_SIZE_TOTAL              -84
+
+#endif /* LPC_OBJECT_INFO_H_ */
diff --git a/sys/objectinfo.h b/sys/objectinfo.h
new file mode 100644
index 0000000..de2c33b
--- /dev/null
+++ b/sys/objectinfo.h
@@ -0,0 +1,82 @@
+#ifndef LPC_OBJECTINFO_H_
+#define LPC_OBJECTINFO_H_
+
+/* Definition of argument values for object_info() and
+ * of the indices in the corresponding result arrays.
+ */
+
+/* Possible types of information requested from object_info()
+ */
+#define OINFO_BASIC     0
+#define OINFO_POSITION  1
+#define OINFO_MEMORY    2
+
+
+/* Indices in the array resulting from OINFO_BASIC
+ */
+
+#define OIB_HEART_BEAT          0
+#define OIB_IS_WIZARD           1
+#define OIB_ENABLE_COMMANDS     2
+#define OIB_CLONE               3
+#define OIB_DESTRUCTED          4
+#define OIB_SWAPPED             5
+#define OIB_ONCE_INTERACTIVE    6
+#define OIB_RESET_STATE         7
+#define OIB_WILL_CLEAN_UP       8
+#define OIB_LAMBDA_REFERENCED   9
+#define OIB_SHADOW             10
+#define OIB_REPLACED           11
+#define OIB_NEXT_RESET         12
+#define OIB_TIME_OF_REF        13
+#define OIB_REF                14
+#define OIB_GIGATICKS          15
+#define OIB_TICKS              16
+#define OIB_SWAP_NUM           17
+#define OIB_PROG_SWAPPED       18
+#define OIB_VAR_SWAPPED        19
+#define OIB_NAME               20
+#define OIB_LOAD_NAME          21
+#define OIB_NEXT_ALL           22
+#define OIB_PREV_ALL           23
+#define OIB_NEXT_CLEANUP       24
+
+#define OIB_MAX 25  /* Number of OIB_ result elements */
+
+
+/* Indices in the array resulting from OINFO_POSITION
+ */
+#define OIP_NEXT  0
+#define OIP_PREV  1
+#define OIP_POS   2
+
+#define OIP_MAX 3  /* Number of OIP_ result elements */
+
+
+/* Indices in the array resulting from OINFO_MEMORY
+ */
+#define OIM_REF                  0
+#define OIM_NAME                 1
+#define OIM_PROG_SIZE            2
+#define OIM_NUM_FUNCTIONS        3
+#define OIM_SIZE_FUNCTIONS       4
+#define OIM_NUM_VARIABLES        5
+#define OIM_SIZE_VARIABLES       6
+#define OIM_NUM_STRINGS          7
+#define OIM_SIZE_STRINGS         8
+#define OIM_SIZE_STRINGS_DATA    9
+#define OIM_SIZE_STRINGS_TOTAL  10
+#define OIM_NUM_INHERITED       11
+#define OIM_SIZE_INHERITED      12
+#define OIM_TOTAL_SIZE          13
+#define OIM_DATA_SIZE           14
+#define OIM_TOTAL_DATA_SIZE     15
+#define OIM_NO_INHERIT          16
+#define OIM_NO_CLONE            17
+#define OIM_NO_SHADOW           18
+#define OIM_NUM_INCLUDES        19
+#define OIM_SHARE_VARIABLES     20
+
+#define OIM_MAX 21  /* Number of OIM_ result elements */
+
+#endif /* LPC_OBJECTINFO_H_ */
diff --git a/sys/oldprops b/sys/oldprops
new file mode 100644
index 0000000..5d202a9
--- /dev/null
+++ b/sys/oldprops
@@ -0,0 +1,4 @@
+
+// werden alle beide in keinem .c File benutzt...
+P_MAX_WC
+P_CONTENT
diff --git a/sys/pager.h b/sys/pager.h
new file mode 100644
index 0000000..fef652a
--- /dev/null
+++ b/sys/pager.h
@@ -0,0 +1,63 @@
+// MorgenGrauen MUDlib
+//
+// pager.h -- generic pager header
+//
+// $Id: pager.h 6142 2007-01-31 20:34:39Z Zesstra $
+
+#ifndef __PAGER_H__
+#define __PAGER_H__
+
+// select language
+#define GERMAN
+//#define ENGLISH
+
+// select optimization
+#define O_SPEED			// speed optimization
+#define O_SPEED_UP		// additional speed up 
+				// (works only with O_SPEED)
+#define MAX_LINE_READ	625	// max. lines to be read by
+				// read_file() 50k/80c
+
+// the pager info structure
+#define TEXT    0		// the filename or string
+#define FILE    1		// 1 == file, 0 = string
+#define CURL    2		// current line
+#define MAXL    3		// last line
+#define PAGE    4		// page length
+#define REGX	5		// last regular expression
+#define CTRL	6		// function to give control
+#define CARG	7		// array of args to CTRL
+#define FLAG	8		// special flags
+# define E_PROMPT 1             //   prompt at end of file
+# define E_CAT    2             //   do not prompt for more
+# define E_ABS    4             //   show line numbers at prompt
+#ifdef O_SPEED
+# define JUNK		9	// junk index
+# define JUNKSIZE	10	// size of string junks
+#endif
+
+#ifdef GERMAN
+# define MSG_PROMPT	"--mehr--"
+# define MSG_TOP	"ANFANG "
+# define MSG_BOTTOM	"ENDE "
+# define MSG_OOPS	"Ohh, da lief etwas schief!"
+#else
+# define MSG_PROMPT	"--more--"
+# define MSG_TOP	"TOP "
+# define MSG_BOTTOM	"BOTTOM "
+# define MSG_OOPS	"Oops, something went wrong!"
+#endif
+
+#include <player/base.h>
+
+#define PAGELENGTH	(this_interactive() ? \
+			   this_interactive()->QueryProp(P_SCREENSIZE) : \
+			   (interactive(this_player()) ? \
+			     this_player()->QueryProp(P_SCREENSIZE) : 20))
+
+// old_explode() must create an array that implode()'s to the same string
+#define Explode(s,x)	(explode(s,x))
+
+#endif // __PAGER_H__
+
+
diff --git a/sys/pathd.h b/sys/pathd.h
new file mode 100644
index 0000000..c75fceb
--- /dev/null
+++ b/sys/pathd.h
@@ -0,0 +1,13 @@
+// MorgenGrauen MUDlib
+//
+// pathd.h - sym. Konstanten fuer den PATHD
+//
+// $Id: pathd.h 6415 2007-08-10 19:24:04Z Zesstra $
+
+#ifndef _PATHD_H_
+#define _PATHD_H_
+
+#define PATHD "/p/daemon/pathd"
+
+#endif /* _PATHD_H_ */
+
diff --git a/sys/pgsql.h b/sys/pgsql.h
new file mode 100644
index 0000000..fa7cdf6
--- /dev/null
+++ b/sys/pgsql.h
@@ -0,0 +1,23 @@
+#ifndef _PGSQL_H
+#define _PGSQL_H
+
+/* Definitions for the PostgreSQL efuns */
+
+#define PGRES_EMPTY_QUERY    0  /* Unimplemented */
+#define PGRES_COMMAND_OK     1
+#define PGRES_TUPLES_OK      2
+#define PGRES_COPY_OUT       3  /* Unimplemented */
+#define PGRES_COPY_IN        4  /* Unimplemented */
+#define PGRES_BAD_RESPONSE   5
+#define PGRES_NONFATAL_ERROR 6
+#define PGRES_FATAL_ERROR    7
+#define PGRES_NOTICE        99
+
+#define PGCONN_SUCCESS 100
+#define PGCONN_FAILED  101
+#define PGCONN_ABORTED 102
+
+#define PG_RESULT_ARRAY 0
+#define PG_RESULT_MAP   1
+
+#endif
diff --git a/sys/player.h b/sys/player.h
new file mode 100644
index 0000000..74b40d1
--- /dev/null
+++ b/sys/player.h
@@ -0,0 +1,58 @@
+// MorgenGrauen MUDlib
+//
+// player.h -- player object defines
+//
+// $Id: player.h 7386 2010-01-22 14:59:05Z Zesstra $
+
+#ifndef _PLAYER_H_
+#define _PLAYER_H_
+
+#ifdef NEED_PROTOTYPES
+#undef NEED_PROTOTYPES                                  // we need only the properties here!!
+#define PLAYER_TMP_NEED_PROTOTYPES
+#endif
+
+#include "/sys/player/base.h"
+#include "/sys/player/description.h"
+#include "/sys/player/moving.h"
+#include "/sys/player/filesys.h"
+#include "/sys/player/potion.h"
+#include "/sys/player/quest.h"
+#include "/sys/player/skills.h"
+#include "/sys/player/viewcmd.h"
+#include "/sys/player/comm.h"
+#include "/sys/player/fao.h"
+#include <player/user_filter.h>
+#include <daemon.h>
+
+#ifdef PLAYER_TMP_NEED_PROTOTYPES
+#undef PLAYER_TMP_NEED_PROTOTYPES
+#define NEED_PROTOTYPES
+#endif
+
+#define P_LAST_COMMAND_ENV      "last_command_env"
+#define P_HISTMIN               "histmin"
+#define P_SHOW_ALIAS_PROCESSING "show_alias_processing"
+#define P_DEFAULT_NOTIFY_FAIL   "default_notify_fail"
+#define P_NETDEAD_INFO          "netdead_info"
+#define P_NETDEAD_ENV           "netdead_env"
+#define P_IP_NAME               "ip_name"
+#define P_LAST_KILLER           "last_killer"
+#define P_ACTUAL_NOTIFY_FAIL    "actual_notify_fail"
+#define P_LEP                   "lep"
+#define P_NEWBIE_GUIDE          "newbie_guide"
+
+#define DeclareAutoload(name,param) \
+  mlfp_create(({P_AUTOLOAD,name}),param)
+
+#define UndeclareAutoload(name) \
+  mlfp_remove(({P_AUTOLOAD}),name)
+
+#define QueryAutoload(name) \
+  mlfp_query(({P_AUTOLOAD,name}))
+
+#ifdef NEED_PROTOTYPES
+varargs string _unparsed_args(int level);
+#endif
+
+#endif
diff --git a/sys/player/base.h b/sys/player/base.h
new file mode 100644
index 0000000..3f28cb4
--- /dev/null
+++ b/sys/player/base.h
@@ -0,0 +1,124 @@
+// MorgenGrauen MUDlib
+//
+// player/base.h -- player base header
+//
+// $Id: base.h 8487 2013-05-21 19:15:52Z Zesstra $
+
+#ifndef __PLAYER_BASE_H__
+#define __PLAYER_BASE_H__
+
+// da dieses File vom Master inkludiert wird und dann die Standard-Include-
+// verzeichnisse noch nicht gesetzt sind, darf dieses File auch nur die abs.
+// Namen verwenden. *seufz*
+#include "/sys/player/can.h"
+#include "/sys/player/telnetneg.h"
+
+#define HAUSVERWALTER   "/d/seher/haeuser/hausverwalter"
+
+// properties
+
+#define P_KILLS              "playerkills"
+
+#define P_ZAP_MSG            "zap_msg"
+#define P_AWAY               "away"
+#define P_NO_TOPLIST         "no_toplist"
+#define P_CALLED_FROM_IP     "called_from_ip"
+#define P_MARRIED            "married"
+#define P_SIBLINGS           "siblings"
+#define P_RACE_DESCRIPTION   "racedescr"
+#define P_RACESTRING         "racestring"
+
+#define P_WAITFOR            "waitfor"
+#define P_WAITFOR_REASON     "waitfor_reason"
+#define P_WAITFOR_FLAGS      "waitfor_flags"
+#define P_VISUALBELL         "visualbell"
+#define P_LOCALCMDS          "localcmds"
+#define P_CLOCKMSG           "clockmsg"
+#define P_TIMEZONE           "timezone"
+#define P_SHOWEMAIL          "showemail"
+
+#define P_LAST_LOGIN         "last_login"
+#define P_LAST_LOGOUT        "last_logout"
+#define P_DAILY_PLAYTIME     "daily_playtime"
+#define P_IGNORE             "ignore"
+#define P_SHOW_EXITS         "show_exits"
+#define P_WANTS_TO_LEARN     "wants_to_learn"
+#define P_AUTOLOADOBJ        "autoloadobj"
+#define P_AUTOLOAD           "autoload"
+#define P_MAILADDR           "mailaddr"
+#define P_HOMEPAGE           "homepage"
+#define P_ICQ                "icq"
+#define P_MESSENGER          "messenger"
+#define P_LOCATION           "location"
+
+#define P_FOLLOW_SILENT      "follow_silent"
+
+#ifndef P_INVIS
+#define P_INVIS              "invis"
+#endif
+
+#define P_SECOND             "second"
+#define P_SECOND_MARK        "second_mark"
+#define P_SECOND_LIST        "second_list"
+#define P_MUD_NEWBIE         "_lib_mud_newbie"  // not played a mud before?
+
+#define P_TESTPLAYER         "testplayer"
+#define P_ALLOWED_SHADOW     "allowed_shadow"
+
+#define P_START_HOME         "start_home"
+#define P_PRAY_ROOM          "_lib_p_prayroom"
+
+#define P_SHELL_VERSION      "shell_version"
+
+#define P_CMSG               "clonemsg"
+#define P_DMSG               "destmsg"
+#define P_CLONE_MSG          "clone_msg"
+#define P_DESTRUCT_MSG       "destruct_msg"
+
+#define P_CARRIED_VALUE      "carried"
+
+#define P_PROMPT             "prompt"
+
+#define P_SCREENSIZE         "screensize"
+#define P_MORE_FLAGS         "more_flags"
+
+#define P_NO_ASCII_ART       "no_ascii_art"
+
+#define P_LAST_QUIT          "last_quit"
+
+#define P_READ_NEWS          "read_news"
+
+#define P_NEEDED_QP          "needed_qp"
+
+//TODO: Remove - Property is not needed any more.
+#define P_TELNET_KEEP_ALIVE  "send_telnet_keep_alive"
+
+#endif // __PLAYER_BASE_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_BASE_H_PROTO__
+#define __PLAYER_BASE_H_PROTO__
+
+// prototypes
+
+void smart_log(string myname, string str);
+int QueryGuest();
+int invis(string inform);
+int vis(string inform);
+
+varargs static void stop_heart_beats(mixed obs);
+static void restart_heart_beats();
+
+nomask int query_hc_play();
+varargs nomask void set_hc_play(string str, int val);
+string SetDefaultHome(string str);
+protected string SetDefaultPrayRoom(string str);
+
+void save_me(mixed value_items);
+nomask mixed query_real_name();
+protected void call_notify_player_change(int rein);
+
+#endif // __PLAYER_BASE_H_PROTO__
+
+#endif// NEED_PROTOYPES
diff --git a/sys/player/can.h b/sys/player/can.h
new file mode 100644
index 0000000..dcce693
--- /dev/null
+++ b/sys/player/can.h
@@ -0,0 +1,34 @@
+// MorgenGrauen MUDlib
+//
+// player/can.h -- various abitlities
+//
+// $Id: can.h 7924 2011-09-26 10:02:26Z Zesstra $
+
+#ifndef __CAN_H__
+#define __CAN_H__
+
+// properties
+#define P_CAN_FLAGS          "can_flags"
+
+// bitmasks
+#define CAN_EMOTE  0x01
+#define CAN_ECHO   0x02
+#define CAN_REMOTE 0x04
+#define CAN_PRESAY 0x08
+#define CAN_REPORT_SP     0x10     // Statusupdates fuer KP
+#define CAN_REPORT_POISON 0x20     // Statusupdates fuer Gift
+#define CAN_REPORT_WIMPY  0x40     // Statusupdates fuer Vorsicht
+#define CAN_REPORT_WIMPY_DIR 0x80  // Statusupdates fuer Vorsichtrichtung
+
+#endif // __CAN_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __CAN_H_PROTO__
+#define __CAN_H_PROTO__
+
+// no prototypes
+
+#endif // __CAN_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/player/combat.h b/sys/player/combat.h
new file mode 100644
index 0000000..01ab2fa
--- /dev/null
+++ b/sys/player/combat.h
@@ -0,0 +1,16 @@
+// MorgenGrauen MUDlib
+//
+// player/combat.h -- prototypes for player specific issues of combat
+//
+// $Id: comm.h,v 3.3 2000/02/09 15:56:25 Padreic Exp $
+
+#ifndef __PLAYER_COMBAT_H__
+#define __PLAYER_COMBAT_H__
+
+public int QueryPlAttacked(object pl);
+
+public int RegisterHelperNPC(object npc, int flags);
+public int UnregisterHelperNPC(object npc);
+
+#endif // __PLAYER_COMBAT_H__
+
diff --git a/sys/player/comm.h b/sys/player/comm.h
new file mode 100644
index 0000000..803b319
--- /dev/null
+++ b/sys/player/comm.h
@@ -0,0 +1,85 @@
+// MorgenGrauen MUDlib
+//
+// player/comm.h -- communication module properties
+//
+// $Id: comm.h,v 3.3 2000/02/09 15:56:25 Padreic Exp $
+
+#ifndef __PLAYER_COMM_H__
+#define __PLAYER_COMM_H__
+
+// living/comm.h brauchen wir auch.
+#include <living/comm.h>
+
+// properties
+
+#define P_INTERMUD           "intermud" // Does she listen to it ?
+#define P_BUFFER             "buffer"   // ignore-, tell-buffer
+#define P_DEAF               "deaf"     // Taubheit
+#define P_PERM_STRING        "perm_string" // Fuer Sprachflueche
+#define P_MESSAGE_BEEP       "message_beep" // wenn gesetzt 
+                                            // Anzahl der Sekunden dazwischen
+#define P_MESSAGE_PREPEND  "message_prepend"
+// Will der Magier MT_DEBUG sehen?
+#define P_WIZ_DEBUG          "std_p_wizdebug"
+
+#define MESSAGE_BEEP "\007"
+
+// definitions for Message()
+
+#define MSGFLAG_CHANNEL 0x0001	// messages from channeld.c
+#define MSGFLAG_CHIST	0x0002
+#define MSGFLAG_SOUL	0x0004	// messages from soul.c
+#define MSGFLAG_REMOTE	0x0008	// remote emotes
+#define MSGFLAG_SHOUT	0x0010	// communication commands
+#define MSGFLAG_TELL	0x0020
+#define MSGFLAG_SAY	0x0040
+#define MSGFLAG_WHISPER 0x0080
+#define MSGFLAG_MECHO	0x0100
+#define MSGFLAG_RTELL	0x0200	// tell from other mud
+
+#define MAX_SAVED_MESSAGES  50
+#define MAX_SAVED_CHATS     20
+
+// Was geht in den Kobold?
+#define MSGFLAG_CACHE	(MSGFLAG_TELL | MSGFLAG_REMOTE | MSGFLAG_WHISPER | MSGFLAG_RTELL)
+
+#define MSGFLAG_DEAFCHK (MSGFLAG_SHOUT | MSGFLAG_TELL | MSGFLAG_SAY | MSGFLAG_WHISPER | MSGFLAG_CHANNEL | MSGFLAG_RTELL)
+
+// Rueckgabewerte von Message()
+#define MESSAGE_OK	     1	// alles klar
+#define MESSAGE_CACHE	     0	// Meldung steht im Kobold
+#define MESSAGE_IGNORE_YOU  -1	// Meldung/Sender wird ignoriert
+#define MESSAGE_IGNORE_VERB -2
+#define MESSAGE_IGNORE_MUD  -3
+#define MESSAGE_DEAF	    -4	// Empfaenger hoert nicht zu
+#define MESSAGE_CACHE_FULL  -5	// Kobold kann nichts mehr merken
+
+// Flags fuer Statusreports
+#define DO_REPORT_HP         0x1
+#define DO_REPORT_SP         0x2
+#define DO_REPORT_POISON     0x4
+#define DO_REPORT_WIMPY      0x8
+#define DO_REPORT_WIMPY_DIR  0x10
+
+#endif // __PLAYER_COMM_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_COMM_H_PROTO__
+#define __PLAYER_COMM_H_PROTO__
+
+// prototypes
+
+protected varargs int _recv(object ob, string message,
+                            int flag, string indent);
+
+varargs int Message(string msg, int flag, string indent,
+                    string cname, mixed sender);
+
+protected void status_report(int type, mixed val);
+protected void _notify(string msg, string action);
+
+#endif // __PLAYER_COMM_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/player/command.h b/sys/player/command.h
new file mode 100644
index 0000000..1a41b56
--- /dev/null
+++ b/sys/player/command.h
@@ -0,0 +1,39 @@
+// MorgenGrauen MUDlib
+//
+// player/command.h - Commands & Co
+//
+// $Id: attributes.h 6282 2007-05-09 20:55:17Z Zesstra $
+ 
+#ifndef __PLAYER_COMMAND_H__
+#define __PLAYER_COMMAND_H__
+
+// properties
+#define P_DISABLE_COMMANDS "p_lib_disablecommands"
+
+// Indizes fuers Array von commandblock
+#define B_OBJECT  0
+#define B_TIME    1
+#define B_VALUE   2
+#define B_EXCEPTIONS 3
+
+#endif // __PLAYER_COMMAND_H__
+
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_COMMAND_H_PROTO__
+#define __PLAYER_COMMAND_H_PROTO__
+
+// prototypes
+mixed modify_command(string str);
+int command_me(string cmd);
+varargs string _unparsed_args(int level);
+
+// Set- und Query-Methoden
+static mixed _set_p_lib_disablecommands(mixed data);
+static mixed _query_p_lib_disablecommands();
+
+#endif // __PLAYER_ATTRIBUTES_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/player/description.h b/sys/player/description.h
new file mode 100644
index 0000000..078e169
--- /dev/null
+++ b/sys/player/description.h
@@ -0,0 +1,34 @@
+// MorgenGrauen MUDlib
+//
+// player/description.h -- player description header
+//
+// $Id: description.h,v 3.6 2000/02/09 15:56:25 Padreic Exp $
+
+#include <living/description.h>
+ 
+#ifndef __PLAYER_DESCRIPTION_H__
+#define __PLAYER_DESCRIPTION_H__
+
+// properties
+
+#define P_PRESAY             "presay"
+#define P_TITLE              "title"
+#define P_AVERAGE_SIZE       "average_size"
+#define P_AVERAGE_WEIGHT     "average_weight"
+#define P_REFERENCE_OBJECT   "reference_object"
+
+#define P_DESCRIPTION        "description"
+
+#endif // __PLAYER_DESCRIPTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_DESCRIPTION_H_PROTO__
+#define __PLAYER_DESCRIPTION_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __PLAYER_DESCRIPTION_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/player/fao.h b/sys/player/fao.h
new file mode 100644
index 0000000..3c016a4
--- /dev/null
+++ b/sys/player/fao.h
@@ -0,0 +1,47 @@
+// MorgenGrauen MUDlib
+//
+
+#ifndef __PLAYER_FAO_H__
+#define __PLAYER_FAO_H__
+
+#define FAO_MASTER      "/d/ebene/miril/fraternitas/secure/faomaster" // die zentrale stelle des fao
+
+// die Liste der verfügbaren Portale fuer das erste portalgeschenk
+#define FAO_PORTALS1_LIST ({2,3,4,5,6,7,8,9,10,13,14,15,16,19,20,21,25,29,33})
+// die Liste der verfügbaren Portale fuer das zweite portalgeschenk
+#define FAO_PORTALS2_LIST FAO_PORTALS1_LIST+({1,11,12,17,18,24,26,27,28,31,34,36,37,38})
+// die anzahl der zu waehlenden portale fuer das erste portalgeschenk
+#define FAO_PORTALS1_NUM  5
+// die anzahl der zu waehlenden portale fuer das zweite portalgeschenk
+#define FAO_PORTALS2_NUM  5
+
+// properties
+#define P_FAO           "fraternitasdonoarchmagorum"  // enthaelt die doni
+#define P_FAO_PORTALS   P_FAO+"PORTALS" // enthaelt die dem spieler uebergebenen portale
+
+// bitmasks
+#define FAO_TITLE   0x01
+#define FAO_PORTALS1    0x02
+#define FAO_PORTALS2  0x04
+#define FAO_SEER_PORTAL 0x08
+#define FAO_MEMBER 0x10
+
+// hilfreiche makros
+#define FAO_HAS_TITLE_GIFT(x)   (x!=0 && query_once_interactive(x) \
+    && ((int)x->QueryProp(P_FAO)&FAO_TITLE)!=0)
+#define FAO_HAS_PORTALS1_GIFT(x)  (x!=0 && query_once_interactive(x) \
+    && ((int)x->QueryProp(P_FAO)&FAO_PORTALS1)!=0)
+#define FAO_HAS_PORTALS2_GIFT(x)  (x!=0 && query_once_interactive(x) \
+    && ((int)x->QueryProp(P_FAO)&FAO_PORTALS2)!=0)
+#define FAO_HAS_PORTALS_GIFT(x)   (FAO_HAS_PORTALS1_GIFT(x) || FAO_HAS_PORTALS2_GIFT(x))
+#define FAO_MAY_USE_PORTAL(x,p)   (intp(p) && ((FAO_HAS_PORTALS1_GIFT(x) && \
+        member(FAO_PORTALS1_LIST,p)!=-1 )||(FAO_HAS_PORTALS2_GIFT(x) && \
+        member(FAO_PORTALS2_LIST,p)!=-1) ) && \
+    (pointerp((int*)x->QueryProp(P_FAO_PORTALS)) \
+     && member((int*)x->QueryProp(P_FAO_PORTALS),p)!=-1) )
+#define FAO_HAS_SEER_PORTAL_GIFT(x)     (x!=0 && query_once_interactive(x) \
+    && ((int)x->QueryProp(P_FAO)&FAO_SEER_PORTAL)!=0)
+#define FAO_IS_MEMBER(x) (x!=0 && query_once_interactive(x) \
+    && ((int)x->QueryProp(P_FAO)&FAO_MEMBER)!=0)
+#endif // __PLAYER_FAO_H__
+
diff --git a/sys/player/filesys.h b/sys/player/filesys.h
new file mode 100644
index 0000000..d2fcadb
--- /dev/null
+++ b/sys/player/filesys.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// player/filesys.h -- file system services
+//
+// $Id: filesys.h,v 3.1 1997/02/12 13:29:09 Wargon Exp $
+ 
+#ifndef __PLAYER_FILESYS_H__
+#define __PLAYER_FILESYS_H__
+
+// properties
+
+#endif // __PLAYER_FILESYS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_FILESYS_H_PROTO__
+#define __PLAYER_FILESYS_H_PROTO__      
+
+// prototypes
+
+varargs string find_file(string str, string suffix);
+
+#endif // __PLAYER_FILESYS_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/player/gmcp.h b/sys/player/gmcp.h
new file mode 100644
index 0000000..45e37ce
--- /dev/null
+++ b/sys/player/gmcp.h
@@ -0,0 +1,26 @@
+// MorgenGrauen MUDlib
+//
+// player/gmcp.h -- Stuff for GMCP handling
+//
+// $Id$
+
+#ifndef __GMCP_H__
+#define __GMCP_H__
+
+// properties
+
+#endif // __GMCP_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __GMCP_H_PROTO__
+#define __GMCP_H_PROTO__
+
+// prototypes
+/*protected*/ int GMCP_Char(mapping data);
+/*protected*/ int GMCP_Channel(string msg, string channel, string sender);
+
+#endif // __GMCP_H_PROTO__
+
+#endif  // NEED_PROTOYPES
+
diff --git a/sys/player/life.h b/sys/player/life.h
new file mode 100644
index 0000000..9ca9877
--- /dev/null
+++ b/sys/player/life.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// player/life.h -- player life  header
+//
+// $Id: description.h,v 3.6 2000/02/09 15:56:25 Padreic Exp $
+ 
+#ifndef __PLAYER_LIFE_H__
+#define __PLAYER_LIFE_H__
+
+// properties
+
+#endif // __PLAYER_LIFE_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_LIFE_H_PROTO__
+#define __PLAYER_LIFE_H_PROTO__
+
+// prototypes
+public    void    force_save();
+protected int     death_suffering();
+
+#endif // __PLAYER_LIFE_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/player/moneyhandler.h b/sys/player/moneyhandler.h
new file mode 100644
index 0000000..2942b62
--- /dev/null
+++ b/sys/player/moneyhandler.h
@@ -0,0 +1,12 @@
+// MorgenGrauen MUDlib
+//
+// player/moneyhandler.h -- Wrapper fuer /sys/container/moneyhandler.h
+// Existiert aus Gruenden der Abwaertskompatibilitaet.
+//
+// $Id: moneyhandler.h 8396 2013-02-18 21:56:37Z Zesstra $
+
+#ifndef __PLAYER_MONEYHANDLER_H__
+#define __PLAYER_MONEYHANDLER_H__
+#include <container/moneyhandler.h>
+#endif
+
diff --git a/sys/player/moving.h b/sys/player/moving.h
new file mode 100644
index 0000000..442ab59
--- /dev/null
+++ b/sys/player/moving.h
@@ -0,0 +1,29 @@
+// MorgenGrauen MUDlib
+//
+// player/moving.h -- player moving header
+//
+// $Id: moving.h,v 3.2 2000/02/09 15:56:25 Padreic Exp $
+ 
+#ifndef __PLAYER_MOVING_H__
+#define __PLAYER_MOVING_H__
+
+// properties
+
+#define P_MSGIN              "msgin"
+#define P_MSGOUT             "msgout"
+#define P_MMSGIN             "mmsgin"
+#define P_MMSGOUT            "mmsgout"
+
+#endif // __PLAYER_MOVING_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_MOVING_H_PROTO__   
+#define __PLAYER_MOVING_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __PLAYER_MOVING_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/player/pklog.h b/sys/player/pklog.h
new file mode 100644
index 0000000..5f5acba
--- /dev/null
+++ b/sys/player/pklog.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// player/pklog.h -- module for logging player vs player attacks
+//
+// $Id: comm.h,v 3.3 2000/02/09 15:56:25 Padreic Exp $
+
+#ifndef __PLAYER_PKLOG_H__
+#define __PLAYER_PKLOG_H__
+
+nomask int CheckArenaFight(object victim);
+nomask protected int CheckPlayerAttack(object attacker, object victim, 
+                                       string angriffsmsg);
+
+#endif // __PLAYER_PKLOG_H__
+
diff --git a/sys/player/potion.h b/sys/player/potion.h
new file mode 100644
index 0000000..08b81b1
--- /dev/null
+++ b/sys/player/potion.h
@@ -0,0 +1,34 @@
+// MorgenGrauen MUDlib
+//
+// player/potion.h -- potion services
+//
+// $Id: potion.h 9117 2015-01-25 11:25:14Z Zesstra $
+
+#ifndef __PLAYER_POTION_H__
+#define __PLAYER_POTION_H__
+
+// properties
+
+#define P_POTIONROOMS         "potionrooms"
+#define P_KNOWN_POTIONROOMS   "known_potionrooms"
+#define P_TRANK_FINDEN        "trank_finden"
+
+// veraltete Props, lang unbenutzt.
+#define P_VISITED_POTIONROOMS "visited_potionrooms"
+#define P_BONUS_POTIONS       "bonus_potions"
+
+#endif // __PLAYER_POTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_POTION_H_PROTO__
+#define __PLAYER_POTION_H_PROTO__ 
+
+// prototypes
+
+varargs int FindPotion(string s);
+
+#endif // __PLAYER_POTION_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/player/quest.h b/sys/player/quest.h
new file mode 100644
index 0000000..a870fc7
--- /dev/null
+++ b/sys/player/quest.h
@@ -0,0 +1,29 @@
+// MorgenGrauen MUDlib
+//
+// player/quests.h -- player quest handling
+//
+// $Id: quest.h,v 3.2 2000/02/09 15:56:25 Padreic Exp $
+ 
+#ifndef __PLAYER_QUESTS_H__
+#define __PLAYER_QUESTS_H__
+
+// properties
+
+#define P_QUESTS             "quests"
+#define P_QP                 "questpoints"
+
+#endif // __PLAYER_QUESTS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_QUESTS_H_PROTO__
+#define __PLAYER_QUESTS_H_PROTO__ 
+
+// prototypes
+
+varargs int GiveQuest(string questname, string message);
+int QueryQuest(string questname);
+
+#endif // __PLAYER_QUESTS_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/player/skills.h b/sys/player/skills.h
new file mode 100644
index 0000000..2843cad
--- /dev/null
+++ b/sys/player/skills.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// skills.h -- Prototypen fuer Skillfunktion aus Spielern.
+//
+// $Id: skills.h 6559 2007-10-20 13:00:20Z Zesstra $
+
+#ifndef __PLAYER_SKILLS_H__
+#define __PLAYER_SKILLS_H__
+
+// properties
+
+#endif // __PLAYER_SKILLS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_SKILLS_H_PROTO__
+#define __PLAYER_SKILLS_H_PROTO__
+                                 
+// prototypes
+protected void  set_weapon_skills();
+protected void  FixSkills();
+protected void  InitSkills();
+
+#endif // __PLAYER_SKILLS_H_PROTO__
+#endif // NEED_PROTOYPES
diff --git a/sys/player/telnetneg.h b/sys/player/telnetneg.h
new file mode 100644
index 0000000..415ed90
--- /dev/null
+++ b/sys/player/telnetneg.h
@@ -0,0 +1,19 @@
+// MorgenGrauen MUDlib
+//
+// telnetneg.h -- Definitionen und Prototypes fuer Telnet-Negotiations
+//
+// $Id: telnetneg.h 8348 2013-02-03 22:14:39Z Zesstra $
+
+#include "/secure/telnetneg.h"
+
+#ifndef _TELNETNEG_H_
+#define _TELNETNEG_H_
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef _TELNETNEG_H_PROTOS_
+#define _TELNETNEG_H_PROTOS_
+
+#endif
+#endif
diff --git a/sys/player/user_filter.h b/sys/player/user_filter.h
new file mode 100644
index 0000000..99e8036
--- /dev/null
+++ b/sys/player/user_filter.h
@@ -0,0 +1,27 @@
+// MorgenGrauen MUDlib
+//
+// player/user_filter.h -- user_filtermodule prototypes/properties
+//
+// $Id: comm.h,v 3.3 2000/02/09 15:56:25 Padreic Exp $
+
+#ifndef __PLAYER_USER_FILTER_H__
+#define __PLAYER_USER_FILTER_H__
+
+// properties
+
+#endif // __PLAYER_USER_FILTER_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_USER_FILTER_H_PROTO__
+#define __PLAYER_USER_FILTER_H_PROTO__
+
+// prototypes
+
+protected int is_active_guide(object ob);
+object *filter_users(string str);
+
+#endif // __PLAYER_USER_FILTER_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
diff --git a/sys/player/util.h b/sys/player/util.h
new file mode 100644
index 0000000..537dc5f
--- /dev/null
+++ b/sys/player/util.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// sys/player/util.h -- Headerfile fuer /std/player/util.c
+//
+// $Id: util.h,v 1.1 2004/04/09 21:02:41 Vanion Exp $
+
+#ifndef __THING_UTIL_H__
+#define __THING_UTIL_H__
+
+#endif // __THING_UTIL_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_UTIL_H_PROTO__
+#define __THING_UTIL_H_PROTO__
+
+public void ShowPropList(string *props);
+static void PrettyDump(mixed x);
+static void DumpArray(mixed *x);
+static void DumpMapping(mapping x);
+static void DumpKeyValPair(mapping x, mixed key, int size);
+
+#endif // __THING_UTIL_H_PROTO__
+
+#endif // NEED_PROTOTYPES
\ No newline at end of file
diff --git a/sys/player/viewcmd.h b/sys/player/viewcmd.h
new file mode 100644
index 0000000..182ccf6
--- /dev/null
+++ b/sys/player/viewcmd.h
@@ -0,0 +1,27 @@
+// MorgenGrauen MUDlib
+//
+// player/viewcmd.h -- view command handling
+//
+// $Id: viewcmd.h 6408 2007-08-07 23:02:18Z Zesstra $
+
+#ifndef __PLAYER_VIEWCMD_H__
+#define __PLAYER_VIEWCMD_H__
+
+// properties
+
+#define P_BLIND              "blind"
+#define P_BRIEF              "brief"
+
+#endif // __PLAYER_VIEWCMD_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __PLAYER_VIEWCMD_H_PROTO__     
+#define __PLAYER_VIEWCMD_H_PROTO__
+
+// prototypes
+varargs string env_descr(int allow_short,int flags, int force_short );
+
+#endif // __PLAYER_VIEWCMD_H_PROTO__
+
+#endif // NEED_PROTOYPES
diff --git a/sys/properties.h b/sys/properties.h
new file mode 100644
index 0000000..c8bec39
--- /dev/null
+++ b/sys/properties.h
@@ -0,0 +1,50 @@
+// MorgenGrauen MUDlib
+//
+// properties.h -- properties header file
+//
+// $Id: properties.h 7169 2009-03-08 18:09:53Z Zesstra $
+ 
+#ifndef __PROPERTIES_H__
+#define __PROPERTIES_H__
+
+#ifdef NEED_PROTOTYPES
+#undef NEED_PROTOTYPES		// we need only the properties here!!
+#define TMP_NEED_PROTOTYPES
+#endif
+
+#include <snooping.h>
+#include <thing.h>
+#include <clothing.h>
+#include <armour.h>
+#include <container.h>
+#include <living.h>
+#include <npc.h>
+#include <player.h>
+#include <rooms.h>
+#include <shells.h>
+#include <weapon.h>
+#include <transport.h>
+#include <lightsource.h>
+#include <quest_items.h>
+#include <moving.h>
+
+#ifdef TMP_NEED_PROTOTYPES
+#undef TMP_NEED_PROTOTYPES
+#define NEED_PROTOTYPES
+#endif
+
+#define P_ORIG_NAME      "original_name"
+#define P_ORIG_FILE_NAME "original_file_name"
+
+#define P_CAP_NAME "cap_name"
+#define P_EARMUFFS "earmuffs"
+#define P_VALUE_PER_UNIT "value_per_unit"
+#define P_WEIGHT_PER_UNIT "weight_per_unit"
+#define P_FW_UNDERSTAND "fw_understand" /* kann die sprache aus fernwest */
+#define P_TRAY "tray" /* man kann was auf uns drauflegen */
+#define P_AMOUNT "amount"
+#define P_HP_HOOKS "hp_hooks"
+
+#define P_INFORMME "informme"
+
+#endif // __PROPERTIES_H__
diff --git a/sys/pub.h b/sys/pub.h
new file mode 100644
index 0000000..09fe9db
--- /dev/null
+++ b/sys/pub.h
@@ -0,0 +1,80 @@
+// MorgenGrauen MUDlib
+//
+// pub.h -- Headerfile for pubs and pubmaster
+//
+// $Id: pub.h 4494 2006-09-23 10:14:36Z root $
+
+#ifndef _PUB_H_
+#define _PUB_H_
+
+/* Der Pubmaster */
+#define PUBMASTER "/secure/pubmaster"
+
+/* Werte fuer die Kneipenformel:
+
+  Alc*Alcdelay+Drink*Drinkdelay+Food*Fooddelay         Value
+( --------------------------------------------  +  -------------
+          Alcdelay+Drinkdelay+Fooddelay            VALUEDIV+Rate
+
+         Rate                                    Delay
+   exp(--------)                           exp(--------)
+       RATEDIV1                                WAITDIV1
+-  ------------- ) * Factor * ( WAITOFFS + --------------- )
+     RATEDIV2                                 WAITDIV2
+
+*/
+
+#define PUB_SOAKMULT 18.0
+#define PUB_VALUEDIV 10.0
+#define PUB_RATEDIV1  3.5
+#define PUB_RATEDIV2  2.5
+#define PUB_WAITOFFS  0.9
+#define PUB_WAITDIV1 10.0
+#define PUB_WAITDIV2  7.5
+#define PUB_MAXDELAY 15.0
+
+/* Properties */
+
+// NPCs tanken hier auf die "schnelle" Art
+#define P_NPC_FASTHEAL    "npc_fastheal"
+
+// Keine Standard-Getraenke
+#define P_NO_STD_DRINK    "no_std_drink"
+
+// Meldung, wenn etwas nicht mehr vorhanden ist
+#define P_PUB_UNAVAILABLE "pub_unavailable"
+
+// Meldung, wenn etwas nicht im Menue steht
+#define P_PUB_NOT_ON_MENU "pub_not_on_menu"
+
+// Meldung, wenn Spieler nicht genug Geld hat
+#define P_PUB_NO_MONEY    "pub_no_money"
+
+// Meldung, wenn der Barkeeper nicht anwesend ist
+#define P_PUB_NO_KEEPER   "pub_no_keeper"
+
+/* Sonstige Defines */
+
+// Indices fuer das Menue-Mapping
+#define PM_TEXT      0
+#define PM_INFO      1
+#define PM_RATE      2
+#define PM_SERVE_MSG 3
+#define PM_REFRESH   4
+#define PM_DELAY     5
+#define PM_DELAY_MSG 6
+#define PM_IDS       7
+
+// Keys fuer den Refresh-Parameter
+#define PR_ALL       "All"
+#define PR_USER      "User"
+
+// Default-Defines fuer den Availability-Check
+#define PR_DEFAULT   "DEF"
+#define PR_NONE      "N/A"
+
+// Indices fuer den Refresh-Parameter
+#define PRV_AMOUNT   0
+#define PRV_REFRESH  1
+
+#endif // _PUB_H_
diff --git a/sys/quest_items.h b/sys/quest_items.h
new file mode 100644
index 0000000..76d96cf
--- /dev/null
+++ b/sys/quest_items.h
@@ -0,0 +1,18 @@
+/*
+ * QUEST_ITEMS.H -- identifies quest items
+ *
+ * $Log: quest_items.h,v $
+ * Revision 1.1  2003/12/30 12:41:14  Vanion
+ * Initial revision
+ *
+ * Revision 1.0  1997/01/20 15:33:47  mud
+ * Initial revision
+ *
+ */
+
+#ifndef ___QUEST_ITEMS_H__
+#define ___QUEST_ITEMS_H__
+
+#define P_QUEST_ITEM	"quest_item"
+
+#endif // __QUEST_ITEMS_H__
diff --git a/sys/ranged_weapon.h b/sys/ranged_weapon.h
new file mode 100644
index 0000000..50bcd9b
--- /dev/null
+++ b/sys/ranged_weapon.h
@@ -0,0 +1,26 @@
+// MorgenGrauen MUDlib
+//
+// ranged_weapon.h -- Headerfile fuer Fernkampfwaffen
+//
+// $Id: ranged_weapon.h 9016 2015-01-10 18:29:26Z Zesstra $
+
+#ifndef __RANGED_WEAPON_H__
+#define __RANGED_WEAPON_H__
+
+// Properties
+
+#endif // __RANGED_WEAPON_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __RANGED_WEAPON_H_PROTO__
+#define __RANGED_WEAPON_H_PROTO__
+
+// Prototypes
+static int shoot_dam(mapping shoot);
+static string FindRangedTarget(string str, mapping shoot);
+static int cmd_shoot(string str);
+
+#endif // __RANGED_WEAPON_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/regexp.h b/sys/regexp.h
new file mode 100644
index 0000000..7c0f10c
--- /dev/null
+++ b/sys/regexp.h
@@ -0,0 +1,42 @@
+#ifndef LPC_REGEXP_H_
+#define LPC_REGEXP_H_ 1
+
+/* Definitions of regexp option values */
+
+/* Not really an RE option, but used in conjunction with some RE functions: */
+
+#define RE_GLOBAL          0x0001  /* Apply RE globally (if possible) */
+
+/* Options supported by the old regexp package: */
+
+#define RE_EXCOMPATIBLE    0x0002  /* RE is compatible with ex */
+
+/* Options supported by the PCRE regexp package: */
+
+#define RE_CASELESS        0x0004
+#define RE_MULTILINE       0x0008
+#define RE_DOTALL          0x0010
+#define RE_EXTENDED        0x0020
+#define RE_ANCHORED        0x0040
+#define RE_DOLLAR_ENDONLY  0x0080
+#define RE_NOTBOL          0x0100
+#define RE_NOTEOL          0x0200
+#define RE_UNGREEDY        0x0400
+#define RE_NOTEMPTY        0x0800
+
+/* Options specific for regmatch(): */
+
+#define RE_MATCH_SUBS      0x1000  /* Return matched subexpressions */
+
+/* Options specific for regexplode(): */
+
+#define RE_OMIT_DELIM      0x1000  /* Omit the delimiters */
+
+/* Regexp package selection options: */
+
+#define RE_TRADITIONAL     0x04000000
+#define RE_PCRE            0x02000000
+
+#define RE_PACKAGE_MASK    (RE_TRADITIONAL | RE_PCRE)
+
+#endif /* LPC_REGEXP_H_ */
diff --git a/sys/reputation.h b/sys/reputation.h
new file mode 100644
index 0000000..c46b2d8
--- /dev/null
+++ b/sys/reputation.h
@@ -0,0 +1,32 @@
+#ifndef _REPUTATION_H_
+#define _REPUTATION_H_
+
+#define REPMASTER        "/secure/repmaster"
+#define REP_SAVEFILE     "/secure/ARCH/repmaster"
+
+// Grenzwerte
+#define REP_MAXIMUM      10000
+#define REP_MINIMUM     -10000
+
+// Zwischenstufen
+#define REP_TRUSTED      7500
+#define REP_LIKED        5000
+#define REP_FAMILIAR     2500
+#define REP_NEUTRAL      0
+#define REP_UNFAMILIAR  -2500
+#define REP_DISLIKED    -5000
+#define REP_DISTRUSTED  -7500
+
+// Returncodes
+#define REP_RET_WRONGARGS  -1 // Falsche Argumente fuer ChangeRep()
+#define REP_RET_INVALIDUID -2 // Unzulaessige UID
+#define REP_RET_ALREADYMAX -3 // Reputation bereits Max / Min
+#define REP_RET_INACTIVE   -4 // Reputation auf inaktiv gesetzt
+#define REP_RET_INVALIDREP -5 // Reputation nicht vorhanden
+#define REP_RET_SUCCESS     1 // Reputation wurde veraendert
+#define REP_RET_SUCCESSCUT  2 // Reputation wurde auf Min / Max veraendert
+
+// Flags fuer die Eintraege im Master
+#define REP_FLAG_ACTIVE     1
+
+#endif
diff --git a/sys/room/description.h b/sys/room/description.h
new file mode 100644
index 0000000..c571341
--- /dev/null
+++ b/sys/room/description.h
@@ -0,0 +1,51 @@
+// MorgenGrauen MUDlib
+//
+// room/description.h -- standard room header
+//
+// $Id: description.h 9190 2015-04-02 14:29:36Z Arathorn $
+ 
+#ifndef __ROOM_DESCRIPTION_H__
+#define __ROOM_DESCRIPTION_H__
+
+// properties
+
+#define P_INT_SHORT          "int_short"
+#define P_INT_LONG           "int_long"
+
+#define P_ROOM_MSG           "room_msg"
+#define P_FUNC_MSG           "func_msg"
+#define P_MSG_PROB           "msg_prob"
+
+#define P_HAUS_ERLAUBT       "haus_erlaubt"
+
+#define P_NO_TPORT           "tport"
+#define P_TPORT_COST_IN      "tport_cost_in"
+#define P_TPORT_COST_OUT     "tport_cost_out"
+#define P_INDOORS            "indoors"
+
+#define P_NEVER_CLEAN        " never clean "
+#define P_ROOM_TYPE          "room_type"
+#define P_NO_PLAYERS         "no_players"
+
+#define P_NO_PARA_TRANS      "no_para_trans"
+#define P_KEEPER             "shop_keeper"    // Eigentuemer von Pub oder Shop
+#define P_BUY_ONLY_PLANTS    "lib_p_buy_only_plants"
+#define P_ORAKEL             "orakel"
+
+#define P_LIGHT_ABSORPTION   "light_absorption" // Licht das der Raum schluckt
+
+#define P_DOMAIN             "lib_p_domain"   // Domain, in der der Raum ist.
+
+#endif // __ROOM_DESCRIPTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __ROOM_DESCRIPTION_H_PROTO__
+#define __ROOM_DESCRIPTION_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __ROOM_DESCRIPTION_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/room/exits.h b/sys/room/exits.h
new file mode 100644
index 0000000..d3f0896
--- /dev/null
+++ b/sys/room/exits.h
@@ -0,0 +1,42 @@
+// MorgenGrauen MUDlib
+//
+// room/exits.h -- exit specific defines
+//
+// $Id: exits.h 9477 2016-02-19 21:17:51Z Zesstra $
+
+#ifndef __ROOM_EXITS_H__
+#define __ROOM_EXITS_H__
+
+// Properties
+
+#define P_EXITS              "exits"
+#define P_SPECIAL_EXITS      "special_exits"
+#define P_HIDE_EXITS         "hide_exits"
+
+#define P_BLOCK_MSG          "block_msg"
+
+#endif // __ROOM_EXITS_H__
+
+// Prototypes
+#ifdef NEED_PROTOTYPES
+
+#ifndef __ROOM_EXITS_H_PROTO__
+#define __ROOM_EXITS_H_PROTO__
+
+static mapping _set_exits(mapping map_ldfied) ;
+static mapping _query_exits();
+static int _set_special_exits(mapping map_ldfied);
+static mapping _query_special_exits();
+static string _MakePath(string str);
+void AddExit(string|string* cmd, closure|string dest);
+protected void _AddExit(string|string* cmd, string|closure room,
+                        string message);
+void RemoveExit(string|string* cmd);
+void AddSpecialExit(string|string* cmd, string|closure functionname);
+void RemoveSpecialExit(string|string* cmd);
+varargs string GetExits( object viewer );
+int _normalfunction();
+
+#endif // __ROOM_EXITS_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/rooms.h b/sys/rooms.h
new file mode 100644
index 0000000..2951036
--- /dev/null
+++ b/sys/rooms.h
@@ -0,0 +1,63 @@
+// MorgenGrauen MUDlib
+//
+// rooms.h -- standard room header
+//
+// $Id: rooms.h 8425 2013-02-23 18:49:09Z Zesstra $
+
+#ifndef __ROOM_H__
+#define __ROOM_H__
+
+#include <room/description.h>
+#include <room/exits.h>
+#include <doorroom.h>
+
+// properties
+// Flags fuer Einschraenkung der Daten fuer Mappingzwecke an den Client
+#define P_MAP_RESTRICTIONS  "lib_p_map_restrictions"
+
+// raise error message
+#define AddDoor(a,b,c,d,e,f) raise_error("Use NewDoor instead of AddDoor!\n")
+#define AddDoor2(a,b,c,d,e,f,g) raise_error("Use NewDoor instead of AddDoor2!\n")
+#define AddRoomCmd(a,b) raise_error("Use AddCmd instead of AddRoomCmd!\n")
+#define RemoveRoomCmd(a,b) raise_error("Use RemoveCmd instead of RemoveRoomCmd!\n")
+// defines
+
+/* entries in item array */
+#define RITEM_OBJECT  0
+#define RITEM_FILE    1
+#define RITEM_REFRESH 2
+#define RITEM_PROPS   3
+
+/* refresh for extra items */
+#define REFRESH_NONE      0
+#define REFRESH_DESTRUCT  1
+#define REFRESH_REMOVE    2
+#define REFRESH_ALWAYS    3
+#define REFRESH_MOVE_HOME 4
+
+/* values for teleport forbid property */
+#define TPORT_IN   1
+#define TPORT_OUT  2
+#define TPORT_BOTH (TPORT_IN | TPORT_OUT)
+
+/* values for different roomtypes */
+#define RT_SHOP    1
+#define RT_PUB     2
+
+// Werte fuer P_MAP_RESTRICTIONS
+#define MR_NOUID  0x1
+#define MR_NOINFO 0x2
+
+#endif // __ROOM_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __ROOM_H_PROTO__
+#define __ROOM_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __ROOM_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/routingd.h b/sys/routingd.h
new file mode 100644
index 0000000..3730679
--- /dev/null
+++ b/sys/routingd.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// routingd.h -- Definitionen fuer den RoutingDaemon
+//
+// $Id: routingd.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+#ifndef _ROUTINGD_H_
+#define _ROUTINGD_H_
+
+#define ROUTER "/p/daemon/routingd"
+
+#define TARGET_PUB "##pub"
+#define TARGET_SHOP "##shop"
+
+#endif
diff --git a/sys/rtlimits.h b/sys/rtlimits.h
new file mode 100644
index 0000000..a136aa2
--- /dev/null
+++ b/sys/rtlimits.h
@@ -0,0 +1,39 @@
+#ifndef LPC_RTLIMITS_H_
+#define LPC_RTLIMITS_H_
+
+/* Runtime limit index/tag values */
+
+#define LIMIT_EVAL           (0)
+#define LIMIT_ARRAY          (1)
+#define LIMIT_MAPPING        (2)
+#define LIMIT_MAPPING_KEYS   LIMIT_MAPPING
+#define LIMIT_MAPPING_SIZE   (3)
+#define LIMIT_BYTE           (4)
+#define LIMIT_FILE           (5)
+#define LIMIT_CALLOUTS       (6)
+#define LIMIT_COST           (7)
+#define LIMIT_MEMORY         (8)
+
+#define LIMIT_MAX      (9)  /* Number of recognized limits */
+
+/* Special limit values */
+
+#define LIMIT_UNLIMITED    0   /* No limit */
+#define LIMIT_KEEP       (-1)  /* Keep the old limit setting */
+#define LIMIT_DEFAULT    (-2)  /* Use the default setting */
+
+/* memory limits */
+#define MALLOC_SOFT_LIMIT    1
+#define MALLOC_HARD_LIMIT    2
+
+/* low memory conditions */
+#define NO_MALLOC_LIMIT_EXCEEDED     0
+#define SOFT_MALLOC_LIMIT_EXCEEDED   MALLOC_SOFT_LIMIT
+#define HARD_MALLOC_LIMIT_EXCEEDED   MALLOC_HARD_LIMIT
+
+/* Flags for available reserves */
+#define USER_RESERVE_AVAILABLE     0x1
+#define MASTER_RESERVE_AVAILABLE   0x2
+#define SYSTEM_RESERVE_AVAILABLE   0x4
+
+#endif /* LPC_RTLIMITS_H_ */
diff --git a/sys/seil.h b/sys/seil.h
new file mode 100644
index 0000000..3d59830
--- /dev/null
+++ b/sys/seil.h
@@ -0,0 +1,8 @@
+#define P_TIED "tied"		// wird im gebundenn object gesetzt und behinaltet ein mapping
+#define P_TIE_USER "tie_user"	// hier steht der user drin, der die letzte 
+				// aktion mit dem seil gemacht hat
+				// Prop kann in tie() ausgelesen werden.
+#define P_TIE_VERB "tie_verb"	// wird fuer automatisches binden/loesen benoetigt.
+#define P_TIE_MESSAGE "tie_message" // Ausgabe beim festbinden des seiles aus einem object/raum heraus
+#define P_UNTIE_MESSAGE "untie_message" // MSG zum loesen des Seiles
+#define P_TIE_AUTO	"tie_auto" 
diff --git a/sys/sensitive.h b/sys/sensitive.h
new file mode 100644
index 0000000..fc51dc6
--- /dev/null
+++ b/sys/sensitive.h
@@ -0,0 +1,44 @@
+// MorgenGrauen MUDlib
+//
+// sensitive.h -- Definitionen fuer sensitive Objekte.
+//                Siehe auch /std/container/inventory.c und
+//                /std/living/inventory.c
+//
+// $Id: sensitive.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+#ifndef __SENSITIVE_H__
+#define __SENSITIVE_H__
+
+#define P_SENSITIVE_INVENTORY "sensitive_inv"
+#define P_SENSITIVE_INVENTORY_TRIGGER "sensitive_inv_trigger"
+#define P_SENSITIVE_ATTACK "sensitive_attack"
+
+#define SENSITIVE_INVENTORY "inv"
+#define SENSITIVE_INVENTORY_TRIGGER "inv_trigger"
+#define SENSITIVE_ATTACK "attack"
+
+#define SENS_OBJECT 0
+#define SENS_CLOSURE 1
+#define SENS_KEY 2
+#define SENS_THRESHOLD 3
+#define SENS_OPT 4
+
+#define SENS_PROP_PREFIX "sensitive_"
+#define SENS_INSERT_PREFIX "insert_sensitive_"
+#define SENS_TRIGGER_PREFIX "trigger_sensitive_"
+
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __SENSITIVE_H_PROTO__
+#define __SENSITIVE_H_PROTO__
+
+void RemoveSensitiveObjectFromList(object ob, string list);
+void RemoveSensitiveObject(object ob);
+varargs void InsertSensitiveObjectToList(object ob, string list, string key,
+					 int threshold, mixed *opt);
+void InsertSensitiveObject(object ob, mixed arg);
+void CheckSensitiveAttack(int dam, mixed dam_type, mixed spell, object enemy);
+
+#endif
+#endif
diff --git a/sys/sent.h b/sys/sent.h
new file mode 100644
index 0000000..179bef2
--- /dev/null
+++ b/sys/sent.h
@@ -0,0 +1,10 @@
+#ifndef LPC_SENT_H_
+#define LPC_SENT_H_
+
+#define SENT_PLAIN	0
+#define SENT_SHORT_VERB	1
+#define SENT_NO_SPACE	2
+#define SENT_NO_VERB	3
+#define SENT_MARKER	4
+
+#endif
diff --git a/sys/shells.h b/sys/shells.h
new file mode 100644
index 0000000..b792cca
--- /dev/null
+++ b/sys/shells.h
@@ -0,0 +1,27 @@
+// MorgenGrauen MUDlib
+//
+// shells.h -- shell header
+//
+// $Id: shells.h 9555 2016-05-03 20:42:46Z Zesstra $
+
+#ifndef __SHELLS_H__
+#define __SHELLS_H__
+
+// properties
+
+#define P_CURRENTDIR "currentdir"
+#define P_LASTDIR "p_lib_lastdir"
+
+#endif // __SHELLS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __SHELLS_H_PROTO__
+#define __SHELLS_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __SHELLS_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/signals.h b/sys/signals.h
new file mode 100644
index 0000000..be4412e
--- /dev/null
+++ b/sys/signals.h
@@ -0,0 +1,23 @@
+#ifndef LPC_SIGNALS_H_
+#define LPC_SIGNALS_H_ 1
+
+// Our defines for some POSIX signals the driver defers to the mudlib.
+// This abstraction is intentional.
+#define LPC_SIGHUP    1
+#define LPC_SIGINT    2
+#define LPC_SIGTERM   15
+#define LPC_SIGUSR1   16
+#define LPC_SIGUSR2   17
+
+// __STD__ is defined during the driver compilation (the driver includes this
+// file as well) but not in LPC programs. In LPC we may safely define the
+// signals name without the LPC_ prefix.
+#if !defined(__STDC__)
+#define SIGHUP       LPC_SIGHUP
+#define SIGINT       LPC_SIGINT
+#define SIGTERM      LPC_SIGTERM
+#define SIGUSR1      LPC_SIGUSR1
+#define SIGUSR2      LPC_SIGUSR2
+#endif // __STD__
+
+#endif /* LPC_SIGNALS_H_ */
diff --git a/sys/snooping.h b/sys/snooping.h
new file mode 100644
index 0000000..45edcf6
--- /dev/null
+++ b/sys/snooping.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// snooping.h -- Definitionen rund ums Snoopen
+//
+// $Id: snooping.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+#ifndef _SNOOPING_H_
+#define _SNOOPING_H_
+
+#define SF_LOCKED        1
+#define SF_FORCE         2
+
+#define P_SNOOPFLAGS     "snoopflags"
+
+#endif
diff --git a/sys/spellbook.h b/sys/spellbook.h
new file mode 100644
index 0000000..876301e
--- /dev/null
+++ b/sys/spellbook.h
@@ -0,0 +1,56 @@
+// MorgenGrauen MUDlib
+//
+// spellbook.h -- Funktions-Prototypen fuer das /std/spellbook.h
+//
+// $Id: spellbook.h 8822 2014-05-17 09:49:49Z Zesstra $
+
+#ifndef __SPELLBOOK_H__
+#define __SPELLBOOK_H__
+
+// no defines
+
+#endif // __SPELLBOOK_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __SPELLBOOK_H_PROTO__
+#define __SPELLBOOK_H_PROTO__
+
+varargs int      AddSpell(string verb, int kosten, mixed ski);
+        int      CanTrySpell(object caster, mapping sinfo);
+        int      SpellSuccess(object caster, mapping sinfo);
+        int      TryAttackSpell(object victim, int damage, mixed dtypes,
+                                mixed is_spell, object caster,
+                                mapping sinfo);
+varargs int      TryDefaultAttackSpell(object victim, object caster,
+                                       mapping sinfo, mixed str);
+varargs int      TryGlobalAttackSpell(object caster, mapping sinfo, int suc,
+                                      int damage, mixed dt, mixed is_spell,
+                                      int dist, int depth, int width);
+varargs int      UseSpell(object caster, string spell, mapping sinfo);
+        mapping  QuerySpell(string spell);
+varargs mixed    FindDistantGroups(object pl, int dist, int dy, int dx);
+varargs object   FindDistantEnemyVictim(string wen, object pl, string msg,
+                                        int dist, int dy);
+varargs object  *FindDistantGroup(object pl, int who, int dist, int dy,
+                                  int dx);
+varargs object   FindEnemyVictim(string wen, object pl, string msg);
+varargs object   FindFarEnemyVictim(string wen, object pl, string msg,
+                                    int min, int max);
+        object  *FindGroup(object pl, int who);
+        object  *FindGroupN(object pl, int who, int n);
+        object  *FindGroupP(object pl, int who, int pr);
+varargs object   FindLivingVictim(string wen, object pl, string msg);
+varargs object   FindNearEnemyVictim(string wen, object pl, string msg);
+static
+varargs object   find_victim(string wen, object pl);
+varargs object   FindVictim(string wen, object pl, string msg);
+        string   SelectSpell(string spell, mapping sinfo);
+        void     Erfolg(object caster, string spell, mapping sinfo);
+        void     Learn(object caster, string spell, mapping sinfo);
+        void     Misserfolg(object caster, string spell, mapping sinfo);
+varargs void     prepare_spell(object caster, string spell, mapping sinfo);
+
+#endif // __SPELLBOOK_H_PROTO__
+
+#endif // // NEED_PROTOYPES
diff --git a/sys/strings.h b/sys/strings.h
new file mode 100644
index 0000000..a78ae1e
--- /dev/null
+++ b/sys/strings.h
@@ -0,0 +1,10 @@
+#ifndef LPC_STRINGS_H_
+#define LPC_STRINGS_H_ 1
+
+/* 'where' argument values for trim() */
+
+#define TRIM_LEFT  0x01
+#define TRIM_RIGHT 0x02
+#define TRIM_BOTH  (TRIM_LEFT|TRIM_RIGHT)
+
+#endif /* LPC_STRINGS_H_ */
diff --git a/sys/struct_info.h b/sys/struct_info.h
new file mode 100644
index 0000000..dde00e6
--- /dev/null
+++ b/sys/struct_info.h
@@ -0,0 +1,38 @@
+#ifndef LPC_STRUCTINFO_H_
+#define LPC_STRUCTINFO_H_
+
+#ifndef __DRIVER_SOURCE__
+#include "lpctypes.h"
+#endif
+
+/* Definition of argument values for struct_info() and
+ * of the indices in the corresponding result arrays.
+ */
+
+/* Possible types of information requested from struct_info()
+ */
+#define SINFO_FLAT    0
+#define SINFO_NESTED  1
+
+
+/* Indices in the result array
+ */
+
+#define SI_NAME         0
+#define SI_PROG_NAME    1
+#define SI_PROG_ID      2
+#define SI_BASE         3
+#define SI_MEMBER       4
+
+#define SI_MAX 5  /* Min Number of SI_ result elements */
+
+/* Indices in the SI_MEMBER arrays
+ */
+
+#define SIM_NAME   0
+#define SIM_TYPE   1
+#define SIM_EXTRA  2
+
+#define SIM_MAX 3 /* Number of SIM_ elements */
+
+#endif /* LPC_STRUCTINFO_H_ */
diff --git a/sys/sys_debug.h b/sys/sys_debug.h
new file mode 100644
index 0000000..4b82764
--- /dev/null
+++ b/sys/sys_debug.h
@@ -0,0 +1,24 @@
+// MorgenGrauen MUDlib
+//
+// sys_debug.h -- Definitionen fuer Debugzwecke
+//
+// $Id: sys_debug.h 6081 2006-10-23 14:12:34Z Zesstra $
+
+#ifndef __SYS_DEBUG_H__
+#define __SYS_DEBUG_H__
+
+#define DEBUG(x) printf("DEBUG: OBJ(/%O) %O\n", this_object(), (x))
+
+#define DBG_ON(c) (traceprefix(object_name(this_object())[1..]), trace(c?c:239))
+#define DBG_OFF() (traceprefix(""), trace(0))
+
+#define LFUN    1   // debug lfunc calls
+#define CALL    2   // debug call_other calls
+#define RET     4   // debug return values
+#define ARGS    8   // show arguments when calling a function
+#define STACK   16  // show all stack machine code (DON'T USE!)
+#define HB      32  // show calls to heart_beat()
+#define APPLY   64  // debug calls to apply
+#define NAME    128 // show name of file when debugging (don't use)
+
+#endif
diff --git a/sys/telnet.h b/sys/telnet.h
new file mode 100644
index 0000000..94a2b14
--- /dev/null
+++ b/sys/telnet.h
@@ -0,0 +1,261 @@
+#ifndef TELNET_H__
+#define TELNET_H__ 1
+
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ *        @(#)telnet.h        5.7 (Berkeley) 11/14/89
+ */
+
+/*
+ * Definitions for the TELNET protocol.
+ */
+#define  IAC     255      /* interpret as command: */
+#define  DONT    254      /* you are not to use option */
+#define  DO      253      /* please, you use option */
+#define  WONT    252      /* I won't use option */
+#define  WILL    251      /* I will use option */
+#define  SB      250      /* interpret as subnegotiation */
+#define  GA      249      /* you may reverse the line */
+#define  EL      248      /* erase the current line */
+#define  EC      247      /* erase the current character */
+#define  AYT     246      /* are you there */
+#define  AO      245      /* abort output--but let prog finish */
+#define  IP      244      /* interrupt process--permanently */
+#define  BREAK   243      /* break */
+#define  DM      242      /* data mark--for connect. cleaning */
+#define  NOP     241      /* nop */
+#define  SE      240      /* end sub negotiation */
+#define  EOR     239      /* end of record (transparent mode) */
+#define  ABORT   238      /* Abort process */
+#define  SUSP    237      /* Suspend process */
+#define  xEOF    236      /* End of file: EOF is already used... */
+
+#define  SYNCH   242      /* for telfunc calls */
+
+#ifdef __DRIVER_SOURCE__
+
+#ifdef TELCMDS
+char *telcmds[] = {
+        "EOF", "SUSP", "ABORT", "EOR",
+        "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC",
+        "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC",
+};
+#define  TELCMD_FIRST   xEOF
+#define  TELCMD_LAST    IAC
+#define  TELCMD_OK(x)   ((x) <= TELCMD_LAST && (x) >= TELCMD_FIRST)
+#define  TELCMD(x)      telcmds[(x)-TELCMD_FIRST]
+#endif
+
+#endif /* __DRIVER_SOURCE__ */
+
+/* telnet options */
+#define  TELOPT_BINARY         0        /* 8-bit data path */
+#define  TELOPT_ECHO           1        /* echo */
+#define  TELOPT_RCP            2        /* prepare to reconnect */
+#define  TELOPT_SGA            3        /* suppress go ahead */
+#define  TELOPT_NAMS           4        /* approximate message size */
+#define  TELOPT_STATUS         5        /* give status */
+#define  TELOPT_TM             6        /* timing mark */
+#define  TELOPT_RCTE           7        /* remote controlled transmission and echo */
+#define  TELOPT_NAOL           8        /* negotiate about output line width */
+#define  TELOPT_NAOP           9        /* negotiate about output page size */
+#define  TELOPT_NAOCRD        10        /* negotiate about CR disposition */
+#define  TELOPT_NAOHTS        11        /* negotiate about horizontal tabstops */
+#define  TELOPT_NAOHTD        12        /* negotiate about horizontal tab disposition */
+#define  TELOPT_NAOFFD        13        /* negotiate about formfeed disposition */
+#define  TELOPT_NAOVTS        14        /* negotiate about vertical tab stops */
+#define  TELOPT_NAOVTD        15        /* negotiate about vertical tab disposition */
+#define  TELOPT_NAOLFD        16        /* negotiate about output LF disposition */
+#define  TELOPT_XASCII        17        /* extended ascic character set */
+#define  TELOPT_LOGOUT        18        /* force logout */
+#define  TELOPT_BM            19        /* byte macro */
+#define  TELOPT_DET           20        /* data entry terminal */
+#define  TELOPT_SUPDUP        21        /* supdup protocol */
+#define  TELOPT_SUPDUPOUTPUT  22        /* supdup output */
+#define  TELOPT_SNDLOC        23        /* send location */
+#define  TELOPT_TTYPE         24        /* terminal type */
+#define  TELOPT_EOR           25        /* end or record */
+#define  TELOPT_TUID          26        /* TACACS user identification */
+#define  TELOPT_OUTMRK        27        /* output marking */
+#define  TELOPT_TTYLOC        28        /* terminal location number */
+#define  TELOPT_3270REGIME    29        /* 3270 regime */
+#define  TELOPT_X3PAD         30        /* X.3 PAD */
+#define  TELOPT_NAWS          31        /* window size */
+#define  TELOPT_TSPEED        32        /* terminal speed */
+#define  TELOPT_LFLOW         33        /* remote flow control */
+#define  TELOPT_LINEMODE      34        /* Linemode option */
+#define  TELOPT_XDISPLOC      35        /* X Display Location */
+#define  TELOPT_ENVIRON	      36        /* Environment opt for Port ID */
+#define  TELOPT_AUTHENTICATION 37       /* authentication */
+#define  TELOPT_ENCRYPT       38        /* authentication */
+#define  TELOPT_NEWENV        39        /* Environment opt for Port ID */
+#define  TELOPT_STARTTLS      46        /* Transport Layer Security */
+#define  TELOPT_KERMIT        47        /* Telnet KERMIT */
+#define  TELOPT_SEND_URL      48        /* Send URL */
+#define  TELOPT_EXOPL        255        /* extended-options-list */
+
+/* Inofficial, mud specific telnet options */
+#define  TELOPT_MSSP          70        /* Mud Server Status Protocol */
+#define  TELOPT_COMPRESS      85        /* Mud Compression Protocol, v.1 */
+#define  TELOPT_COMPRESS2     86        /* Mud Compression Protocol, v.2 */
+#define  TELOPT_MSP           90        /* Mud Sound Protocol */
+#define  TELOPT_MXP           91        /* Mud Extension Protocol */
+#define  TELOPT_ZMP           93        /* Zenith Mud Protocol */
+#define  TELOPT_MUSHCLIENT   102        /* Mushclient/Aardwolf Protocol */
+#define  TELOPT_ATCP         200        /* Achaea Telnet Client Protocol */
+#define  TELOPT_GMCP         201        /* General Mud Communication Protocol*/
+
+#define  NTELOPTS            256        /* was: (1+TELOPT_NEWENV) */
+
+#ifdef __DRIVER_SOURCE__
+
+#ifdef TELOPTS
+char *telopts[NTELOPTS]
+ = { "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD"
+   , "NAME", "STATUS", "TIMING MARK", "RCTE"
+   , "NAOL", "NAOP", "NAOCRD", "NAOHTS"
+   , "NAOHTD", "NAOFFD", "NAOVTS", "NAOVTD"
+   , "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO"
+   , "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", "SEND LOCATION"
+   , "TERMINAL TYPE", "END OF RECORD", "TACACS UID", "OUTPUT MARKING"
+   , "TTYLOC", "3270 REGIME", "X.3 PAD", "NAWS"
+   , "TSPEED", "LFLOW", "LINEMODE", "XDISPLOC"
+   , "ENVIRON", "AUTH", "ENCRYPT", "NEWENV"
+   , "TELOPT 40", "TELOPT 41", "TELOPT 42", "TELOPT 43"
+   , "TELOPT 44", "TELOPT 45", "STARTTLS", "KERMIT"
+   , "SEND_URL", "TELOPT 49", "TELOPT 50", "TELOPT 51"
+   , "TELOPT 52", "TELOPT 53", "TELOPT 54", "TELOPT 55"
+   , "TELOPT 56", "TELOPT 57", "TELOPT 58", "TELOPT 59"
+   , "TELOPT 60", "TELOPT 61", "TELOPT 62", "TELOPT 63"
+   , "TELOPT 64", "TELOPT 65", "TELOPT 66", "TELOPT 67"
+   , "TELOPT 68", "TELOPT 69", "MSSP", "TELOPT 71"
+   , "TELOPT 72", "TELOPT 73", "TELOPT 74", "TELOPT 75"
+   , "TELOPT 76", "TELOPT 77", "TELOPT 78", "TELOPT 79"
+   , "TELOPT 80", "TELOPT 81", "TELOPT 82", "TELOPT 83"
+   , "TELOPT 84", "MUD COMPRESS", "MUD COMPRESS2", "TELOPT 87"
+   , "TELOPT 88", "TELOPT 89", "MUD SOUND", "MUD EXTENSION"
+   , "TELOPT 92", "ZMP", "TELOPT 94", "TELOPT 95"
+   , "TELOPT 96", "TELOPT 97", "TELOPT 98", "TELOPT 99"
+   , "TELOPT 100", "TELOPT 101", "MUSHCLIENT", "TELOPT 103"
+   , "TELOPT 104", "TELOPT 105", "TELOPT 106", "TELOPT 107"
+   , "TELOPT 108", "TELOPT 109", "TELOPT 110", "TELOPT 111"
+   , "TELOPT 112", "TELOPT 113", "TELOPT 114", "TELOPT 115"
+   , "TELOPT 116", "TELOPT 117", "TELOPT 118", "TELOPT 119"
+   , "TELOPT 120", "TELOPT 121", "TELOPT 122", "TELOPT 123"
+   , "TELOPT 124", "TELOPT 125", "TELOPT 126", "TELOPT 127"
+   , "TELOPT 128", "TELOPT 129", "TELOPT 130", "TELOPT 131"
+   , "TELOPT 132", "TELOPT 133", "TELOPT 134", "TELOPT 135"
+   , "TELOPT 136", "TELOPT 137", "TELOPT 138", "TELOPT 139"
+   , "TELOPT 140", "TELOPT 141", "TELOPT 142", "TELOPT 143"
+   , "TELOPT 144", "TELOPT 145", "TELOPT 146", "TELOPT 147"
+   , "TELOPT 148", "TELOPT 149", "TELOPT 150", "TELOPT 151"
+   , "TELOPT 152", "TELOPT 153", "TELOPT 154", "TELOPT 155"
+   , "TELOPT 156", "TELOPT 157", "TELOPT 158", "TELOPT 159"
+   , "TELOPT 160", "TELOPT 161", "TELOPT 162", "TELOPT 163"
+   , "TELOPT 164", "TELOPT 165", "TELOPT 166", "TELOPT 167"
+   , "TELOPT 168", "TELOPT 169", "TELOPT 170", "TELOPT 171"
+   , "TELOPT 172", "TELOPT 173", "TELOPT 174", "TELOPT 175"
+   , "TELOPT 176", "TELOPT 177", "TELOPT 178", "TELOPT 179"
+   , "TELOPT 180", "TELOPT 181", "TELOPT 182", "TELOPT 183"
+   , "TELOPT 184", "TELOPT 185", "TELOPT 186", "TELOPT 187"
+   , "TELOPT 188", "TELOPT 189", "TELOPT 190", "TELOPT 191"
+   , "TELOPT 192", "TELOPT 193", "TELOPT 194", "TELOPT 195"
+   , "TELOPT 196", "TELOPT 197", "TELOPT 198", "TELOPT 199"
+   , "ATCP", "TELOPT 201", "TELOPT 202", "TELOPT 203"
+   , "TELOPT 204", "TELOPT 205", "TELOPT 206", "TELOPT 207"
+   , "TELOPT 208", "TELOPT 209", "TELOPT 210", "TELOPT 211"
+   , "TELOPT 212", "TELOPT 213", "TELOPT 214", "TELOPT 215"
+   , "TELOPT 216", "TELOPT 217", "TELOPT 218", "TELOPT 219"
+   , "TELOPT 220", "TELOPT 221", "TELOPT 222", "TELOPT 223"
+   , "TELOPT 224", "TELOPT 225", "TELOPT 226", "TELOPT 227"
+   , "TELOPT 228", "TELOPT 229", "TELOPT 230", "TELOPT 231"
+   , "TELOPT 232", "TELOPT 233", "TELOPT 234", "TELOPT 235"
+   , "TELOPT 236", "TELOPT 237", "TELOPT 238", "TELOPT 239"
+   , "TELOPT 240", "TELOPT 241", "TELOPT 242", "TELOPT 243"
+   , "TELOPT 244", "TELOPT 245", "TELOPT 246", "TELOPT 247"
+   , "TELOPT 248", "TELOPT 249", "TELOPT 250", "TELOPT 251"
+   , "TELOPT 252", "TELOPT 253", "TELOPT 254", "EXOPL"
+};
+#endif
+
+#endif /* __DRIVER_SOURCE__ */
+
+/* sub-option qualifiers */
+#define  TELQUAL_IS     0        /* option is... */
+#define  TELQUAL_SEND   1        /* send option */
+
+/*
+ * LINEMODE suboptions
+ */
+
+#define  LM_MODE            1
+#define  LM_FORWARDMASK     2
+#define  LM_SLC             3
+
+#define  MODE_EDIT       0x01
+#define  MODE_TRAPSIG    0x02
+#define  MODE_ACK        0x04
+
+#define  MODE_MASK       (MODE_EDIT|MODE_TRAPSIG|MODE_ACK)
+
+/* Not part of protocol, but needed to simplify things... */
+#define  MODE_FLOW       0x0100
+#define  MODE_ECHO       0x0200
+#define  MODE_INBIN      0x0400
+#define  MODE_OUTBIN     0x0800
+#define  MODE_FORCE      0x1000
+
+#define  SLC_SYNCH   1
+#define  SLC_BRK     2
+#define  SLC_IP      3
+#define  SLC_AO      4
+#define  SLC_AYT     5
+#define  SLC_EOR     6
+#define  SLC_ABORT   7
+#define  SLC_EOF     8
+#define  SLC_SUSP    9
+#define  SLC_EC     10
+#define  SLC_EL     11
+#define  SLC_EW     12
+#define  SLC_RP     13
+#define  SLC_LNEXT  14
+#define  SLC_XON    15
+#define  SLC_XOFF   16
+#define  SLC_FORW1  17
+#define  SLC_FORW2  18
+
+#define  NSLC       18
+
+#define  SLC_NAMES  "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \
+                    "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \
+                    "LNEXT", "XON", "XOFF", "FORW1", "FORW2"
+
+#define  SLC_NOSUPPORT     0
+#define  SLC_CANTCHANGE    1
+#define  SLC_VARIABLE      2
+#define  SLC_DEFAULT       3
+#define  SLC_LEVELBITS    0x03
+
+#define  SLC_FUNC          0
+#define  SLC_FLAGS         1
+#define  SLC_VALUE         2
+
+#define  SLC_ACK          0x80
+#define  SLC_FLUSHIN      0x40
+#define  SLC_FLUSHOUT     0x20
+
+#endif  /* TELNET_H__ */
diff --git a/sys/temp/std_headers.h b/sys/temp/std_headers.h
new file mode 100644
index 0000000..f96080e
--- /dev/null
+++ b/sys/temp/std_headers.h
@@ -0,0 +1,15 @@
+#ifndef _STD_HEADERS_
+#define _STD_HEADERS_
+
+//LANGUAGE
+void SetArticle( int fl );
+static int QueryAFlag();
+public varargs string QueryArticle( int casus, int dem, int force );
+public varargs int SuggestArticle( string myname );
+public varargs string QueryPossPronoun( int what, int casus, int number );
+public string QueryPronoun( int casus );
+public varargs string QueryDu(int casus,int gender,int zahl);
+public string QueryGenderString();
+public varargs string DeclAdj( string adj, int casus, int demon );
+
+#endif
diff --git a/sys/temp/util.h b/sys/temp/util.h
new file mode 100644
index 0000000..b3fd23d
--- /dev/null
+++ b/sys/temp/util.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// sys/thing/util.h -- Headerfile fuer /std/thing/util.c
+//
+// $Id: util.h,v 1.1 2000/08/15 12:07:30 Paracelsus Exp $
+
+#ifndef __THING_UTIL_H__
+#define __THING_UTIL_H__
+
+#endif // __THING_UTIL_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_UTIL_H_PROTO__
+#define __THING_UTIL_H_PROTO__
+
+public void ShowPropList(string *props);
+static void PrettyDump(mixed x);
+static void DumpArray(mixed *x);
+static void DumpMapping(mapping x);
+static void DumpKeyValPair(mapping x, mixed key, int size);
+
+#endif // __THING_UTIL_H_PROTO__
+
+#endif // NEED_PROTOTYPES
\ No newline at end of file
diff --git a/sys/terminal.h b/sys/terminal.h
new file mode 100644
index 0000000..903af6d
--- /dev/null
+++ b/sys/terminal.h
Binary files differ
diff --git a/sys/thing.h b/sys/thing.h
new file mode 100644
index 0000000..e478014
--- /dev/null
+++ b/sys/thing.h
@@ -0,0 +1,19 @@
+// MorgenGrauen MUDlib
+//
+// thing.h -- standard thing definitions
+//
+// $Id: thing.h,v 3.5 2004/05/20 19:00:12 Vanion Exp $
+
+#ifndef __THING_H__
+#define __THING_H__
+
+#include "/sys/thing/commands.h"
+#include "/sys/thing/description.h"
+#include "/sys/thing/language.h"
+#include "/sys/thing/properties.h"
+#include "/sys/thing/moving.h"
+#include "/sys/thing/restrictions.h"
+#include "/sys/thing/material.h"
+#include "/sys/thing/lighttypes.h"
+
+#endif
diff --git a/sys/thing/commands.h b/sys/thing/commands.h
new file mode 100644
index 0000000..2bb876d
--- /dev/null
+++ b/sys/thing/commands.h
@@ -0,0 +1,41 @@
+// MorgenGrauen MUDlib
+//
+// thing/commands.h -- command handling header
+//
+// $Id: commands.h 8707 2014-02-23 22:38:34Z Zesstra $
+
+#ifndef __THING_COMMANDS_H__
+#define __THING_COMMANDS_H__
+
+// properties
+
+#define P_COMMANDS           "commands"
+
+#endif // __THING_COMMANDS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_COMMANDS_H_PROTO__
+#define __THING_COMMANDS_H_PROTO__
+
+// prototypes
+
+// add commands to the command list of the object
+varargs void AddCmd(mixed cmd, mixed func, mixed flag, mixed cmdid);
+
+// remove a command
+varargs int RemoveCmd(mixed cmd, int del_norule, mixed onlyid);
+// Set- und Query-Methoden
+static mapping _set_commands(mapping commands);
+static mapping _query_commands();
+
+
+// internal
+static int _execute(mixed fun, string str, mixed *parsed);
+static int _process_command(string str, string *noparsestr,mixed fun, mixed flag, mixed rule);
+
+public int _cl(string str);
+
+#endif // __THING_COMMANDS_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/thing/description.h b/sys/thing/description.h
new file mode 100644
index 0000000..029f445
--- /dev/null
+++ b/sys/thing/description.h
@@ -0,0 +1,128 @@
+// MorgenGrauen MUDlib
+//
+// thing/description.h -- header
+//
+// $Id: description.h 9208 2015-05-10 20:54:06Z Zesstra $
+// MorgenGrauen MUDlib
+//
+// thing/description.h -- header
+//
+// $Id: description.h 9208 2015-05-10 20:54:06Z Zesstra $
+ 
+#ifndef __THING_DESCRIPTION_H__
+#define __THING_DESCRIPTION_H__
+
+// properties
+#define P_NAME               "name"       // name of the object
+#define P_NAME_ADJ           "name_adj"   // adjective of the name
+#define P_SHORT              "short"      // short desciption of the object
+#define P_LONG               "long"       // long description of the object
+#define P_IDS                "ids"        // identifier of the object
+#define P_ADJECTIVES         "adjectives" // adjectives of the object
+#define P_SHOW_INV           "show_inv"   // Show in inventory of player
+#define P_CLASS              "class"      // class, like undead or explosive
+
+#define P_KILL_MSG           "kill_msg"
+#define P_KILL_NAME          "kill_name"
+
+#define P_HEAL               "heal"
+#define P_COMBATCMDS         "combatcmds"
+
+#define P_VALUE              "value"
+#define P_NOBUY              "nobuy"
+#define P_NOSELL             "nosell"
+#define P_MAGIC              "magic"
+#define P_NOMAGIC            "nomagic"
+
+#define P_LOG_FILE           "log_file"   // bugs in anderes repfile umleiten
+
+#define P_LIGHT              "light"
+#define P_TOTAL_LIGHT        "total_light"
+
+#define P_CURSED             "cursed"
+#define P_KEEP_ON_SELL       "keep_on_sell"
+
+#define P_CLONER             "cloner"
+#define P_CLONE_TIME         "clone_time"
+
+/* read_msg ist auch fuer nicht fernwest-kundige lesbar */
+#define P_READ_MSG           "read_msg"
+#define P_FW_ALWAYS_READABLE "fw_always_readable"
+#define P_DETAILS            "details"
+#define P_SPECIAL_DETAILS    "special_details"
+#define P_READ_DETAILS       "read_details"
+#define P_SMELLS             "smell_details"
+#define P_SOUNDS             "sound_details"
+#define P_TOUCH_DETAILS      "p_lib_touch_details"
+#ifndef P_INVIS
+#define P_INVIS              "invis"
+#endif
+
+#define SENSE_DEFAULT "\ndefault"
+#define SENSE_VIEW  0
+#define SENSE_SMELL 1
+#define SENSE_SOUND 2
+#define SENSE_TOUCH 3
+#define SENSE_READ  4
+
+#endif // __THING_DESCRIPTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_DESCRIPTION_H_PROTO__
+#define __THING_DESCRIPTION_H_PROTO__
+
+// prototypes
+// check if the objects can by identified by str
+varargs int id(string str, int lvl);
+
+// check IDs vs. string*
+int match_ids(string *list);
+
+// add an id to the current object
+void AddId(string|string* str);
+
+// remove an id from the object
+void RemoveId(string|string* str);
+
+// add an adjective to describe the object
+void AddAdjective(string|string* str);
+
+// remove an adjective from the object
+void RemoveAdjective(string|string* str);
+
+// get the name with casus and demonstrative
+varargs string name(int casus, int demon);
+varargs string Name(int casus, int demon);
+
+// check if object is member of a class
+int is_class_member(string|string* str);
+
+// add object to a class
+void AddToClass(string str);
+
+// add a detail to object
+public void AddDetail( string|string* keys, string|string*|mapping|closure descr );
+public void AddReadDetail( string|string* keys, string|string*|mapping|closure descr );
+public void AddSmells( string|string* keys, string|string*|mapping|closure descr );
+public void AddSounds( string|string* keys, string|string*|mapping|closure descr );
+public void AddTouchDetail( string|string* keys, string|string*|mapping|closure descr );
+
+// remove a detail from object
+public varargs void RemoveDetail( string|string* keys );
+public varargs void RemoveSmells( string|string* keys );
+public varargs void RemoveSounds( string|string* keys );
+public varargs void RemoveReadDetail( string|string* keys );
+public varargs void RemoveTouchDetail( string|string* keys );
+
+// add a special detail to object
+void AddSpecialDetail(string|string* keys, string functionname );
+
+// remove a special detail to object
+void RemoveSpecialDetail( string|string* keys );
+
+static void GiveEP(int type, string key);
+
+#endif // __THING_DESCRIPTION_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/thing/language.h b/sys/thing/language.h
new file mode 100644
index 0000000..51afd86
--- /dev/null
+++ b/sys/thing/language.h
@@ -0,0 +1,79 @@
+// MorgenGrauen MUDlib
+//
+// thing/language.h -- language handling
+//
+// $Id: language.h 6330 2007-05-26 17:53:21Z Zesstra $
+ 
+#ifndef __THING_LANGUAGE_H__
+#define __THING_LANGUAGE_H__
+
+// properties
+#define P_ARTICLE            "article"
+#define P_GENDER             "gender"
+#define P_PLURAL             "plural"
+
+// special defines
+
+#define WER 	0
+#define WESSEN 	1
+#define WEM 	2
+#define WEN 	3
+#define RAW     99   // name without article
+
+#define NEUTER 		0
+#define MALE 		1
+#define FEMALE 		2
+
+#define SINGULAR 	0
+#define PLURAL 		1
+
+#endif // __THING_LANGUAGE_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_LANGUAGE_H_PROTO__
+#define __THING_LANGUAGE_H_PROTO__
+
+// prototypes
+
+// Artikel im passenden Fall sowie demonst. bzw undemonst. zurueck-
+// geben. force ueberschreibt das SetArticle-Flag.
+public varargs string QueryArticle(int casus, int dem, int force);
+
+// Empfehle einen Artikel fuer das Objekt, getestet wird, ob ausser
+// diesem Objekt sich ein anderes Objekt mit der id im selben
+// Raum befindet.
+public varargs int SuggestArticle(string id);
+
+// Gib ein Pronomen zurueck, welches ausdrueckt, das ein Objekt diesem
+// Objekt gehoert. Dabei ist what das Geschlecht des Objektes.
+public varargs string QueryPossPronoun(mixed what, int casus, int number);
+
+// Er/Sie/Es u.ae. zurueckgeben.
+public varargs string QueryPronoun(int casus);
+
+// Du im passenden Fall zurueckgeben.
+public varargs string QueryDu(int casus,int gender, int zahl);
+
+// Geschlecht in Worten zurueckgeben (maennlich, weiblich, saechlich)
+public string QueryGenderString();
+
+// Deklination eines Adjektivs
+public varargs string DeclAdj(mixed adj, int casus, int demon);
+
+// Query- und Set-Methoden
+static int _set_article(int fl);
+static int _query_article();
+static int _set_gender(int i);
+
+// Interna
+static int QueryAFlag();
+
+#endif // __THING_LANGUAGE_H_PROTO__
+
+#endif // NEED_PROTOYPES
+
+
+
+
+
diff --git a/sys/thing/lighttypes.h b/sys/thing/lighttypes.h
new file mode 100644
index 0000000..dae95d5
--- /dev/null
+++ b/sys/thing/lighttypes.h
@@ -0,0 +1,83 @@
+// MorgenGrauen MUDlib
+//
+// lighttypes.h -- Welche Typen von Licht gibt es im MorgenGrauen? 
+//
+// $Id: lighttypes.h,v 1.2 2004/06/12 14:00:48 Vanion Exp $
+ 
+#ifndef __THING_LIGHTTYPES_H__
+#define __THING_LIGHTTYPES_H__
+
+#define P_LIGHT_TYPE   "light_type"  // Welches Licht herrscht hier vor?
+
+// Mode-Parameter fuer CheckLightType
+#define LT_CHECK_ANY     0 
+#define LT_CHECK_ALL     1
+#define LT_CHECK_MATCH   2
+#define LT_CHECK_NONE    3
+
+// Basislichttypen
+#define LT_MISC          0  // Unbestimmt
+
+// Natuerliche Lichtquellen (Tag)
+#define LT_SUN           1  // Sonnenschein
+#define LT_DIFFUSE       2  // Indirektes Tageslicht
+
+// Natuerliche Lichtquellen (Nacht)
+#define LT_MOON          4  // Mondlicht
+#define LT_STARS         8  // Sternenlicht
+
+// Drei besonders oft vorkommende Typen offenen Lichts
+#define LT_CANDLE       16  // Kerzenlicht
+#define LT_TORCH        32  // Fackelschein
+#define LT_OPEN_FIRE    64  // Lagerfeuer etc.
+
+// Magische erzeugtes Leuchten, wird nicht naeher definiert.
+#define LT_MAGIC       128  // Magische Lichtquelle
+
+// Alles was so gluehen kann: Von Gluehbirne bis zu Phosphor
+#define LT_GLOWING     256  // Selbstleuchtende Lichtquellen
+
+// Ein Raum kann auch explizit auf Dunkel gesetzt werden.
+// Eine Mischung mit anderen Typen scheint aber wenig sinnvoll.
+#define LT_DARKNESS    512  // Dunkelheit
+
+// Gemischte Typen, sie dienen dazu, komfortabel Abfragen auf Lichttypen 
+// zu implementieren. Beim setzen sollte immer besser auf die genaueren 
+// Lichttypen zurueckgegriffen werden.
+
+// Tageslicht im allgemeinen
+#define LT_DAYLIGHT    (LT_SUN|LT_DIFFUSE)
+
+// Da es verschiedene Typen offenen Feuers gibt, wird hier
+// noch ein Abfragetyp definiert.
+#define LT_FIRE        (LT_CANDLE|LT_TORCH|LT_OPEN_FIRE)
+
+// Natuerliches Licht
+#define LT_NATURAL     (LT_DAYLIGHT|LT_STARS|LT_MOON)
+
+// Kuenstliches Licht
+#define LT_ARTIFICIAL   (LT_MAGIC|LT_FIRE|LT_GLOWING)
+
+#endif // _THING_LIGHTTYPES_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_LIGHTTYPES_H_PROTO__
+#define __THING_LIGHTTYPES_H_PROTO__
+
+// Diese Doku wird noch entfernt, wenn die Manpage erstellt worden ist.
+// 
+// Eine Funktion, mit der das Abfagen eines oder mehrerer Lichttypen 
+// moeglich ist, ist im std/thing/description definiert. Beispiel: 
+// 
+// thing->CheckLightType(LT_DAYLIGHT) 
+//       gibt true wenn ein Tageslichttyp gesetzt ist.
+//
+// thing->CheckLightType(LT_SUN|LT_MOON) 
+//       gibt true, wenn einer der beiden Himmelskoerper leuchtet.
+
+varargs int CheckLightType(int lighttype, int mode);
+
+#endif // __THING_LIGHTTYPES_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/thing/material.h b/sys/thing/material.h
new file mode 100644
index 0000000..927969a
--- /dev/null
+++ b/sys/thing/material.h
@@ -0,0 +1,32 @@
+// MorgenGrauen MUDlib
+//
+// thing/material.h -- material handling header
+//
+// $Id: material.h 6930 2008-08-09 09:20:16Z Zesstra $
+
+#ifndef __THING_MATERIAL_H__
+#define __THING_MATERIAL_H__
+
+#define P_MATERIAL              "material"
+#define MATERIALDB              "/secure/materialdb"
+#define P_MATERIAL_KNOWLEDGE    "material_knowledge"
+#define MATERIAL_SYMMETRIC_RECOGNIZABILITY "mat_sym_recoc"
+
+// Materialien nicht beim Laden durch MatDB includen
+// TODO: besser recoc-propertydefinitionen woanders rein und Materialien hier
+// immer includen
+#ifndef _SKIP_MATERIALS_
+#include <materials.h>
+#endif
+
+#ifdef NEED_PROTOTYPES
+#ifndef __THING_MATERIAL_H_PROTO__
+#define __THING_MATERIAL_H_PROTO__
+
+int QueryMaterial(string mat);
+int QueryMaterialGroup(string matgroup);
+string MaterialList(int casus, mixed idinf);
+
+#endif // __THING_MATERIAL_H_PROTO__
+#endif // NEED_PROTOTYPES
+#endif // __THING_MATERIAL_H__
diff --git a/sys/thing/moving.h b/sys/thing/moving.h
new file mode 100644
index 0000000..46e14a7
--- /dev/null
+++ b/sys/thing/moving.h
@@ -0,0 +1,43 @@
+// MorgenGrauen MUDlib
+//
+// thing/moving.h -- object moving
+//
+// $Id: moving.h 8892 2014-08-04 19:48:28Z Zesstra $
+ 
+#ifndef __THING_MOVING_H__
+#define __THING_MOVING_H__
+
+// properties
+#define P_NEVERDROP           "neverdrop"
+#define P_NODROP              "nodrop"    // can't be dropped
+#define P_NOGET               "noget"     // can't be taken
+
+#define P_NOINSERT_MSG        "noinsert_msg"      // Fehlermeldung bei ME_CANT_BE_INSERTED
+#define P_NOLEAVE_MSG         "noleave_msg"       // Fehlermeldung bei ME_CANT_LEAVE_ENV
+#define P_ENV_TOO_HEAVY_MSG   "env_too_heavy_msg" // Fehlermeldung bei ME_TOO_HEAVY_FOR_ENV
+#define P_TOO_MANY_MSG        "too_many_msg"      // Fehlermeldung bei ME_TOO_MANY_OBJECTS
+#define P_TOO_HEAVY_MSG       "too_heavy_msg"     // Fehlermeldung bei ME_TOO_HEAVY
+
+#define P_LAST_MOVE           "last_move"
+#define P_LAST_CONTENT_CHANGE "last_content_change"
+
+#define P_SENSITIVE     "sensitive" // should be registered as sensitive object
+
+
+#endif // __THING_MOVING_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_MOVING_H_PROTO__
+#define __THING_MOVING_H_PROTO__
+
+// prototypes
+// move the object from current position to dest using the method
+public varargs int move(object|string dest, int method);
+
+// remove the object return 1 for successful destruction
+public varargs int remove(int silent);
+
+#endif // __THING_MOVING_H_PROTO__
+
+#endif //  // NEED_PROTOYPES
diff --git a/sys/thing/properties.h b/sys/thing/properties.h
new file mode 100644
index 0000000..1a59522
--- /dev/null
+++ b/sys/thing/properties.h
@@ -0,0 +1,63 @@
+// MorgenGrauen MUDlib
+//
+// thing/properties.h -- contains property definitions and prototypes
+//
+// $Id: properties.h,v 3.5 2003/08/07 15:09:33 Rikus Exp $
+
+#ifndef __THING_PROPERTIES_H__
+#define __THING_PROPERTIES_H__
+
+// special defines
+
+#define F_VALUE         0
+#define F_MODE          1
+#define F_SET_METHOD    2
+#define F_QUERY_METHOD  3
+#define F_MODE_AS       4
+#define F_MODE_AD       5
+
+#define SAVE            64
+#define PROTECTED       128  // only this_object() can change the values
+#define SECURED         256  // like PROTECTED, but never resetable
+#define NOSETMETHOD     512  // Keine Set-Methode => Nicht mofifizierbar
+#define SETMNOTFOUND	1024 // Keine Set-Methode gefunden
+#define QUERYMNOTFOUND	2048 // Keine Query-Methode gefunden
+#define QUERYCACHED	4096
+#define SETCACHED	8192
+
+#endif // __THING_PROPERTIES_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_PROPERTIES_H_PROTO__
+#define __THING_PROPERTIES_H_PROTO__
+
+// prototypes
+
+// (E)UID-Methods
+//static mixed _query_uid();
+//static mixed _query_euid();
+
+// Property-Initialisation
+protected void InitializeProperties();
+
+// direct property access
+public varargs mixed Set(string name, mixed Value, int Type, int extern);
+public varargs mixed Query(string name, int Type);
+
+// filtered property access
+public mixed SetProp(string name, mixed Value);
+public mixed QueryProp(string name);
+
+// global property handling
+public void SetProperties(mapping props);
+public mapping QueryProperties();
+
+// misc/interna
+public mixed *__query_properties();
+public void _set_save_data(mixed data);
+public mixed _get_save_data();
+
+#endif // __THING_PROPERTIES_H_PROTO__
+
+#endif // NEED_PROTOTYPES
diff --git a/sys/thing/restrictions.h b/sys/thing/restrictions.h
new file mode 100644
index 0000000..ea14401
--- /dev/null
+++ b/sys/thing/restrictions.h
@@ -0,0 +1,27 @@
+// MorgenGrauen MUDlib
+//
+// thing/restrictions.h -- restrictions of the object (weight)
+//
+// $Id: restrictions.h,v 3.3 2000/08/15 12:29:20 Paracelsus Exp $
+ 
+#ifndef __THING_RESTRICTIONS_H__
+#define __THING_RESTRICTIONS_H__
+
+// properties
+#define P_WEIGHT             "weight"       // weight of an object
+#define P_TOTAL_WEIGHT       "total_weight" // weight with all objects inside
+
+#endif // __THING_RESTRICTIONS_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_RESTRICTIONS_H_PROTO__
+#define __THING_RESTRICTIONS_H_PROTO__
+
+static void _set_weight(int weight);
+static mapping _set_extern_attributes_modifier(mapping xmod);
+static mapping _set_extern_health_modifier(mapping xmod);
+
+#endif // __THING_RESTRICTIONS_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/thing/sockets.h b/sys/thing/sockets.h
new file mode 100644
index 0000000..a5a9cbb
--- /dev/null
+++ b/sys/thing/sockets.h
@@ -0,0 +1,79 @@
+// MorgenGrauen MUDlib
+/** @file
+  Konstanten, Prototypen und Properties fuer sockelbare Items.
+* Langbeschreibung...
+* @author Zesstra + Arathorn
+* @date xx.05.2008
+* @version $Id$
+*/
+
+/* Changelog:
+*/
+
+#ifndef _SOCKETS_H_
+#define _SOCKETS_H_
+
+/** Speichert die Sockel und deren Inhalt, die ein Item hat.
+  ([ TYP1: ({ITEM1, ITEM2}),
+     TYP2: ({-1}) ]) \n
+     ITEM1 = ([ P_SOCKET_PROPS, 
+                BLUE_NAME: load_name(),
+                DESCRIPTION: name(WER) ])
+  @internal
+ */
+#define P_SOCKETS      "_sockets"
+
+/** Speichert ein Mapping von Prop-Modifikatoren.
+  Die in diesem Mapping enthaltenen Props werden beim Einsetzen im Item mit
+  dem Sockel um den angegebenen Wert modifiziert.
+  */
+#define P_SOCKET_PROPS "_socket_props"
+
+/** Sockeltyp, in den das Item eingesetzt werden kann.
+  Alle anderen Sockel sind inkompatibel.
+  */
+#define P_SOCKET_TYPE  "_socket_type"
+
+/** Einschraenkungen, denen der gesockelte Gegenstand nach dem Einsetzen
+    zusaetzlich unterliegt. 
+    Wird P_RESTRICTIONS hinzugefuegt. Mapping a la P_RESTRICTIONS.
+ */
+#define P_SOCKET_RESTR_USE    "_socket_restr_use"
+
+/** Einschraenkungen, denen das Lebewesen unterliegt, welches das Item in 
+  den Sockel einbauen soll/will.
+  Mapping a la P_RESTRICTIONS.
+  */
+#define P_SOCKET_RESTR_MOUNT  "_socket_restr_mount"
+
+// Sockeltypen
+// TODO: gueltige Sockeltypen definieren festlegen, welche Props sie aendern
+// duerfen.
+#define VALID_SOCKET_TYPES ({})
+
+// Rueckgabewerte
+#define SOCKET_OK                1
+#define SOCKET_NO_OBJECT        -1
+#define SOCKET_NO_DATA          -2
+#define SOCKET_INVALID_TYPE     -3
+#define SOCKET_NO_SOCKETS       -4
+#define SOCKET_NONE_AVAILABLE   -5
+#define SOCKET_NO_EXPERTISE     -6
+#define SOCKET_ITEM_INUSE       -7
+
+// sym. Konstante fuer freien Sockel
+#define SOCKET_FREE             -1
+
+#endif // _SOCKETS_H_
+
+#ifdef NEED_PROTOTYPES
+#ifndef _SOCKETS_H_PROTOTYPES_
+#define _SOCKETS_H_PROTOTYPES_
+// public Interface 
+public int   MountSocketItem(object item);
+public int   TestSocketItem(object item);
+public mixed GetSocketInfo();
+
+#endif // _SOCKETS_H_PROTOTYPES_
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/thing/util.h b/sys/thing/util.h
new file mode 100644
index 0000000..053f499
--- /dev/null
+++ b/sys/thing/util.h
@@ -0,0 +1,25 @@
+// MorgenGrauen MUDlib
+//
+// sys/thing/util.h -- Headerfile fuer /std/thing/util.c
+//
+// $Id: util.h 4707 2006-09-23 10:18:15Z root $
+
+#ifndef __THING_UTIL_H__
+#define __THING_UTIL_H__
+
+#endif // __THING_UTIL_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __THING_UTIL_H_PROTO__
+#define __THING_UTIL_H_PROTO__
+
+public void ShowPropList(string *props);
+static void PrettyDump(mixed x);
+static void DumpArray(mixed *x);
+static void DumpMapping(mapping x);
+static void DumpKeyValPair(mapping x, mixed key, int size);
+
+#endif // __THING_UTIL_H_PROTO__
+
+#endif // NEED_PROTOTYPES
\ No newline at end of file
diff --git a/sys/time.h b/sys/time.h
new file mode 100644
index 0000000..9bea657
--- /dev/null
+++ b/sys/time.h
@@ -0,0 +1,18 @@
+#ifndef LPC_TIME_H_
+#define LPC_TIME_H_ 1
+
+/* Indices into the array returned from gmtime() and localtime(). */
+
+#define TM_SEC    0  /* Seconds (0..59) */
+#define TM_MIN    1  /* Minutes (0..59) */
+#define TM_HOUR   2  /* Hours (0..23) */
+#define TM_MDAY   3  /* Day of the month (1..31) */
+#define TM_MON    4  /* Month of the year (0..11) */
+#define TM_YEAR   5  /* Year (e.g.  2001) */
+#define TM_WDAY   6  /* Day of the week (Sunday = 0) */
+#define TM_YDAY   7  /* Day of the year (0..365) */
+#define TM_ISDST  8  /* TRUE: Daylight saving time */
+
+#define TM_MAX 9  /* Number of entries in the array */
+
+#endif /* LPC_TIME_H_ */
diff --git a/sys/tls.h b/sys/tls.h
new file mode 100644
index 0000000..39b50ec
--- /dev/null
+++ b/sys/tls.h
@@ -0,0 +1,86 @@
+#ifndef LPC_TLS_H
+#define LPC_TLS_H
+
+/* Field indices for the result of tls_query_connection_info() */
+
+#define TLS_CIPHER  0
+#define TLS_COMP    1
+#define TLS_KX      2
+#define TLS_MAC     3
+#define TLS_PROT    4
+
+#define TLS_INFO_MAX 5  /* Total number of result fields */
+
+/* Interpretation of the cipher information */
+
+#define TLS_CIPHER_TABLE ({ \
+"TLS_CIPHER_NONE", \
+"TLS_CIPHER_NULL", \
+"TLS_CIPHER_ARCFOUR_128", \
+"TLS_CIPHER_3DES_CBC", \
+"TLS_CIPHER_RIJNDAEL_128_CBC", \
+"TLS_CIPHER_RIJNDAEL_256_CBC", \
+"TLS_CIPHER_ARCFOUR_40" \
+})
+
+#define TLS_CIPHER_NAME(x) TLS_CIPHER_TABLE[(x)]
+
+/* Interpretation of the key-exchange information */
+
+#define TLS_KX_TABLE ({ \
+"TLS_KX_NONE", \
+"TLS_KX_RSA", \
+"TLS_KX_DHE_DSS", \
+"TLS_KX_DHE_RSA", \
+"TLS_KX_ANON_DH", \
+"TLS_KX_SRP", \
+"TLS_KX_RSA_EXPORT", \
+"TLS_KX_SRP_RSA", \
+"TLS_KX_SRP_DSS" \
+})
+
+#define TLS_KX_NAME(x) TLS_KX_TABLE[(x)]
+
+/* Interpretation of the MAC information */
+
+#define TLS_MAC_TABLE ({ \
+"TLS_MAC_NONE", \
+"TLS_MAC_NULL", \
+"TLS_MAC_MD5", \
+"TLS_MAC_SHA" \
+})
+
+#define TLS_MAC_NAME(x) TLS_MAC_TABLE[(x)]
+
+/* Interpretation of the compression information */
+
+#define TLS_COMP_TABLE ({ \
+"TLS_COMP_NONE", \
+"TLS_COMP_NULL", \
+"TLS_COMP_ZLIB", \
+"TLS_COMP_LZO" \
+})
+
+#define TLS_COMP_NAME(x) TLS_COMP_TABLE[(x)]
+
+/* Interpretation of the protocol information */
+
+#define TLS_PROT_TABLE ({ \
+"TLS_PROT_NONE", \
+"TLS_PROT_SSL3", \
+"TLS_PROT_TLS1" \
+})
+
+#define TLS_PROT_NAME(x) TLS_PROT_TABLE[(x)]
+
+/* Recognized hash() algorithms (not all may be supported at runtime) */
+
+#define TLS_HASH_SHA1      (1)
+#define TLS_HASH_SHA224    (2)
+#define TLS_HASH_SHA256    (3)
+#define TLS_HASH_SHA384    (4)
+#define TLS_HASH_SHA512    (5)
+#define TLS_HASH_MD5       (6)
+#define TLS_HASH_RIPEMD160 (7)
+
+#endif /* LPC_TLS_H */
diff --git a/sys/trace.h b/sys/trace.h
new file mode 100644
index 0000000..9c1c473
--- /dev/null
+++ b/sys/trace.h
@@ -0,0 +1,18 @@
+#ifndef LPC_TRACE_H_
+#define LPC_TRACE_H_
+
+/* Argument values for the trace() efun.
+ */
+
+#define TRACE_NOTHING       0  /* Stop tracing */
+
+#define TRACE_CALL          1  /* Trace all lfun calls */
+#define TRACE_CALL_OTHER    2  /* Trace inter-object calls */
+#define TRACE_RETURN        4  /* Trace function returns */
+#define TRACE_ARGS          8  /* Print function arguments and results */
+#define TRACE_EXEC         16  /* Trace all executed instructions */
+#define TRACE_HEART_BEAT   32  /* Trace heartbeat code */
+#define TRACE_APPLY        64  /* Trace (internal) applies */
+#define TRACE_OBJNAME     128  /* Print the object names */
+
+#endif /* LPC_TRACE_H_ */
diff --git a/sys/transport.h b/sys/transport.h
new file mode 100644
index 0000000..d9ac735
--- /dev/null
+++ b/sys/transport.h
@@ -0,0 +1,29 @@
+// MorgenGrauen MUDlib
+//
+// transport.h -- Definitionen fuer Schiffe und andere Transporter
+//
+// $Id: transport.h,v 3.3 2002/02/09 11:56:59 Tilly Exp $
+
+#ifndef _TRANSPORT_H_
+#define _TRANSPORT_H_
+
+#define P_ENTERMSG           "entermsg"
+#define P_LEAVEMSG           "leavemsg"
+#define P_LEAVEFAIL          "leavefail"
+#define P_ENTERFAIL          "enterfail"
+#define P_ARRIVEMSG          "arrivemsg"
+#define P_DEPARTMSG          "departmsg"
+#define P_ENTERCMDS          "entercmds"
+#define P_LEAVECMDS          "leavecmds"
+#define P_MAX_PASSENGERS     "maxpass"
+
+#define P_TRAVEL_INFO        "travel_info"
+#define P_NO_TRAVELING       "no_traveling"
+#define P_TRAVEL_CMDS        "travel_cmds"
+#define P_HARBOUR            "harbour_name"
+
+#define HP_MSG  "hpMsg"
+#define HP_ROOM "hpRoom"
+#define HP_FUN  "hpFun"
+
+#endif
diff --git a/sys/udp.h b/sys/udp.h
new file mode 100644
index 0000000..a2f74c0
--- /dev/null
+++ b/sys/udp.h
@@ -0,0 +1,98 @@
+// MorgenGrauen MUDlib
+//
+// udp.h -- Definitionen fuers udp
+//
+// $Id: udp.h 9503 2016-02-23 18:27:45Z Zesstra $
+
+#ifndef _UDP_H
+#define _UDP_H
+
+/* --- User Configuration. --- */
+
+#include "/secure/config.h"
+#include <driver_info.h>
+
+#define INETD		"/secure/inetd"
+#define UDP_CMD_DIR	"/secure/udp/"
+
+#if !defined(__TESTMUD__) && MUDNAME=="MorgenGrauen"
+#  define HOST_FILE	"/etc/INETD_HOSTS"
+#else
+#  define HOST_FILE "/etc/INETD_HOSTS.TESTMUD"
+#endif
+
+#define INETD_LOG_FILE	"INETD"
+
+#define REPLY_TIME_OUT	12
+#define RETRIES		2
+
+/* #define LOCAL_NAME	SECURITY->get_mud_name()	// CD */
+#if (__HOST_NAME__==MUDHOST)
+#define LOCAL_NAME  MUDNAME
+#else
+#define LOCAL_NAME  "MG-Test-"+__HOST_NAME__
+#endif
+
+/* #define LOCAL_UDP_PORT	SECURITY->do_debug("udp_port");  // CD */
+#define LOCAL_UDP_PORT	driver_info(DI_UDP_PORT)
+
+/* If you are running another intermud system concurrently and there is a
+ * clash with the udp.h filename, rename the old udp.h file as appropriate
+ * and include this line. */
+/* #include <cdudp.h>	// CD */
+
+/* Include these definitions for CD muds. */
+/* #define CDLIB */
+/* #define CD_UDP		"/d/Standard/obj/udp" */
+
+/* --- End of config. --- */
+
+#define INETD_DIAGNOSTICS
+
+#define INETD_VERSION	"0.7a"
+
+/* --- Standard header macros. --- */
+
+#define RECIPIENT	"RCPNT"
+#define REQUEST		"REQ"
+#define SENDER		"SND"
+/* The DATA field should be used to store the main body of any packet. */
+#define DATA		"DATA"
+
+/* These headers are reserved for system use only. */
+#define HOST		"HST"
+#define ID		"ID"
+#ifndef NAME
+#define NAME		"NAME"
+#endif
+#define PACKET		"PKT"
+#define UDP_PORT	"UDP"
+#define SYSTEM		"SYS"
+
+/* Reserved headers for diagnostics. */
+#define PACKET_LOSS	"PKT_LOSS"
+#define RESPONSE_TIME	"TIME"
+
+/* --- Standard REQUEST macros. --- */
+
+#define PING		"ping"
+#define QUERY		"query"
+#define REPLY		"reply"
+
+/* --- Standard SYSTEM macros. --- */
+
+#define FAILED		"F"
+#define REPEAT		"R"
+#define TIME_OUT	"TO"
+#define UNAVAILABLE	"U"
+
+/* --- Index macros for host arrays. --- */
+
+#define HOST_NAME	0
+#define HOST_IP		1
+#define HOST_UDP_PORT	2
+#define LOCAL_COMMANDS	3
+#define HOST_COMMANDS	4
+#define HOST_STATUS	5
+
+#endif
diff --git a/sys/udp_language.h b/sys/udp_language.h
new file mode 100644
index 0000000..c003023
--- /dev/null
+++ b/sys/udp_language.h
@@ -0,0 +1,64 @@
+// Konfigurationsdatei fuer die Sprachausgabe des INETD
+
+#ifndef __UDP_LANG_H__
+#define __UDP_LANG_H__
+
+// ***
+// *** inetd.c
+// ***
+
+#define INETD_INV_ACCESS_MSG "%s: Illegaler Zugriff auf die x-Funktion.\n"
+//                            time                         function
+
+// ***
+// *** channel.c
+// ***
+
+#define INETD_INV_CHAN_MSG "\n%s: %s@%s versucht, auf Kanal \'%s\' zu senden.\n"
+//                          time who mud                  channel
+#define INETD_NO_SUCH_CHAN "[Root@%s] Es gibt hier keinen Intermud-Kanal %s.\n"
+//                                mud                                  channel
+#define INETD_CHAN_LISTEN  "[%s@%s] Auf dem Kanal befinde%s sich: %s\n"
+//                           channel mud                plural    names
+#define INETD_CHAN_NO_LIST \
+                         "[%s@%s] Es befindet sich niemand auf diesem Kanal.\n"
+//                         channel mud
+#define INETD_CHAN_NO_HIST "[%s@%s] Es ist keine Geschichte verfuegbar.\n"
+//                          channel mud
+#define INETD_CHAN_HIST    "[%s@%s] History:\n"
+//                          channel mud
+
+// ***
+// *** locate.c
+// ***
+
+// ***
+// *** man.c
+// ***
+
+#define INETD_MANPAGE_FOUND "[ManD@%s] Folgende Seite wurde gefunden: %s\n"
+//                              mud                                 file
+#define INETD_NO_MANPAGE    "[ManD@%s] Keine Hilfeseite gefunden fuer '%s'.\n"
+//                              mud                                 page
+#define INETD_MANPAGES      "[ManD@%s] Die folgenden Seiten passen:\n" \
+                             "%'-'78.78s\n%s%'-'78.78s\n"
+//                                mud  "" pagelist ""
+#define INETD_MAN_REQUESTED "%s@%s: Abfrage abgeschickt.\n"
+//                             page  mud
+
+// ***
+// *** newhost.c
+// ***
+
+
+// ***
+// *** query.c
+#define INETD_QUERY_REQUESTED "%s@%s: Abfrage abgeschickt.\n"
+// ***
+
+
+// ***
+// *** reply.c
+// ***
+
+#endif // __UDP_LANG_H__
diff --git a/sys/udp_mail.h b/sys/udp_mail.h
new file mode 100644
index 0000000..fe76232
--- /dev/null
+++ b/sys/udp_mail.h
@@ -0,0 +1,52 @@
+// MorgenGrauen MUDlib
+//
+// udp_mail.h -- Post per udp
+//
+// $Id: udp_mail.h,v 3.1 1997/02/12 13:04:59 Wargon Exp $
+
+/*
+ * VERSION 1.0
+ * Include file for the UDP MAIL system (Author: Alvin@Sushi)
+ * Requires INETD V0.60 or higher (INETD Author: Nostradamus@Zebedee)
+ */
+
+/*
+ * Your local mail delivery system
+ * Needs to have the following functions :-
+ * void deliver_mail(string to,string from,string subjct,string mail_body)
+ * int query_recipient_ok(string name)
+ */
+#define LOCAL_MAILER			"/secure/mailer"
+
+/*
+ * The directory in which mail is kept if the initial attempt times out
+ * The mail will be recent every UDPM_RETRY_SEND minutes until
+ * UDPM_SEND_FAIL minutes have passed
+ * NOTE: UDPM_SPOOL_DIR must end with / and must be writable
+ */
+#define UDPM_SPOOL_DIR			"mail/spool/"
+
+/* The following two times are in MINUTES */
+#define UDPM_RETRY_SEND			30
+#define UDPM_SEND_FAIL			1440	 /* 24 Hours */
+
+/* PLEASE DO NOT ALTER THE FOLLOWING */
+
+#define UDPM_WRITER			"udpm_writer"
+#define UDPM_SUBJECT			"udpm_subject"
+#define UDPM_STATUS			"udpm_status"
+#define UDPM_SPOOL_NAME			"udpm_spool_name"
+
+#define UDPM_STATUS_TIME_OUT		0
+#define UDPM_STATUS_DELIVERED_OK	1
+#define UDPM_STATUS_UNKNOWN_PLAYER	2
+#define UDPM_STATUS_IN_SPOOL		3
+
+/* things to do with the spool directory */
+
+#define UDPMS_TIME			"udpm_spool_time"
+#define UDPMS_TO			"udpm_spool_to"
+#define UDPMS_DEST			"udpm_spool_dest"
+#define UDPMS_FROM			"udpm_spool_from"
+#define UDPMS_SUBJECT			"udpm_spool_subject"
+#define UDPMS_BODY			"udpm_spool_body"
diff --git a/sys/unit.h b/sys/unit.h
new file mode 100644
index 0000000..27a8a2c
--- /dev/null
+++ b/sys/unit.h
@@ -0,0 +1,86 @@
+// MorgenGrauen MUDlib
+//
+// unit.h -- Defines fuer Units
+//
+// $Id: unit.h 9017 2015-01-10 19:20:14Z Zesstra $
+
+#ifndef _UNIT_H_
+#define _UNIT_H_
+
+#define P_UNIT_DECAY_INTERVAL      "unit_decay_interval"
+#define P_UNIT_DECAY_QUOTA         "unit_decay_quota"
+#define P_UNIT_DECAY_FLAGS         "unit_decay_flags"
+#define P_UNIT_DECAY_MIN           "unit_decay_min"
+
+// Flags fuer P_UNIT_DECAY_FLAGS 
+// verhindert das Zerfallen einzelner Unit-Objekte.
+#define NO_DECAY             0x1
+// kein Decay bis zum ersten move() von einem Env in ein Env. (d.h. das erste
+// move() in ein Env (Clonen im create vom NPC) ist unberuecksichtigt.)
+#define NO_DECAY_UNTIL_MOVE  0x2
+// ungenaueren Zerfall benutzt, dabei aber immer min. eine Einheit zerfallen
+// lassen.
+#define INACCURATE_DECAY     0x4
+// kein prozentualer Zerfall, sondern P_UNIT_DECAY_QUOTA gibt eine abs. Menge
+// an Einheiten an.
+#define ABSOLUTE_DECAY       0x8
+
+#define U_GPU   "u_gpu"
+#define U_CPU   "u_cpu"
+#define U_IDS   "u_ids"
+#define U_REQ   "u_req"
+
+#define IS_EQUAL(x) (objectp(x) && (IsEqual(x) && x->IsEqual(ME)))
+
+#endif // _UNIT_H_
+
+#ifdef NEED_PROTOTYPES
+#ifndef _UNIT_H_PROTYPES_
+#define _UNIT_H_PROTYPES_
+// public functions
+varargs int    id(string str,int lvl);
+        int    IsEqual(object ob);
+        int    IsUnit();
+varargs int    move(object|string dest, int method);
+        int    *QueryCoinsPerUnits();
+        int    *QueryGramsPerUnits();
+varargs int remove(int silent);
+varargs string long();
+varargs string|<string>* name(int fall, int demo);
+varargs string QueryPronoun(int casus);
+        string short();
+        void   AddAmount(int am);
+        void   AddPluralId(mixed str);
+        void   AddSingularId(mixed str);
+        void   RemovePluralId(mixed str);
+        void   RemoveSingularId(mixed str);
+        void   reset();
+        void   SetCoinsPerUnits(int coins,int units);
+        void   SetGramsPerUnits(int grams,int units);
+public  int    DoDecay(int silent);
+
+// internal functions
+static    void    check_leave();
+protected void    DoDecayMessage(int oldamount, int zerfall);
+
+// Query- und Set-Methoden
+static  int    _query_plural();
+static  int    _query_total_weight();
+static  int    _query_u_req();
+static  int    _query_value();
+static  int    _query_weight();
+static  string|string* _query_name();
+static  int    _set_amount(int am);
+static  string|string* _set_name(mixed names);
+static  int    _set_weight(int num);
+static  int    _set_value(int num);
+static  int    _query_unit_decay_interval();
+static  int    _set_unit_decay_interval(int zeit);
+static  int    _query_unit_decay_quota();
+static  int    _set_unit_decay_quota(int quota);
+static  int    _query_unit_decay_min();
+static  int    _query_unit_decay_flags();
+
+#endif // _UNIT_H_PROTYPES_
+#endif // NEED_PROTOTYPES
+
diff --git a/sys/userinfo.h b/sys/userinfo.h
new file mode 100644
index 0000000..05548be
--- /dev/null
+++ b/sys/userinfo.h
@@ -0,0 +1,53 @@
+// MorgenGrauen MUDlib
+//
+// userinfo.h -- Daten im Spieler-Cache (siehe /secure/master/userinfo.c)
+//
+// $Id: userinfo.h 6207 2007-02-18 23:32:35Z Zesstra $
+
+#ifndef _USERINFO_
+#define _USERINFO_
+
+/*
+ * userinfo: what each field of /secure/PASSWD is
+ */
+
+/* password (encrypted) */
+#define USER_PASSWORD 0
+
+/* wizard level (or programming level) (0 for simple users) */
+#define USER_LEVEL 1
+
+/* domain (if any) master == *domainname */
+#define USER_DOMAIN 2
+
+/* player object to be loaded by /secure/login */
+#define USER_OBJECT 3
+
+/* time of first login */
+#define USER_CREATION_DATE 4
+
+/* Time userinfo has been touched last */
+#define USER_TOUCH 5
+
+/* exploration points of player */
+#define USER_EP 6
+
+/* npcs killed by player */
+#define USER_EK 7
+
+/* miniquests solved by player */
+#define USER_MQ 8
+
+/* guilds (if any) master == *guildname */
+#define USER_GUILD 9 
+
+/* tips for eks given to player */
+#define USER_EKTIPS 10
+
+/* tips for fps given to player */
+#define USER_FPTIPS 11
+
+/* UIDs fuer den ein Magier u.U. explizit verantwortlich ist */
+#define USER_UIDS_TO_TAKE_CARE 12
+
+#endif
diff --git a/sys/util.h b/sys/util.h
new file mode 100644
index 0000000..299f044
--- /dev/null
+++ b/sys/util.h
@@ -0,0 +1,15 @@
+// MorgenGrauen MUDlib
+//
+// util.h -- Header fuer /std/util/*.c
+//
+// $Id: util.h 6404 2007-08-06 20:31:22Z Zesstra $
+
+#ifndef _UTIL_H
+#define _UTIL_H
+
+varargs public void More(string txt, int file, mixed ctrl, 
+                         mixed ctrlargs, int flags);
+
+
+#endif // _UTIL_H
+
diff --git a/sys/util/ringbuffer.h b/sys/util/ringbuffer.h
new file mode 100644
index 0000000..150d004
--- /dev/null
+++ b/sys/util/ringbuffer.h
@@ -0,0 +1,28 @@
+// MorgenGrauen MUDlib
+//
+// ringbuffer.h -- Header fuer /std/util/ringbuffer.c
+//
+// $Id: util.h 6404 2007-08-06 20:31:22Z Zesstra $
+
+#ifndef _RINGBUFFER_H
+#define _RINGBUFFER_H
+
+#define MODE_FIFO 1
+#define MODE_LIFO 2
+
+#endif // _RINGBUFFER_H
+
+#ifndef _RINGBUFFER_H_IMPLEMENTATION
+#ifdef NEED_PROTOTYPES
+
+#define _RINGBUFFER_H_IMPLEMENTATION
+
+protected struct std_ringbuffer CreateRingBuffer(int size, int newmode);
+protected void RingBufferPut(struct std_ringbuffer buffer, mixed val);
+protected mixed RingBufferGet(struct std_ringbuffer buffer);
+protected struct std_ringbuffer ResizeRingBuffer(struct std_ringbuffer buf, 
+                                                 int size);
+
+#endif // NEED_PROTOTYPES
+#endif // _RINGBUFFER_H_IMPLEMENTATION
+
diff --git a/sys/v_compiler.h b/sys/v_compiler.h
new file mode 100644
index 0000000..1a6e9b9
--- /dev/null
+++ b/sys/v_compiler.h
@@ -0,0 +1,34 @@
+// MorgenGrauen MUDlib
+//
+// v_compiler.h -- a general virtual compiler object
+//
+// $Id: v_compiler.h 6081 2006-10-23 14:12:34Z Zesstra $
+
+#ifndef __V_COMPILER_H__
+#define __V_COMPILER_H__
+
+#define P_STD_OBJECT         "std_object"
+#define P_COMPILER_PATH      "compiler_path"
+
+#endif // __V_COMPILER_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __V_COMPILER_H_PROTO__
+#define __V_COMPILER_H_PROTO__
+
+// to validate if the file name is in our range
+string Validate(string file);
+
+// sets costumization data in the cloned object
+mixed CustomizeObject();
+
+// this functions is called when a file is not found and may be virtual
+mixed compile_object(string file);
+
+// to get all yet cloned (and not cleaned up) objects
+mixed QueryObjects();
+
+#endif // __V_COMPILER_H_PROTO__
+
+#endif //NEED_PROTOTYPES
diff --git a/sys/weapon.h b/sys/weapon.h
new file mode 100644
index 0000000..29eb3b3
--- /dev/null
+++ b/sys/weapon.h
@@ -0,0 +1,77 @@
+// MorgenGrauen MUDlib
+//
+// weapon.h -- Properties fuer Waffen (Schdenstypen siehe <combat.h>)
+//
+// $Id: weapon.h,v 3.8 2002/09/20 07:14:11 Tilly Exp $
+ 
+#include "/sys/weapon/description.h"
+
+#ifndef __WEAPON_H__
+#define __WEAPON_H__
+
+#include <combat.h>
+
+/* ---------- Properties ---------- */
+
+#ifndef P_NR_HANDS
+#define P_NR_HANDS      "nr_hands"     // benoetigte Haende zum zuecken
+#endif
+
+#define P_WC            "wc"           // Waffenklasse (weapon class)
+#define P_MAX_WC        "max_wc"       // obsolet, nicht mehr in Benutzung
+#define P_WEAPON_TYPE   "weapon_type"  // Waffentyp (Schwert, Keule usw.)
+#define P_DAM_TYPE      "dam_type"     // Schadensart der Waffe
+#define P_WIELDED       "wielded"      // Objekt mit dem Traeger der Waffe
+
+#define P_HIT_FUNC      "hit_func"     // Objekt das eine HitFunc definiert
+#define P_WIELD_FUNC    "wield_func"   // Objekt das eine WieldFunc definiert
+#define P_UNWIELD_FUNC  "unwield_func" // Objekt das eine UnwieldFunc definiert
+
+#define P_WIELD_MSG     "wield_msg"    // Meldungen beim Zuecken
+#define P_UNWIELD_MSG   "unwield_msg"  // Meldungen beim Wegstecken
+
+// Wann der Spieler das letzte Mal eine Waffe weggesteckt hat
+#define P_UNWIELD_TIME  "unwield_time"
+
+// Mit was fuer Techniken kann die Waffe eingesetzt werden?
+#define P_TECHNIQUE       "technique"
+
+// Ist die Waffe balanciert oder nicht?
+#define P_BALANCED_WEAPON "balanced_weapon"
+
+/* ---------- Zugehoerige Defines ---------- */
+
+// Techniken fuer P_TECHNIQUE
+#define TQ_THRASH         "Schlagtechnik"
+#define TQ_THRUST         "Stosstechnik"
+#define TQ_STROKE         "Streichtechnik"
+#define TQ_WHIP           "Peitschtechnik"
+
+// Defines fuer balanciert/unbalanciert
+#define WP_BALANCED       1
+#define WP_UNBALANCED     -1
+
+/* ---------- Parierwaffen ----------- */
+
+#define P_PARRY         "parry"        // definiert eine Parierwaffe
+#define P_PARRY_WEAPON  "parry_weapon" // Welche Parierwaffe wird benutzt?
+
+/* -------------------- Defines fuer Parierwaffen -------------------- */
+
+#define PARRY_NOT  0
+#define PARRY_TOO  1
+#define PARRY_ONLY 2
+
+#endif // __WEAPON_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __WEAPON_H_PROTO__
+#define __WEAPON_H_PROTO__
+
+// prototypes
+// no prototypes
+
+#endif // __WEAPON_H_PROTO__
+
+#endif	// NEED_PROTOYPES
diff --git a/sys/weapon/description.h b/sys/weapon/description.h
new file mode 100644
index 0000000..999e460
--- /dev/null
+++ b/sys/weapon/description.h
@@ -0,0 +1,36 @@
+// MorgenGrauen MUDlib
+//
+// weapon/description.h -- Description for damaged Weapons
+//
+// $Id: description.h 6081 2006-10-23 14:12:34Z Zesstra $
+
+#ifndef __WEAPON_DESCRIPTION_H__
+#define __WEAPON_DESCRIPTION_H__
+
+// properties
+#define P_DAM_DESC           "dam_desc"
+
+// Default-Messages
+#define DFLT_DAM_DESC ({"ist in einem hervorragenden Zustand",\
+                        "ist in einem sehr guten Zustand",\
+                        "ist in einem guten Zustand",\
+                        "sieht noch ganz brauchbar aus",\
+                        "wirkt etwas abgenutzt",\
+                        "wirkt stark abgenutzt",\
+                        "ist gerade noch zu gebrauchen",\
+                        "wird bald schrottreif sein",\
+                        "ist nur noch Schrott" })
+
+#endif // __WEAPON_DESCRIPTION_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __WEAPON_DESCRIPTION_H_PROTO__
+#define __WEAPON_DESCRIPTION_H_PROTO__
+
+// prototypes
+string dam_descr();
+
+#endif // __WEAPON_DESCRIPTION_H_PROTO__
+
+#endif // // NEED_PROTOYPES
diff --git a/sys/werliste.h b/sys/werliste.h
new file mode 100644
index 0000000..adf1810
--- /dev/null
+++ b/sys/werliste.h
@@ -0,0 +1,11 @@
+#ifndef ___WER_LISTE_H__
+#define ___WER_LISTE_H__
+
+#define WHO_SHORT     0x01
+#define WHO_VERTICAL  0x02
+#define WHO_ALPHA     0x04
+
+// Aus Spielersicht darstellen, auch wenn der Aufrufende Magier ist
+#define WHO_PLAYER_VIEW   0x08
+
+#endif // __WER_LISTE_H__
diff --git a/sys/wizlist.h b/sys/wizlist.h
new file mode 100644
index 0000000..629bac7
--- /dev/null
+++ b/sys/wizlist.h
@@ -0,0 +1,22 @@
+#ifndef LPC_WIZLIST_H_
+#define LPC_WIZLIST_H_ 1
+
+/* Indices returned by wizlist_info()
+ */
+
+#define WL_NAME           0  /* Wizard name */
+#define WL_COMMANDS       1  /* Number of commands executed */
+#define WL_COST           2  /* Weighted evalcost spent on this wizard */
+#define WL_GIGACOST       3  /* Weighted giga-evalcost spent on this wizard */
+#define WL_TOTAL_COST     4  /* Total evalcost spent on this wizard */
+#define WL_TOTAL_GIGACOST 5  /* Total giga-evalcost spent on this wizard */
+#define WL_HEART_BEATS    6  /* Heartbeats spent on this wizard */
+#define WL_CALL_OUT       7  /* unimplemented */
+#define WL_ARRAY_TOTAL    8  /* Arrays accounted for */
+#define WL_MAPPING_TOTAL  9  /* Mappings accounted for */
+#define WL_STRUCT_TOTAL  10  /* Struct elements accounted for */
+#define WL_EXTRA         11  /* Extra Wizinfo, if set */
+
+#define WL_SIZE  12  /* Number of entries */
+
+#endif /* LPC_WIZLIST_H_ */
diff --git a/sys/www.h b/sys/www.h
new file mode 100644
index 0000000..e83a659
--- /dev/null
+++ b/sys/www.h
@@ -0,0 +1,90 @@
+// MorgenGrauen MUDlib
+//
+// www.h -- World Wide Web Services
+//
+// $Id: www.h 7724 2011-01-05 22:32:26Z Zesstra $
+
+// how do you spell your mud name
+#ifndef MUDNAME
+# define MUDNAME        "MorgenGrauen"
+#endif
+
+// Pathnames to different services
+// INETD -- the inet daemon
+#ifndef INETD
+# define INETD          "/secure/inetd"
+#endif
+
+#define FINGER(n)               "/p/daemon/finger"->finger_single(n)
+#define WHO             "/obj/werliste"->QueryWhoListe(0,0,1)
+
+// UDPPATH -- wherethe udp programs are
+#define UDPPATH         "/secure/udp"
+
+// the WWW request scheduler
+#define WWW             (UDPPATH+"/www")
+#define TIMEOUT         5
+
+// wher to log all WWW UDP Requests
+#define WWWLOG "/WWW"                   // used in log_file()
+
+// define MUDHOST, WWW SERVER address and the ICON URL
+#ifndef MUDHOST
+# define MUDHOST                "MG.Mud.DE"
+#else
+# undef MUDHOST
+# define MUDHOST           "MG.Mud.DE"
+#endif
+#define MUDUSER         "mud"
+#define SERVER          "mg.mud.de"
+#define ICONS           "/icons"
+#define MUDWWW          "/cgi-bin/mudwww"
+
+// define the address of the MUD Host
+#define HOMEPAGE        "http://"+SERVER+"/"
+#define MUDMAIL         "mailto:"+MUDUSER+"@"+MUDHOST
+
+// Request Syntax tokens
+#define REQ     "REQ"           // TYPE of REQuest
+
+// The WWW Newsreader
+# define R_NEWS     "news"              // - we would like to read news
+#  define GROUP       "GROUP"   //   * which newsgroup
+#  define ARTICLE     "ARTICLE" //   * which article
+
+// The WWW MUD Walker
+# define R_WALK     "walk"              // - or maybe walk around a bit
+#  define ROOM        "ROOM"    //   * ROOM to enter
+#  define DETAIL      "DETAIL"  //   * DETAIL to examine
+
+// The WWW Finger Request
+# define R_FINGER   "finger"    // - finger someone
+#  define USER        "USER"    //   * USER to retrieve info from
+
+// The WWW Wholist Request
+# define R_WHO      "who"               // - get the wholist
+
+// The WWW Intermud Gateway
+# define R_INTERMUD "intermud"  // - intermud communication request
+#  define IMUD        "IMUD"    //   * The MUD to request info from
+#  define TYPE        "TYPE"    //   * The TYPE of Request
+#  define IDATA       "DATA"    //   * extra DATA to aid request
+#  define PAGE        "PAGE"    //   * Alphabetical pages of muds
+
+#define BACK    "BACK"          // PAGE to go BACK to
+
+#ifndef MUDNAME
+# define MUDNAME "TestMUD"
+#endif /* MUDNAME */
+
+// Property specific defines
+#define P_WWWINFO      "wwwinfo"
+
+// The error message to view in any case
+#define ERROR(str)      "<H1>Ein Fehler ist aufgetreten!</H1><HR>"+str
+
+// debugging (change name to your own!)
+#define DNAME   "hate"
+#define DEBUG(str) if(find_player(DNAME)) \
+                     tell_object(find_player(DNAME), sprintf("%O\n", str))
+//#undef DEBUG
diff --git a/sys/xml.h b/sys/xml.h
new file mode 100644
index 0000000..e630638
--- /dev/null
+++ b/sys/xml.h
@@ -0,0 +1,10 @@
+#ifndef XML_H__
+#define XML_H__ 1
+
+#define XML_TAG_NAME                    0 /* Name of the current tag */
+#define XML_TAG_ATTRIBUTES              1 /* Atttributes of the current tag */
+#define XML_TAG_CONTENTS                2 /* Contents of the current tag */
+
+#define XML_TAG_SIZE                    3
+
+#endif