Added public files
Roughly added all public files. Probably missed some, though.
diff --git a/d/seher/haeuser/sb_einzahlung.c b/d/seher/haeuser/sb_einzahlung.c
new file mode 100644
index 0000000..1f89196
--- /dev/null
+++ b/d/seher/haeuser/sb_einzahlung.c
@@ -0,0 +1,130 @@
+#include <properties.h>
+#include <wizlevels.h>
+#include <moving.h>
+#include "haus.h"
+
+inherit "std/room";
+
+create()
+{
+ ::create();
+
+ SetProp( P_INDOORS, 1 );
+ SetProp( P_LIGHT, 1 );
+ SetProp( P_INT_SHORT, "Am Einzahlungsschalter" );
+ SetProp( P_INT_LONG,
+ "Du stehst hier am Einzahlungsschalter der Bank. Um eine Rate einzuzahlen,\n"
+ +"musst Du einfach nur Deinen MG MASTER-BLOCK vorlegen. Gib dazu einfach nur\n"
+ +"'lege block vor' ein.\n"
+ +"Der Blick eines schemenhaft erkennbaren Beamten scheint Dich selbst durch\n"
+ +"die dicke Rauchglasscheibe hindurch zu durchbohren.\n" );
+
+ AddDetail( ({ "boden" }),
+ "Der tiefschwarze Boden gibt Dir das Gefuehl, im absoluten Nichts zu stehen.\n" );
+ AddDetail( ({ "wand", "waende" }),
+ "Dunkle Schatten tanzen ueber die Waende.\n" );
+ AddDetail( ({ "decke" }),
+ "Sie scheint Dir in dieser unheimlichen Umgebung auf den Kopf fallen zu\n"
+ +"wollen.\n" );
+ AddDetail( ({ "nichts" }),
+ "Du siehst nichts.\n" );
+ AddDetail( ({ "schatten" }),
+ "Die Schatten irritieren Dich sehr.\n" );
+ AddDetail( ({ "scheibe", "rauchglas", "glas", "glasscheibe", "rauchglasscheibe" }),
+ "Hinter ihr scheint sich ein Beamter zu verbergen.\n" );
+ AddDetail( ({ "schalter" }),
+ "An diesem Schalter kannst Du eine Rate fuer Dein Haus einzahlen.\n" );
+ AddDetail( ({ "beamte", "beamter", "beamten", "schalterbeamte", "schalterbeamter", "schalterbeamten" }),
+ "Der Schalterbeamte durchbohrt Dich mit seinen Blicken.\n" );
+
+ AddCmd( ({ "leg", "lege" }), "legen" );
+
+ AddExit( "raus", PATH+"seherbank" );
+}
+
+void
+BecomesNetDead(object pl)
+{
+ pl->move(PATH+"seherbank", M_GO, 0, "wird rausgeworfen", "schlafwandelt herein");
+}
+
+int
+legen(string str)
+{
+ object tp, block, vertrag;
+ int *al, *vl, rate;
+
+ if (!str || str != "block vor")
+ return 0;
+
+ tp = this_player();
+ block = present( "\n block", tp);
+ vertrag = present( "sehe\rvertrag", tp );
+
+ if (!IS_SEER(tp))
+ write( "Der Schalterbeamte weist Dich darauf hin, dass hier nur Seher be-\n"
+ +"dient werden.\n" );
+ else if (tp->QueryProp(P_KILLS))
+ write( "Ein bohrender Blick verkuendet: Verbrecher werden hier nicht bedient!\n" );
+ else if (!block)
+ write( "Du hast keinen Block, den Du vorlegen koenntest!\n" );
+ else if (!vertrag) {
+ write( "Der Schalterbeamte sagt: Sie haben keinen Bausparvertrag! Wozu wollen\n"
+ +"Sie dann eine Rate einzahlen? Wie sind Sie ueberhaupt an den Block\n"
+ +"gekommen?\n" );
+ HLOG( "BANK.LOG", "Einzahlung: "+getuid(tp)+" Block ohne Vertrag!\n" );
+ }
+ else if (old_explode(object_name(block),"#")[0] != PATH+"block" ||
+ old_explode(object_name(vertrag),"#")[0] != PATH+"bausparvertrag") {
+ write( "Der Schalterbeamte faehrt Dich an: DU WILLST SCHUMMELN???\n" );
+ HLOG( "BANK.LOG", "Einzahlung: "+getuid(tp)+" Falscher Block/Vertrag!\n");
+ HLOG( "SCHUMMEL", sprintf("Einzahlung: TP: %O, B: %O, V: %O\n",
+ this_player(),
+ block->QueryProp(P_CLONER),
+ vertrag->QueryProp(P_CLONER)));
+ }
+ else {
+ al = block->Query(P_AUTOLOADOBJ);
+ rate = RATENHOEHE;
+ if (al[V_FLAGS] & B_EXTEND)
+ rate += (6*RATENHOEHE)/10;
+
+ if (al[V_MONEY] < rate) {
+ write( "Der Schalterbeamte weist Dich darauf hin, dass Du noch nicht genug Erfahrung\n"
+ +"fuer die Rate gelassen hast.\n" );
+ HLOG( getuid(tp), "Einzahlung: "+getuid(tp)+" hatte nicht genug ("+al[V_MONEY]+"/"+rate+").\n");
+ }
+ else {
+ vl = vertrag->Query(P_AUTOLOADOBJ);
+ rate = (al[V_FLAGS] & B_FAST) ? SUMME_S : SUMME_L;
+ if (vl[1] & V_RAUM)
+ rate = rate * 4 /10;
+ write( "Du zahlst Deine Rate ein.\n" );
+ block->remove();
+ if (vertrag->Einzahlung() >= rate) {
+ write( "Der Schalterbeamte sagt: Sie haben es geschafft! Sie haben nun genug\n"
+ +"Erfahrung eruebrigt. ");
+ if (vl[1] & V_RAUM)
+ write( "Am Ausgabeschalter koennen Sie nun den neuen Raum\n"
+ +"eintragen lassen.\n" );
+ else
+ write( "Am Hausausgabeschalter koennen Sie nun Ihr neues\n"
+ +"Heim in Empfang nehmen.\n" );
+ vertrag->Sign( vl[1] | V_COMPL );
+ }
+ else {
+ write( "Der Schalterbeamte beschwoert Blitz und Donner vom Himmel herab. Ein\n"
+ +"lauter Knall, und ein neuer Ratenblock erscheint in Deinem Inventar.\n" );
+ (block = clone_object(PATH+"block"))->move(tp, M_NOCHECK);
+ block->SetProp("schwer", vl[1] & V_FAST);
+ al = block->Query(P_AUTOLOADOBJ);
+ al[V_FLAGS] |= B_ACTIVE;
+ block->Set(P_AUTOLOADOBJ, al);
+ }
+ HLOG(getuid(tp), "Einzahlung: "+getuid(tp)+" zahlte ein.\n" );
+ tp->force_save();
+ }
+ }
+ return 1;
+}
+