Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/d/seher/haeuser/bausparvertrag.c b/d/seher/haeuser/bausparvertrag.c
new file mode 100644
index 0000000..44d9976
--- /dev/null
+++ b/d/seher/haeuser/bausparvertrag.c
@@ -0,0 +1,155 @@
+/*
+ *  bausparvertrag.c -- Wir geben unsern Sehern ein Zuhause...
+ *
+ *  Grundversion von Jof, weiterbearbeitet von Wargon.
+ *
+ * $Date: 1994/12/17 15:56:11 $
+ * $Revision: 1.4 $
+ * $Log: bausparvertrag.c,v $
+ * Revision 1.4  1994/12/17  15:56:11  Wargon
+ * Etwas mehr Sicherheit gegen Zugriffe von aussen.
+ *
+ * Revision 1.3  1994/10/21  09:52:03  Wargon
+ * zerreissen eingebaut.
+ *
+ * Revision 1.2  1994/10/09  21:00:59  Wargon
+ * Laufzeit etc. ausgebaut, da das ueber den Block abgewickelt
+ * wird.
+ * Funktion Einzahlung() eingebaut (wird von der Bank aufgerufen).
+ *
+ * Revision 1.1  1994/10/09  20:49:28  Wargon
+ * Initial revision
+ *
+ */
+#pragma strong_types,rtt_checks
+
+#include "haus.h"
+#include <properties.h>
+#include <moving.h>
+
+inherit "/std/thing";
+
+protected void create()
+{
+  if (!clonep(this_object())) return;
+  ::create();
+  SetProp(P_SHORT,"Ein Bausparvertrag");
+  SetProp(P_NAME,"Bausparvertrag");
+  Set(P_AUTOLOADOBJ, ({0, V_EP}) );
+  Set(P_AUTOLOADOBJ, SECURED, F_MODE); // Sicher ist sicher...
+  SetProp(P_NODROP,1);
+  SetProp(P_NEVERDROP,1);
+  SetProp(P_ARTICLE,1);
+  SetProp(P_WEIGHT, 0);
+  SetProp(P_GENDER,1);
+  AddId( ({"bausparvertrag", "vertrag", "sehe\rvertrag"}) );
+  AddCmd("lies","lesen");
+  AddCmd( ({ "unterschreibe", "unterschreib" }), lambda( ({}),
+    ({#',, ({#'notify_fail, "Hier kannst Du den Vertrag nicht unterschreiben!\n" }),
+	   ({#'return, 0})
+    }) ) );
+  AddCmd( ({ "zerreiss", "zerreisse" }), lambda( ({ 'str }),
+    ({#',, ({#'notify_fail, "Was willst Du zerreissen?\n"}),
+	   ({#'?!, ({#'id, 'str}), ({#'return, 0}) }),
+	   ({#'=, 'blk, ({#'present, "\n block", ({#'this_player}) }) }),
+	   ({#'write, "Du zerreisst Deinen Vertrag.\n"}),
+	   ({#'write_file, PATH+"log/BANK.LOG", ({#'sprintf, "%s - Vertrag: %s zerriss ihn.\n",
+	       ({#'dtime, ({#'time}) }), ({#'getuid, ({#'this_player})})})}),
+	   ({#'?, 'blk, ({#'call_other, 'blk, "remove", 1}) }),
+	   ({#'remove, 1}),
+	   ({#'return, 1})
+    }) ) );
+}
+
+string _query_long()
+{
+  int max;
+
+  max = (Query(P_AUTOLOADOBJ)[1] & V_FAST) ? SUMME_S : SUMME_L;
+  if (Query(P_AUTOLOADOBJ)[1] & V_RAUM)
+    max = max * 4/10;
+  return sprintf(
+      "Dies ist ein Bausparvertrag. Du hast bisher %d (von %d) Punkten eingezahlt.\n",
+      QueryProp(P_AUTOLOADOBJ)[0], max);
+}
+
+#if 0
+int query_prevent_shadow(object ob)
+{
+  HLOG("SHADOW", sprintf("%s, von %O im Vertrag.\n", dtime(time())[5..], ob));
+  return 1;
+}
+#endif
+
+int lesen(string str)
+{
+  if (id(str))
+  {
+    if (Query(P_AUTOLOADOBJ)[1] & V_RAUM)
+      this_player()->More(PATH+"txt/vertrag_raum.txt",1);
+    else
+      this_player()->More(PATH+"txt/vertrag.txt",1);
+    return 1;
+  }
+  return 0;
+}
+
+int Einzahlung()
+{
+  int *al;
+  object env, po;
+
+  if (old_explode(object_name(po=previous_object()),"#")[0] != PATH+"sb_einzahlung") {
+    env = environment();
+    HLOG( (env ? getuid(env) : "BANK.LOG"), sprintf("Vertrag: Einzahlung von aussen! TI = %O, PO = %O\n", this_interactive(), previous_object()));
+  }
+  al = Query(P_AUTOLOADOBJ);
+  return Set(P_AUTOLOADOBJ, ({ al[0]+RATENHOEHE, al[1] }) )[0];
+}
+
+void Sign(int flag)
+{
+  Set(P_AUTOLOADOBJ, ({ Query(P_AUTOLOADOBJ)[0], flag }) );
+}
+
+public int move(mixed dest, int meth)
+{
+  object penv;
+  int ret;
+
+  penv = environment();
+  ret = ::move(dest, meth);
+
+  if (ret == 1 && (penv || (object_name(previous_object()) != PATH+"sb_antrag" &&
+			    object_name(previous_object()) != (stringp(dest) ? dest : object_name(dest)))))
+    HLOG("MOVING", sprintf("Vertrag: von %O -> %O mit %O (%O)\n", environment(), dest, previous_object(), getuid(previous_object())));
+  return ret;
+}
+
+mixed _set_autoloadobj(mixed al)
+{
+  // Loggen, wenn nicht vom Spielerobjekt selber via den
+  // Autoloader-Mechanismus gesetzt.
+  if (previous_object(1)
+      && strstr(load_name(previous_object(1)),"/std/shells") != 0)
+    HLOG("SET_AL",sprintf("Vertrag: TP = %O, PO = %O, ENV = %O\n",
+          this_player(), previous_object(), environment()));
+
+  /* Kompatibilitaet zu alten Vertraegen */
+  if (pointerp(al) && !(al[1] & V_EP)) {
+    al[0] *= 4;
+    al[1] |= V_EP;
+    call_out("notifyChange", 0, this_player());
+  }
+  return Set(P_AUTOLOADOBJ, al);
+}
+
+void notifyChange(object wem)
+{
+  tell_object(wem,
+       "\nNACHRICHT VON DER SEHERBANK:\n"
+      +"Die Vertragsmodalitaeten haben sich geaendert! Bitte lesen Sie den\n"
+      +"Vertrag noch einmal genau durch (insbes. Art. 4)!\n"
+      +"Statt Geld haben Sie jetzt Erfahrungspunkte zu zahlen!\n\n" );
+}
+