Added public files

Roughly added all public files. Probably missed some, though.
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__
+