Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/std/living/clothing.c b/std/living/clothing.c
new file mode 100644
index 0000000..56aff44
--- /dev/null
+++ b/std/living/clothing.c
@@ -0,0 +1,96 @@
+// MorgenGrauen MUDlib
+//
+// living/clothing.c -- Modul fuer Bekleidungsfragen. ;-)
+//
+// $Id: armour.c,v 3.8 2003/08/25 09:36:04 Rikus Exp $
+#pragma strong_types
+#pragma save_types
+#pragma range_check
+#pragma no_clone
+#pragma pedantic
+
+#define NEED_PROTOTYPES
+#include <thing/properties.h>
+#undef NEED_PROTOTYPES
+#include <living/clothing.h>
+#include <living/combat.h>
+#include <armour.h>
+
+protected void create() {
+  SetProp(P_CLOTHING, ({}));
+  Set(P_CLOTHING, PROTECTED, F_MODE_AS);
+}
+
+public object *FilterClothing(closure filterfun, varargs mixed* extra) {
+  if (!closurep(filterfun))
+    return ({});
+  return apply(#'filter, QueryProp(P_CLOTHING), filterfun, extra);
+}
+
+public object *FilterArmours(closure filterfun, varargs mixed* extra) {
+  if (!closurep(filterfun))
+    return ({});
+  return apply(#'filter, QueryProp(P_ARMOURS)-({0}), filterfun, extra);
+}
+
+public int WearClothing(object ob) {
+  object *clothing = QueryProp(P_CLOTHING);
+  if (member(clothing, ob) != -1)
+    return 0;
+  clothing += ({ob});
+  SetProp(P_CLOTHING, clothing);
+  return 1;
+}
+
+public int WearArmour(object ob) {
+  if (!VALID_ARMOUR_TYPE(ob->QueryProp(P_ARMOUR_TYPE)))
+    return 0;
+
+  object *armours = QueryProp(P_ARMOURS);
+  if (member(armours, ob) != -1)
+    return 0;
+
+  armours += ({ob});
+  SetProp(P_ARMOURS, armours);
+  return 1;
+}
+
+public int Wear(object ob) {
+  // reihenfolge ist wichtig! Ruestung sind _auch_ Kleidung, aber Kleidung
+  // keine Ruestung.
+  if (ob->IsArmour())
+    return WearArmour(ob);
+  else if (ob->IsClothing())
+    return WearClothing(ob);
+  return 0;
+}
+
+public int UnwearClothing(object ob) {
+object *clothing = QueryProp(P_CLOTHING);
+  if (member(clothing, ob) == -1)
+    return 0;
+  clothing -= ({ob});
+  SetProp(P_CLOTHING, clothing);
+  return 1;
+}
+
+public int UnwearArmour(object ob) {
+  object *armours = QueryProp(P_ARMOURS);
+  if (member(armours, ob) == -1)
+    return 0;
+
+  armours -= ({ob});
+  SetProp(P_ARMOURS, armours);
+  return 1;
+}
+
+public int Unwear(object ob) {
+  // reihenfolge ist wichtig! Ruestung sind _auch_ Kleidung, aber Kleidung
+  // keine Ruestung.
+  if (ob->IsArmour())
+    return UnwearArmour(ob);
+  else if (ob->IsClothing())
+    return UnwearClothing(ob);
+  return 0;
+}
+