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;
+}