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