Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/d/seher/haeuser/moebel/waffenschrank.c b/d/seher/haeuser/moebel/waffenschrank.c
new file mode 100644
index 0000000..e36abc9
--- /dev/null
+++ b/d/seher/haeuser/moebel/waffenschrank.c
@@ -0,0 +1,220 @@
+//--------------------------------------------------------------------------------
+// Name des Objects:    Waffenschrank
+// Letzte Aenderung:    22.03.2001
+// Magier:              Swift
+//--------------------------------------------------------------------------------
+/* Changelog
+   * 21.05.2007, Zesstra
+     Kampfstaebe auf Hinweis von tassram ergaenzt.
+*/
+#pragma strong_types,rtt_checks
+
+#include "schrankladen.h"
+#include <ansi.h>
+#include <class.h>
+inherit LADEN("swift_std_container");
+
+#define VERSION_OBJ "6"
+
+string strall;
+
+protected void create()
+{
+  if (!clonep(TO)) return;
+  swift_std_container::create();
+  SetProp(P_SHORT, "Ein Waffenschrank");
+  SetProp(P_LONG, BS(
+     "Mit den Waffen, die in diesen massiven Holzschrank passen, koenntest "
+    +"Du ein ganzes Soeldnerheer ausruesten. Fuer jede Waffengattung gibt "
+    +"es einen eigenen Platz, damit man auch alles gleich findet, sollte "
+    +"man es brauchen.")+"@@cnt_status@@");
+  AddId(({"waffenschrank", "holzschrank", "schrank"}));
+  SetProp("cnt_version_obj", VERSION_OBJ);
+  SetProp(P_NAME, "Waffenschrank");
+  SetProp(P_GENDER, MALE);
+  SetProp(P_WEIGHT, 5000);         // Gewicht 5 Kg
+  SetProp(P_MAX_WEIGHT, 1000000);  // Es passen fuer 1000 kg Sachen rein.
+  SetProp(P_WEIGHT_PERCENT, 100);  // Dafuer macht er auch nix leichter :)
+  SetProp(P_MAX_OBJECTS, 100);     // Mehr sollte nicht sein, lt. Tiamak.
+  SetProp(P_VALUE, 0);             // Kein materieller Wert. Ist eh nicht verkaufbar.
+  SetProp(P_NOBUY, 1);             // Wird im Laden zerstoert, falls er verkauft wird.
+  SetProp(P_NOGET, "Das geht nicht. "+Name(WER,1)+" haftet wie magisch am Boden.\n");
+  SetProp(P_MATERIAL, ({MAT_MISC_WOOD, MAT_MISC_MAGIC}) );
+  SetProp(P_INFO, "Versuchs mal mit: \"skommandos "+QueryProp(P_IDS)[1]+"\" !\n");
+  SetProp("obj_cmd", "sliste [Objekt-Id] [Waffentyp|\"alles\"]\n"
+    +"  Waffentypen: Schwerter, Speere, Aexte, Keulen, Kampfstaebe, Messer, Peitschen,\n"
+    +"               Fernwaffen, Munition, Sonstiges, Unzuordbar\n");
+
+  AD(({"platz"}), BS("Der Schrank bietet Platz fuer jede erdenkliche "
+    +"Waffengattung."));
+
+  AddCmd(({"sliste"}), "auflistung");
+}
+
+varargs int PreventInsert(object ob)
+{
+  // Keine Waffe? Hat in diesem Container nix verloren!
+  if( !ob->QueryProp(P_WEAPON_TYPE) && !ob->QueryProp(P_WC) &&
+      !ob->id("\nBumerang") && !ob->is_class_member(CL_AMMUNITION) &&
+      !ob->id("\ngorseilpfeil") )
+  {
+    write( BS("In "+name(WEN,1)+" kannst Du nur Waffen + Munition legen!"));
+    return 1;
+  }
+  else
+    return ::PreventInsert(ob);
+}
+
+int auflistung2(string was, string nf_str1, string nf_str2, int alles)
+{
+  string obshort, suche, *strs;
+  object *obs;
+  int i;
+  mapping suchobs;
+  switch(was)
+  {
+    case "munition"   : suche=WT_AMMU; break;
+    case "aexte"      : suche=WT_AXE; break;
+    case "keulen"     : suche=WT_CLUB; break;
+    case "messer"     : suche=WT_KNIFE; break;
+    case "fernwaffen" : suche=WT_RANGED_WEAPON; break;
+    case "speere"     : suche=WT_SPEAR; break;
+    case "schwerter"  : suche=WT_SWORD; break;
+    case "peitschen"  : suche=WT_WHIP; break;
+    case "sonstiges"  : suche=WT_MISC; break;
+    case "kampfstaebe": suche=WT_STAFF; break;
+    case "unzuordbar" : suche="unzuordbar"; break;
+    default           : write("Fehler: Ungueltiger Waffentyp. "
+                             +"Folgende Typen gibt es:\n"+nf_str1+nf_str2);
+                        return 1; break;
+  }
+  obs=all_inventory();
+  suchobs=([]);
+  for(i=0;i<sizeof(obs);i++)
+  {
+    obshort=to_string(obs[i]->QueryProp(P_SHORT));
+    if(obshort=="Ein Bumerang@@fliegt@@")
+      obshort="Ein Bumerang";
+    else if(obshort=="Nichts besonderes" || obshort=="0") // keine P_SHORT ?
+      obshort=obs[i]->Name(WER);     //   Hoffen wir mal dass das Obj. nen Namen hat.
+    if(obs[i]->QueryProp(P_WEAPON_TYPE)==suche ||  // Gesuchter WeaponType gefunden...
+       (!obs[i]->QueryProp(P_WEAPON_TYPE) && suche=="unzuordbar") )
+    {
+      if(suchobs[obshort])                         // P_SHORT des Obj. schon im mapping?
+      {
+        if( obs[i]->QueryProp(P_AMOUNT) )
+          suchobs[obshort]+=obs[i]->QueryProp(P_AMOUNT); //   Dann den Zaehler um Amount hoch!
+        else
+          suchobs[obshort]+=1;                     //   Dann den Zaehler um 1 hoch!
+      }
+      else
+      {
+        if( obs[i]->QueryProp(P_AMOUNT) )
+          suchobs+=([obshort: obs[i]->QueryProp(P_AMOUNT)]);
+        else
+          suchobs+=([obshort: 1]);
+      }
+    }
+  }
+  strs=m_indices(suchobs);
+  if(sizeof(strs))
+  {
+    if(!alles)
+    {
+      if(suche=="unzuordbar")
+        strall+=Name(WER,1)+" enthaelt folgende nicht zuordbare Waffen:\n";
+      else
+        strall+=Name(WER,1)+" enthaelt folgende "+CAP(was)+":\n";
+      strall+="------------------------------------------------------------\n";
+    }
+    else
+    {
+      if(suche=="unzuordbar")
+        strall+=ANSI_BOLD+"=== Nicht zuordbare Waffen:\n"+ANSI_NORMAL;
+      else
+        strall+=ANSI_BOLD+"=== "+CAP(was)+":\n"+ANSI_NORMAL;
+    }
+    for(i=0;i<sizeof(strs);i++)
+    {
+      if(suchobs[strs[i]] > 1)
+        strall+=strs[i]+". ("+suchobs[strs[i]]+")\n";
+      else
+        strall+=strs[i]+".\n";
+    }
+  }
+  else
+    if(!alles)
+      strall+=Name(WER,1)+" enthaelt keine "+CAP(was)+"!\n";
+  return 1;
+}
+
+int auflistung(string str)
+{
+  string *strs, ob_id, was, nf_str1,nf_str2;
+  strall="";
+  nf_str1="   (Schwerter, Speere, Aexte, Keulen, Kampfstaebe, Messer, Peitschen,\n"
+         +"    Fernwaffen, Munition, Sonstiges, Unzuordbar)\n";
+  nf_str2="Syntax: sliste [Objekt-Id] [Waffentyp]\n"
+         +"Bsp.:   sliste "+QueryProp(P_IDS)[1]+" "+"schwerter\n"
+         +"        sliste "+QueryProp(P_IDS)[1]+" alles\n";
+  notify_fail("Fehler: Ohne Parameter klappt das nicht.\n"+nf_str2);
+  if(!str) return 0;
+  if(present(str)==TO)   // Ueberpruefe, ob dieses Objekt gemeint ist!
+  {
+    write("Fehler: Es fehlt ein Waffentyp. Folgende Typen gibt es:\n"
+         +nf_str1+nf_str2);
+    return 1;
+  }
+  strs=old_explode(str, " ");
+  notify_fail("Fehler: Du musst eine gueltige Objekt-Id angeben!\n"
+             +nf_str2);
+  if( sizeof(strs) < 2 ) return 0;   // Nur 1 Par. und der ist nicht die Objekt-Id
+  if( sizeof(strs) == 2 )   // Anzahl Par. = 2
+  {
+    ob_id=strs[0];
+    was=strs[1];
+    if( IST_ZAHL(was) )     // Objekt-Id z.B. mit "schrank 2" angesprochen?
+      if(present(ob_id+" "+was)==TO)   // Falls dieses Objekt gemeint ist und kein 3. Par!
+      {
+        write("Fehler: Es fehlt ein Waffentyp. Folgende Typen gibt es:\n"
+              +nf_str1+nf_str2);
+        return 1;
+      }
+      else
+        return 0;
+  }
+  else if( sizeof(strs) == 3 )
+  {
+    ob_id=strs[0]+" "+strs[1];
+    was=strs[2];
+  }
+  else        // Anzahl erforderlicher Parameter ueberschritten!
+    return 0;
+  if(present(ob_id)!=TO)   // Ueberpruefe, ob auch dieses Objekt gemeint ist!
+    return 0;
+  if(QueryProp(P_CNT_STATUS)!=CNT_STATUS_OPEN)
+  {
+    write("Dazu muesste "+name(WER,1)+" geoeffnet sein.\n");
+    return 1;
+  }
+//--- Hier ist Parameterpruefung zu Ende.
+  was=LOWER(was);
+  if(was!="alles")
+    auflistung2(was, nf_str1, nf_str2, 0);
+  else
+  {
+    auflistung2("aexte", nf_str1, nf_str2, 1);
+    auflistung2("keulen", nf_str1, nf_str2, 1);
+    auflistung2("kampfstaebe", nf_str1, nf_str2, 1);
+    auflistung2("messer", nf_str1, nf_str2, 1);
+    auflistung2("speere", nf_str1, nf_str2, 1);
+    auflistung2("schwerter", nf_str1, nf_str2, 1);
+    auflistung2("peitschen", nf_str1, nf_str2, 1);
+    auflistung2("fernwaffen", nf_str1, nf_str2, 1);
+    auflistung2("munition", nf_str1, nf_str2, 1);
+    auflistung2("sonstiges", nf_str1, nf_str2, 1);
+    auflistung2("unzuordbar", nf_str1, nf_str2, 1);
+  }
+  TP->More(strall);
+  return 1;
+}