Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/weapon/description.c b/std/weapon/description.c
new file mode 100644
index 0000000..aad2938
--- /dev/null
+++ b/std/weapon/description.c
@@ -0,0 +1,108 @@
+// MorgenGrauen MUDlib
+//
+// weapon/description.c -- weapon description handling
+//
+// $Id: description.c 6475 2007-09-19 20:56:40Z Zesstra $
+
+#pragma strict_types
+#pragma save_types
+#pragma no_clone
+#pragma pedantic
+#pragma range_check
+
+//#define NEED_PROTOTYPES
+
+#include <thing/properties.h>
+#include <thing/description.h>
+#include <properties.h>
+#include <combat.h>
+#include <thing/material.h>
+
+inherit "/std/thing/description";
+
+void create()
+{
+  ::create();
+  SetProp(P_DAM_DESC,DFLT_DAM_DESC);
+}
+
+string dam_descr()
+{   string re;
+    mixed desc;
+    int max,dam,pos;
+
+    if (!QueryProp(P_NAME) || !QueryProp(P_DAMAGED) || !QueryProp(P_SHORT) ||
+        !(desc=QueryProp(P_DAM_DESC)) || (!stringp(desc) && !pointerp(desc)))
+        return "";
+    re = capitalize(name(WER,2))+" ";
+    max = QueryProp(P_WC)+(dam=QueryProp(P_DAMAGED));
+    // Bei reinen Parierwaffen den AC als max nehmen!
+    if (QueryProp(P_PARRY)==PARRY_ONLY)
+    {
+	    max=QueryProp(P_AC)+dam;
+    }
+    if (stringp(desc))
+        return (dam>(max/2))?(re+desc+".\n"):"";
+    pos = (sizeof(desc)*dam/max);
+    // Sonst koennen Parierwaffen, die Schrott sind, buggen
+    if (pos==sizeof(desc)) pos--;
+    if (stringp(desc[pos]))
+        return (re+desc[pos]+".\n");
+    return "";
+}
+
+string short()
+{   string s;
+
+    if (!(s=QueryProp(P_SHORT)))
+        return 0;
+    return s + (QueryProp(P_WIELDED)?" (gezueckt).\n":".\n");
+}
+
+varargs string long()
+{   
+    return (process_string(QueryProp(P_LONG)||"") + (dam_descr()||""));
+}
+
+mixed _query_size() {
+  mixed res, wt;
+  if (intp(res=Query(P_SIZE)) && (res>0))
+    return res;
+  wt=QueryProp(P_WEAPON_TYPE);
+  switch (wt) {
+    case WT_SWORD  : return 100;  // default: Langschwert
+    case WT_AXE    : return  80;
+    case WT_CLUB   : return  80;
+    case WT_SPEAR  : return 180;
+    case WT_KNIFE  : return  20;
+    case WT_WHIP   : return 200;
+    case WT_STAFF  : return 150;
+  }
+  return 10;  // alles andere
+}
+
+mapping _query_material() {
+  mixed res,wt;
+
+  if (mappingp(res=Query(P_MATERIAL)))
+    return res;
+  wt=QueryProp(P_WEAPON_TYPE);
+  switch(wt) {
+    case WT_SWORD:
+    return ([MAT_MISC_METAL:100]);
+    case WT_KNIFE:
+    return ([MAT_MISC_METAL:80,MAT_MISC_WOOD:20]);
+    case WT_AXE:
+    return ([MAT_MISC_METAL:50,MAT_MISC_WOOD:50]);
+    case WT_SPEAR:
+    return ([MAT_MISC_METAL:20,MAT_MISC_WOOD:80]);
+    case WT_STAFF:
+    case WT_CLUB:
+    return ([MAT_MISC_WOOD:100]);
+  }
+  return ([MAT_MISC_METAL:100]);
+}
+
+// P_BALANCED_WEAPON und P_TECHNIQUE sind mangels umgesetztem Konzept durch
+// EM-Beschluss fuer obsolet erklaert worden. Zesstra. 26.06.2007
+