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
+