Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/d/seher/haeuser/traghaus.c b/d/seher/haeuser/traghaus.c
new file mode 100644
index 0000000..f79fb36
--- /dev/null
+++ b/d/seher/haeuser/traghaus.c
@@ -0,0 +1,187 @@
+/*
+ * traghaus.c -- Wie suess! ;)
+ *
+ * (c) 1994 Boing@MorgenGrauen
+ * Be- und ueberarbeitet von Jof und Wargon.
+ *
+ * HINWEIS: Um einen Bauplatz zu kennzeichnen, muss dort die
+ * Propertie "haus_erlaubt" auf 1 gesetzt werden!
+ *
+ * 17.11.2003 Feigling - Bugfix: Fehlenden Regionsmagier abgefangen
+ *
+ * $Date: 1994/10/24 08:25:18 $
+ * $Revision: 1.5 $
+ * $Log: traghaus.c,v $
+ * Revision 1.5 1994/10/24 08:25:18 Wargon
+ * Macht jetzt Gebrauch von VERWALTER->Unbebaubar() und dem geaenderten
+ * VERWALTER->NeuesHaus().
+ *
+ * Revision 1.4 1994/10/19 10:03:29 Wargon
+ * Hinweis eingebaut (s.o.)
+ * Beschraenkung auf ein Seherhaus pro Raum rausgenommen.
+ *
+ * Revision 1.3 1994/10/09 20:17:03 Wargon
+ * In blas() haus->Save() eingefuegt.
+ *
+ * Revision 1.2 1994/10/07 22:13:17 Wargon
+ * Etwas aufgeraeumt.
+ * Text beim Giessen geaendert.
+ * Falls in dem Raum schon ein Seherhaus steht, kann kein weiteres mehr
+ * aufgestellt werden.
+ *
+ * Revision 1.1 1994/10/07 14:40:54 Wargon
+ * Initial revision
+ *
+ */
+#include <properties.h>
+#include <moving.h>
+#include "haus.h"
+
+inherit "std/thing";
+
+static string owner;
+
+void create()
+{
+ if (!clonep(this_object())) return;
+ ::create();
+ owner = getuid(this_player());
+ SetProp(P_SHORT, "Ein tragbares Instanthaus");
+ SetProp(P_LONG, "Dies ist Dein Haus. Du kannst es abstellen und giessen, dann wird daraus ein\n\
+richtiges Seherhaus, in das Du sofort einziehen kannst. Es ist allerdings\n\
+noetig, dass der Magier, der den Raum erschaffen hat, in dem Du es abstellen\n\
+moechtest, dem Bau eines Seherhauses in diesem Raum zustimmt.\n");
+ SetProp(P_NAME, "Haus");
+ SetProp(P_NEVERDROP, 1);
+ SetProp(P_GENDER, 0);
+ AddId(({"haus", "sehe\rhaus"}));
+ SetProp(P_VALUE, 0);
+ SetProp(P_WEIGHT, 0);
+ AddCmd(({"gies", "giess", "giesse"}), "blas");
+}
+
+string SetOwner(string o)
+{
+ return owner = o;
+}
+
+string QueryOwner()
+{
+ return owner;
+}
+
+string get_mag(mixed dest)
+{
+ mapping reg;
+ string *mag;
+ string ret;
+ int i, j;
+
+ catch(reg = "/obj/mliste"->QueryProp("Magierliste"));
+
+ if (mappingp(reg) && member(reg, getuid(dest)))
+ mag = reg[getuid(dest)];
+ else
+ return capitalize(getuid(dest));
+
+
+ if (!sizeof(mag))
+ return capitalize(getuid(dest)); //Hinzugefuegt Feigling
+
+ if ((i=sizeof(mag)) == 1)
+ return capitalize(mag[0]);
+ else {
+ ret = capitalize(mag[0]);
+ j = 1;
+ while (j < i-1) {
+ ret += ", "+capitalize(mag[j]);
+ j++;
+ }
+ ret += " und "+capitalize(mag[<1]);
+ }
+ return ret;
+}
+
+int move(mixed dest, int method)
+{
+ int nix;
+
+ if ((method & M_GIVE) == M_GIVE)
+ {
+ write("Dein sauer verdientes Seherhaus weggeben? NIEMALS!\n");
+ return 0;
+ }
+ if ((method & M_PUT) == M_PUT)
+ {
+ if ((nix = VERWALTER->Unbebaubar(dest)))
+ {
+ write( ({ "Hier ist das Bauen von Haeusern untersagt!\n",
+ "Du kannst das Haus nicht in geschlossenen Raeumen abstellen.\n",
+ "Dieser Platz ist nicht als Bauplatz gekennzeichnet, Du solltest mal\nmit dem verantwortlichen Magier reden. Die Zustaendigkeit fuer diesen Ort\nliegt bei "+get_mag(dest)+".\n"
+ })[nix-1]);
+ return 0;
+ }
+ return ::move(dest, method);
+ }
+ if ((method & M_GET) == M_GET)
+ {
+ if (getuid(this_player())!=owner)
+ {
+ write("Dies ist nicht Dein Haus.\n");
+ return 0;
+ }
+ }
+ return ::move(dest, method);
+}
+
+int blas(string str)
+{
+ object haus;
+
+ notify_fail("Was moechtest Du giessen?\n");
+ if (!str || str!="haus")
+ return 0;
+ if (living(environment()))
+ {
+ write("Du solltest das Haus vielleicht erst mal abstellen.\n");
+ return 1;
+ }
+ if (getuid(this_player())!=owner)
+ {
+ write("Machst Du immer fremde Haeuser nass?\n");
+ return 1;
+ }
+ if (!environment()->QueryProp(P_HAUS_ERLAUBT))
+ {
+ write("Dieser Platz ist nicht als Bauplatz gekennzeichnet, Du solltest mal\n\
+mit dem entsprechenden Magier reden.\nFrag mal "+capitalize(getuid(environment()))+".\n");
+ return 0;
+ }
+ write( "Voller Vorfreude greifst Du nach Deiner Giesskanne und beginnst, Dein mueh-\n\
+sam erspartes Instanthaus zu begiessen. Moment... Giesskanne? Reichlich ver-\n\
+dutzt schaust Du auf die kleine gruene Kanne in Deinen Haenden. Wo mag sie\n\
+nur hergekommen sein? Doch kaum erreichen die ersten Tropfen das Instanthaus,\n\
+wird Deine Aufmerksamkeit auch schon wieder von der Kanne abgelenkt:\n\
+Das Trockenhaus beginnt zu schaeumen und sich ueber den Boden auszubreiten.\n\
+In dem Schaum entstehen und vergehen Waende, Decken und Fenster, als ob sie\n\
+sich noch nicht recht entscheiden koennten, wie sich sich zu einem Ganzen zu-\n\
+sammenfuegen sollen.\n\
+Dann erhebt sich dort, wo Du das Trockenhaus abgestellt hattest, eine grosse,\n\
+schaumige Blase! Sie wird groesser und groesser, bis sie Dich schliesslich\n\
+streift. Dabei platzt sie mit einem leisen *PLOPP* - und es bleibt ein be-\n\
+zugsfertiges Seherhaus zurueck!\n\
+Du wirfst noch einmal einen verstohlenen Blick auf die Giesskanne, musst aber\n\
+feststellen, dass sie verschwunden ist und auch verschwunden bleibt.\n" );
+
+ say(capitalize((string)(this_player()->name()))+" verwandelt mit einem Tropfen Wasser "+
+ this_player()->QueryPossPronoun(this_object(), WEN) + " Haus.\n");
+
+ VERWALTER->NeuesHaus(owner, environment(this_object()));
+ remove();
+ return 1;
+}
+
+static string _query_autoloadobj()
+{
+ return owner;
+}