Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/d/seher/haeuser/raum0.c b/d/seher/haeuser/raum0.c
new file mode 100644
index 0000000..0282818
--- /dev/null
+++ b/d/seher/haeuser/raum0.c
@@ -0,0 +1,173 @@
+//
+//  raum0.c  -- Der Eingangsraum des Hauses
+//
+//  Grundobjekt (c) 1994 Boing@MorgenGrauen
+//  Abschliessen und Rauswerfen von Jof
+//  Fuer Aenderungen ab dem 06.10.94 verantwortlich: Wargon
+//  Fuer Aenderungen ab dem 01.01.04 verantwortlich: Vanion
+//
+// $Date: 1996/02/21 18:13:41 $
+// $Revision: 2.5 $
+/* $Log: raum0.c,v $
+ * Revision 2.5  1996/02/21  18:13:41  Wargon
+ * *** empty log message ***
+ *
+ * Revision 2.4  1995/06/29  08:54:57  Wargon
+ * Neuer Befehl: "spion" zeigt, wer vor der Tuer steht.
+ *
+ * Revision 2.3  1995/06/28  08:59:25  Wargon
+ * init() meldet dem Hausbesitzer Spielerrueckmeldungen.
+ *
+ * Revision 2.2  1995/02/22  21:30:12  Wargon
+ * "uebersicht" jetzt auch fuer Wargon ueberall moeglich. ;)
+ *
+ * Revision 2.1  1995/02/04  14:31:47  Wargon
+ * AddItem(truhe) rausgenommen. Wird nun in Load() erledigt (siehe raum.c).
+ *
+ * Revision 2.0  1995/02/01  20:38:24  Wargon
+ * Von raum.c abgekoppelt.
+ *
+ */
+/*
+Letzte Aenderung: Vanion, 29. Feb 2004
+                 - "uebersicht erlaubt" zeigt nun nur an, wer erlaubt ist.
+*/
+
+#include "haus.h"
+#include <wizlevels.h>
+#include <properties.h>
+#include <moving.h>
+
+inherit RAUM;
+
+void create()
+{
+  if (!clonep(this_object()) && object_name(this_object())==(PATH+"raum0")) {
+    set_next_reset(-1);
+    return;
+  }
+  ::create();
+
+  Set(H_REPORT, 0);
+  Set(H_REPORT, SAVE, F_MODE);
+
+  AddCmd( "erlaube", "erlauben" );
+  AddCmd( "verbiete", "verbieten" );
+  AddCmd( "oeffne", "oeffne" );
+  AddCmd( ({ "schliess", "schliesse" }), "schliesse" );
+  AddCmd( "spion", "spion" );
+}
+
+void notifyRep(int r)
+{
+  printf("Seit Deinem letzten Besuch gab es %s Rueckmeldung%s von anderen Spielern\nin Deinem Haus.\n", (r==1) ? "eine" : to_string(r), (r==1) ? "" : "en");
+}
+
+void init()
+{
+  int r;
+
+  ::init();
+
+  if (tp_owner_check() && r=Query(H_REPORT)) {
+    call_out("notifyRep", 0, r);
+    Set(H_REPORT, 0);
+    Save();
+  }
+}
+
+int oeffne(string str)
+{
+  return (HAUSNAME(QueryOwner()))->oeffne(str);
+}
+
+int schliesse(string str)
+{
+  return (HAUSNAME(QueryOwner()))->schliesse(str);
+}
+
+varargs int
+uebersicht(string str, string pre)
+{
+  if ( !(tp_owner_check() || IS_MAINTAINER(this_player())) )
+    return 0;
+
+  pre = "\n"+arr_out(VERWALTER->HausProp(QueryOwner(), HP_ALLOWED),
+	    "Nur Du kannst Dein Haus auf- und abschliessen.\n",
+	    "Du und %s koennen Dein Haus auf- und abschliessen.\n",
+	    "Neben Dir koennen noch folgende Personen Dein Haus auf- und abschliessen:\n", 1 );
+
+  if (str=="erlaubt")
+  {
+     this_player()->More(pre);
+     return 1;
+  }
+  
+  return ::uebersicht(str, pre);
+}
+
+int
+erlauben(string str)
+{
+  string *erlaubt;
+
+  if (!tp_owner_check()) {
+    notify_fail( "Du kannst hier gar nichts erlauben!\n" );
+    return 0;
+  }
+
+  if (!(str=UP_ARGS(this_player())) || str == "") {
+    notify_fail( "Wem willst denn das Auf- und Abschliessen Deines Hauses erlauben?\n" );
+    return 0;
+  }
+
+  erlaubt = VERWALTER->Erlaube(QueryOwner(),
+			       map((regexplode(str, "[, ]")-({","," ",""})), #'capitalize));
+  arr_out(erlaubt, "Nur Du kannst Dein Haus auf- und abschliessen.\n",
+		   "Du und %s koennen Dein Haus auf- und abschliessen.\n",
+		   "Neben Dir koennen noch folgende Personen Dein Haus auf- und abschliessen:\n" );
+  return 1;
+}
+
+int
+verbieten(string str)
+{
+  string *erlaubt;
+
+  if (!tp_owner_check()) {
+    notify_fail( "Du kannst hier gar nichts verbieten!\n" );
+    return 0;
+  }
+
+  if (!(str=UP_ARGS(this_player())) || str == "") {
+    notify_fail( "Wem willst denn das Auf- und Abschliessen Deines Hauses verbieten?\n" );
+    return 0;
+  }
+  erlaubt = VERWALTER->Verbiete(QueryOwner(),
+				map((regexplode(str, "[, ]")-({","," ",""})), #'capitalize));
+  arr_out(erlaubt, "Nur Du kannst Dein Haus auf- und abschliessen.\n",
+		   "Du und %s koennen Dein Haus auf- und abschliessen.\n",
+		   "Neben Dir koennen noch folgende Personen Dein Haus auf- und abschliessen:\n" );
+  return 1;
+}
+
+int
+spion(string str)
+{
+  object env, *inv;
+  string ow;
+
+  ow = QueryOwner();
+  str = VERWALTER->HausProp(ow, HP_ENV);
+  call_other(str, "???");
+  env = find_object(str);
+  inv = all_inventory(env);
+  if (env = present("\n"+ow+"haus", env))
+    inv -= ({ env });
+  if (sizeof(inv))
+    printf( "Vor dem Haus siehst Du:\n%s", make_invlist(this_player(), inv));
+  else
+    printf( "Vor dem Haus ist nichts und niemand zu sehen.\n" );
+
+  return 1;
+}