Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/beispiele/ssp/l1/m1x1.c b/doc/beispiele/ssp/l1/m1x1.c
new file mode 100644
index 0000000..f954372
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x1.c
@@ -0,0 +1,30 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Raum ist gefuellt\n"+
+  "mit grau-blauem Rauch, der von dem grossen Drachen stammt, der ihn be-\n"+
+  "wohnt. Es ist sehr warm hier drin und an den Waenden und an der Decke\n"+
+  "kondensiert der Dampf zu kleinen Tropfen. Der einzige Ausgang liegt im\n"+
+  "Osten.\n");
+  AddDetail("raum", "Ein Drache wohnt hier normalerweise.\n");
+  AddDetail(({"drache", "drachen"}), "Er scheint gerade nicht da zu sein.\n");
+  AddDetail("rauch", "Der Rauch zieht zum Ausgang im Osten hinaus.\n");
+  AddDetail(({"wand", "waende", "boden", "decke", "metall", "stahl"}), "Alles hier ist aus reinem Stahl.\n");
+  AddDetail("dampf", "Er kondensiert an den Waenden.\n");
+  AddDetail(({"wasser", "kondenswasser"}), "Es tropft zu Boden.\n");
+  AddDetail("tropfen", "Sie tropfen auf den Boden.\n");
+  AddDetail("ausgang", "Er liegt im Osten.\n");
+  AddItem(MON("stahldrache"), REFRESH_REMOVE);
+  AddExit("osten",L1("m2x1"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x2.c b/doc/beispiele/ssp/l1/m1x2.c
new file mode 100644
index 0000000..c91355a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x2.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. In dieser gemuetlichen\n"+
+  "Ecke (natuerlich nur fuer Metall liebende Lebewesen) hat sich wohl eine\n"+
+  "der merkwuerdigen Titanwalzen eingenistet, auf jeden Fall ist der Boden\n"+
+  "dermassen plattgewalzt, wie es nur diese Art schaffen kann. Der Gang\n"+
+  "selbst fuehrt hier nach Sueden und Osten.\n");
+  AddDetail("ecke", "Richtig nett hier ...\n");
+  AddDetail(({"wand", "waende", "decke", "metall"}), "Alles hier ist aus Metall.\n");
+  AddDetail(({"walze", "titanwalze"}), "Die Titanwalze scheint gerade nicht daheim zu sein.\n");
+  AddDetail("boden", "Der Boden ist absolut platt.\n");
+  AddDetail("gang", "Ein aus Metall gearbeiteter Gang.\n");
+  AddExit("sueden",L1("m1x3"));
+  AddExit("osten",L1("m2x2"));
+  AddItem(MON("titanwalze"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m1x3.c b/doc/beispiele/ssp/l1/m1x3.c
new file mode 100644
index 0000000..6093029
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x3.c
@@ -0,0 +1,24 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Eine lange Metallroehre\n"+
+  "fuehrt weiter von Sueden nach Norden und scheint kein Ende zu nehmen. Deine\n"+
+  "Schritte hallen blechern durch die Gaenge und informieren deren Bewohner\n"+
+  "ueber Deine Anwesenheit.\n");
+  AddDetail(({"metallroehre", "roehre", "gang", "gaenge"}), "Du befindest Dich in einer langen Metallroehre.\n");
+  AddDetail("metall", "Das Metall sieht sehr stabil aus.\n");
+  AddDetail(({"boden", "decke", "wand", "waende"}), "Alles ist aus Metall.\n");
+  AddDetail("bewohner", "Hier scheinen keine zu sein.\n");
+  AddExit("norden",L1("m1x2"));
+  AddExit("sueden",L1("m1x4"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x4.c b/doc/beispiele/ssp/l1/m1x4.c
new file mode 100644
index 0000000..a279aad
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x4.c
@@ -0,0 +1,24 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die Metallroehre, in der\n"+
+  "Du Dich befindest fuehrt von Sueden nach Norden. Auch hier klingt der Boden\n"+
+  "unter Deinen Fuessen recht hohl, es ist wohl wirklich etwas Besonderes\n"+
+  "darunter. Allerdings sind keinerlei Anzeichen fuer einen Zugang zu sehen.\n");
+  AddDetail(({"gang", "roehre", "metallroehre"}), "Der Gang fuehrt nach Norden und Sueden.\n");
+  AddDetail("metall", "Hartes, glaenzendes Metall.\n");
+  AddDetail(({"wand", "waende", "boden", "decke"}), "Alles ist aus Metall.\n");
+  AddDetail("zugang", "Es ist keiner zu sehen.\n");
+  AddExit("norden",L1("m1x3"));
+  AddExit("sueden",L1("m1x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m1x5.c b/doc/beispiele/ssp/l1/m1x5.c
new file mode 100644
index 0000000..694fb6a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m1x5.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include <moving.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der voellig mit Metall\n"+
+  "verkleidete Gang macht hier eine Biegung von Osten nach Norden, wo er\n"+
+  "in die schwarze Dunkelheit fuehrt. Deine Schritte hallen hier leicht nach,\n"+
+  "es scheint sich wohl ein Hohlraum unter dem Boden zu befinden.\n");
+  AddDetail("metall", "Es scheint Eisen oder Stahl zu sein.\n");
+  AddDetail(({"eisen", "stahl"}), "Du weisst nicht genau, ob es Eisen oder Stahl ist.\n");
+  AddDetail(({"gang", "roehre"}), "Der Gang macht einen Knick.\n");
+  AddDetail("dunkelheit", "Sie verschlingt alles.\n");
+  AddDetail(({"wand", "waende", "boden", "decke"}), "Alles ist aus Metall.\n");
+  AddDetail("hohlraum", "Du kannst keine Hinweise auf einen Zugang finden.\n");
+  AddDetail("zugang", "Du siehst keinen.\n");
+  AddDetail(({"knick", "biegung"}), "So nennt sich sowas halt ... ich kann nix dafuer!\n");
+  AddItem(MON("kampfblech"), REFRESH_REMOVE);
+  
+  AddExit("norden", L1("m1x4"));
+  AddExit("osten",L1("m2x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x1.c b/doc/beispiele/ssp/l1/m2x1.c
new file mode 100644
index 0000000..d4e7ae7
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x1.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dieser Gang hier ist aus\n"+
+  "reinstem Stahl gefertigt, der in Deinem Licht matt funkelt. Aus einer\n"+
+  "Kammer im Westen dringen Rauchschwaden hervor und ein Schnauben ist zu\n"+
+  "hoeren. Du kannst es allerdings auch vorziehen, nach Sueden dem Unheil\n"+
+  "zu entgehen.\n");
+  AddDetail(({"gang", "gaenge", "roehre", "roehren"}), "Der Gang macht eine Biegung von Sueden nach Westen.\n");
+  AddDetail(({"boden", "decke", "wand", "waende", "metall", "stahl"}), "Alles hier ist aus hartem Stahl.\n");
+  AddDetail("kammer", "Im Westen liegt eine Kammer.\n");
+  AddDetail(({"rauchschwaden", "rauch", "schwaden"}), "Der Rauch zieht durch ein paar Ritzen in der Decke ab.\n");
+  AddDetail(({"ritze", "ritzen"}), "Die Ritzen haben nichts Bemerkenswertes an sich.\n");
+  AddDetail("schnauben", "Von wem wohl das Schnauben kommt?\n");
+  AddExit("westen",L1("m1x1"));
+  AddExit("sueden",L1("m2x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x2.c b/doc/beispiele/ssp/l1/m2x2.c
new file mode 100644
index 0000000..8cefccd
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x2.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Hier verzweigt sich der\n"+
+  "Gang in verschiedene Metallroehren, die nach Norden, Sueden und Westen\n"+
+  "fuehren. Ausserdem ist in der Decke ein kleines Loch, durch das eine\n"+
+  "Leiter nach oben fuehrt.\n");
+  AddDetail(({"gang", "gaenge", "metallroehre", "metallroehren", "roehre", "roehren"}), "Gaenge fuehren in die verschiedensten Richtungen.\n");
+  AddDetail(({"wand", "waende", "boden", "metall"}), "Hier ist einfach alles aus Metall.\n");
+  AddDetail("leiter", "Die Leiter fuehrt durch ein Loch in der Decke nach oben.\n");
+  AddDetail(({"loch", "decke"}), "In der Decke ist ein Loch.\n");
+  AddExit("sueden",L1("m2x3"));
+  AddExit("norden",L1("m2x1"));
+  AddExit("westen",L1("m1x2"));
+  AddExit("oben", L1("oben"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x3.c b/doc/beispiele/ssp/l1/m2x3.c
new file mode 100644
index 0000000..f291ac2
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x3.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Gang, in dem Du\n"+
+  "Dich befindest fuehrt schnurgerade von Norden nach Sueden. Die Waende\n"+
+  "reflektieren das Licht und Deine Schritte erzeugen einen metallischen\n"+
+  "Klang auf dem Boden.\n"); 
+  AddDetail(({"boden", "wand", "waende", "decke", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail("gang", "Er fuehrt nach Norden und Sueden.\n");
+  AddDetail("licht", "Es kommt irgendwoher.\n");
+  AddDetail("schritte", "Wenn Du laeufst, machst Du Schritte, das wusstest Du aber, oder?\n");
+  AddDetail("klang", "Der Klang ist nicht sonderlich interessant, aber zweifellos vorhanden.\n");
+  AddExit("norden",L1("m2x2"));
+  AddExit("sueden",L1("m2x4"));
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m2x4.c b/doc/beispiele/ssp/l1/m2x4.c
new file mode 100644
index 0000000..674b44e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x4.c
@@ -0,0 +1,22 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der voellig mit Metall\n"+
+  "ausgeschlagene Gang macht hier einen scharfen Knick von Norden nach Osten\n"+
+  "und verschwindet dort in der Dunkelheit.\n");
+  AddDetail(({"wand", "waende", "boden", "decke", "metall"}), "Alles hier ist aus Metall.\n");
+  AddDetail("gang", "Der Gang fuehrt nach Norden und Osten.\n");
+  AddDetail("dunkelheit", "Du kannst hingehen und schauen, ob sie dann noch da ist.\n");
+  AddExit("norden",L1("m2x3"));
+  AddExit("osten",L1("m3x4"));
+}
diff --git a/doc/beispiele/ssp/l1/m2x5.c b/doc/beispiele/ssp/l1/m2x5.c
new file mode 100644
index 0000000..95b0c3d
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m2x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <rooms.h>
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die Waende des Ganges,\n"+
+  "der von Osten nach Westen (oder andersrum) verlaeuft, sind mit glaenzendem\n"+
+  "Metall ausgekleidet. Irgendwie kommt Dir diese Umgebung ziemlich seltsam\n"+
+  "vor, aber keine Sorge, es kommt noch viel schlimmer!\n");
+  AddDetail(({"gang", "roehre"}), "Der Gang verlaeuft von Osten nach Westen.\n");
+  AddDetail(({"wand", "waende", "decke", "boden"}), "Alles ist aus glaenzendem Metall.\n");
+  AddDetail("metall", "Das Metall ist an einer Stelle leicht eingedellt.\n");
+  AddDetail(({"delle", "stelle", "beule"}), "Da wollte wohl jemand mit dem Kopf durch die Wand.\n");
+  AddExit("osten",L1("m3x5"));
+  AddExit("westen",L1("m1x5"));
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+  AddItem(MON("dosenoeffner"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m3x1.c b/doc/beispiele/ssp/l1/m3x1.c
new file mode 100644
index 0000000..30022f4
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x1.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist am Eingang zum Hoehlenlabyrinth der Schreckensspitze. Etwas Licht\n"+
+  "dringt vom Ausgang im Norden herein, doch im Sueden lauert die pechschwarze\n"+
+  "Dunkelheit.\n");
+  AddDetail("eingang", "Es ist der Eingang zu mehr, als Du denkst.\n");
+  AddDetail("boden", "Der Boden besteht aus grauem Fels.\n");
+  AddDetail("fels", "Der Fels ist nicht besonders interessant, nur grau.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind von Orkblut beschmutzt.\n");
+  AddDetail(({"orkblut", "blut"}), "Orks werden hier wohl zum Spass gemetzelt.\n");
+  AddDetail("decke", "Ueber Deinem Kopf, das wird Dir hier noch oefters passieren.\n");
+  AddDetail(({"hoehlenlabyrinth", "labyrinth", "hoehlen"}), "Diese Labyrinth erstreckt sich ueber etliche Ebenen, viel Spass beim\nErkunden.\n");
+  AddDetail("licht", "Das letzte Tageslicht.\n");
+  AddDetail("ausgang", "Der Ausgang aus der Dunkelheit.\n");
+  AddDetail("dunkelheit", "Das wird Dir dort unten noch oefters begegnen.\n");
+  AddItem(MON("ork"), REFRESH_REMOVE);
+  AddItem(MON("ork"), REFRESH_REMOVE);
+  AddExit("norden", "/d/gebirge/room/spitze4");
+  AddExit("sueden",L1("m3x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m3x2.c b/doc/beispiele/ssp/l1/m3x2.c
new file mode 100644
index 0000000..d913527
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x2.c
@@ -0,0 +1,29 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Ein schmaler Gang, der\n"+
+  "von Norden nach Sueden fuehrt, ist hier durch den harten Fels gehauen.\n"+
+  "Der Gang ist nur grob behauen, ein Zeichen dafuer, dass hier nicht Zwerge\n"+
+  "am Werk waren, sondern boese Wesen, wahrscheinlich Orks.\n");
+  AddDetail("fels", "Der Fels ist hart und nur grob behauen.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang fuehrt von Norden nach Sueden.\n");
+  AddDetail("boden", "Auf dem Boden siehst Du zahlreiche Ueberreste von Abenteurern, die nicht\nvorsichtig genug waren.\n");
+  AddDetail(({"rest", "ueberrest", "reste", "ueberreste", "abenteurer"}),
+  "Uhoh ... blutige Sache ...\n");
+  AddDetail("blut", "Weia ...\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind aus Fels und nicht sonderlich interessant.\n");
+  AddDetail("decke", "Wenn Du ueberlegst, was da alles ueber Deinem Kopf schwebt ... ohoh!\n");
+  AddDetail(({"ork", "orks"}), "Davon hat es sicher einige in der Naehe.\n");
+  AddDetail(({"zwerg", "zwerge"}), "Zwerge haben hiermit nichts zu tun!\n");
+  AddExit("sueden",L1("m3x3"));
+  AddExit("norden",L1("m3x1"));
+}
diff --git a/doc/beispiele/ssp/l1/m3x3.c b/doc/beispiele/ssp/l1/m3x3.c
new file mode 100644
index 0000000..f84fce5
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x3.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der schmale Gang macht\n"+
+  "hier eine Biegung von Norden nach Osten, wo er jeweils in die Dunkelheit\n"+
+  "fuehrt.\n");
+  AddDetail("gang", "Der Gang macht eine Biegung.\n");
+  AddDetail("dunkelheit", "Schwarze Dunkelheit.\n");
+  AddDetail("boden", "Auf dem Boden ist nichts Besonderes zu sehen.\n");
+  AddDetail("decke", "Die Decke ist total langweilig.\n");
+  AddDetail(({"wand", "waende"}), "An der Wand haengt eine Hand.\n");
+  AddDetail("hand", "Ach nee, hat sich nur gereimt.\n");
+  AddDetail("biegung", "Sie fuehrt nach Norden und Osten.\n");
+  AddExit("norden",L1("m3x2"));
+  AddExit("osten",L1("m4x3"));
+  AddItem(MON("ork"), REFRESH_REMOVE);
+}
diff --git a/doc/beispiele/ssp/l1/m3x4.c b/doc/beispiele/ssp/l1/m3x4.c
new file mode 100644
index 0000000..549492a
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x4.c
@@ -0,0 +1,39 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include <moving.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Metallbeschlagene Waende\n"+
+  "umringen Dich im Norden, Osten und Sueden waehrend ein roehrenartiger Gang\n"+
+  "nach Westen fuehrt. Ausserdem befindet sich im Boden ein Loch, durch das\n"+
+  "eine Leiter nach unten fuehrt.\n");
+  AddDetail("loch", "Was einen da unten wohl erwarten mag?\n");
+  AddDetail("leiter", "Die Leiter fuehrt nach unten.\n");
+  AddDetail("boden", "Im Boden ist ein Loch.\n");
+  AddDetail(({"wand", "waende", "decke", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail(({"roehre", "gang"}), "Der Gang fuehrt nach Westen.\n");
+  AddItem(MON("titanwalze"), REFRESH_REMOVE);
+  AddExit("westen",L1("m2x4"));
+  AddSpecialExit("unten", "unten");
+}
+
+unten()
+{
+  if (present("titanwalze"))
+  {
+    write("Die Titanwalze laesst Dich nicht vorbei.\n");
+    return 1;
+  }
+  this_player()->move(L2("m3x4"), M_GO, "nach unten");
+  this_player()->SetProp("boing:drom_marker", 1);
+  return 1;
+}
diff --git a/doc/beispiele/ssp/l1/m3x5.c b/doc/beispiele/ssp/l1/m3x5.c
new file mode 100644
index 0000000..69c58fa
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m3x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der roehrenartige Gang\n"+
+  "fuehrt von Osten nach Westen durch die Dunkelheit, nur hier glaenzt das\n"+
+  "Metall in Deinem Licht.\n");
+  AddDetail(({"gang", "roehre"}), "Wer wohl diesen Gang angelegt hat?\n");
+  AddDetail("dunkelheit", "Du kannst sie nicht erreichen, solange Du Dein Licht an laesst.\n");
+  AddDetail("metall", "Alles hier ist aus blankem Metall.\n");
+  AddDetail("boden", "Ziemlich uninteressant.\n");
+  AddDetail(({"wand", "waende"}), "Hey! Da ist eine Inschrift!\n");
+  AddDetail("inschrift", "Das ist etwas, was man lesen kann.\n");
+  AddReadDetail("inschrift", "Du liest: Boing war hier.\n");
+  AddDetail("decke", "Ist sie nicht huebsch?\n");
+  AddExit("osten",L1("m4x5"));
+  AddExit("westen",L1("m2x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x1.c b/doc/beispiele/ssp/l1/m4x1.c
new file mode 100644
index 0000000..a64351e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x1.c
@@ -0,0 +1,38 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Du hast die Hoehle eines\n"+
+  "schrecklichen Untiers erreicht. Der Gestank ist wirklich grauenerregend\n"+
+  "und der Anblick rumliegender Knochen und halb verwester Koerperteile von\n"+
+  "armen Opfern tut sein Uebriges, um Dir den Appetit zu verderben. Der\n"+
+  "einzige Ausgang aus diesem Loch befindet sich im Osten.\n");
+  AddDetail(({"hoehle", "loch"}), "Ein uebles Loch, in das Du hier geraten bist.\n");
+  AddDetail("gestank", "Dir wird beinahe schlecht.\n");
+  AddDetail(({"teile", "koerperteile"}), "Buah, das ist ja widerlich.\n");
+  AddDetail("ausgang", "Der Ausgang ist im Osten.\n");
+  AddSpecialDetail("knochen", "knochen");
+  AddDetail(({"wand", "waende"}), "Die Waende sind langweilig und grau.\n");
+  AddDetail("decke", "Die Decke ist uninteressant.\n");
+  AddDetail("boden", "Die verwesenden Koerperteile auf dem Boden sind kein schoener Anblick.\n");
+  AddExit("osten",L1("m5x1"));
+  AddItem(MON("trollmops"), REFRESH_REMOVE);
+}
+
+knochen()
+{
+   if (present("trollmops"))
+      return "Der Trollmops laesst nicht zu, dass Du sein Abendessen durchwuehlst.\n";
+
+   if (this_player()->FindPotion("Du wuehlst in den Knochen herum und findest einen Zaubertrank.\n"))
+      return "";
+   return "Du wuehlst in den Knochen herum, findest aber nichts.\n";
+}
diff --git a/doc/beispiele/ssp/l1/m4x2.c b/doc/beispiele/ssp/l1/m4x2.c
new file mode 100644
index 0000000..1456ef2
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x2.c
@@ -0,0 +1,41 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Das hier scheint wohl\n"+
+  "der Aufenthaltsraum von ein paar stinkenden Trollen zu sein. Eine Menge\n"+
+  "alter Knochen liegen auf dem Boden rum und in der Ecke stinkt ein grosser\n"+
+  "Haufen Trollkot vor sich hin. Alles in allem kein gemuetlicher Ort,\n"+
+  "vielleicht solltest Du ihn nach Sueden verlassen.\n");
+  AddDetail("knochen", "Die Knochen wurden von Trollen abgenagt.\n");
+  AddDetail("boden", "Auf dem Boden liegen Knochen.\n");
+  AddDetail("decke", "Die Decke hier ist nicht so grauenhaft interessant, ich wette es wird\ninteressanter, wenn Du ein paar Ebenen tiefer vordringst.\n");
+  AddDetail(({"ebene", "ebenen"}), "Tja, wenn Du wuesstest wieviele Hohlraeume sich unter Dir befinden, dann\nwuerdest Du hier nicht so ruhig stehen.\n");
+  AddDetail(({"hohlraum", "hohlraeume"}), "Erkunde sie! Sofort!\n");
+  AddDetail(({"wand", "waende"}), "Sie sind verschmiert und ekelhaft.\n");
+  AddDetail("troll", "Keiner da! Aetschbaetsch!\n");
+  AddDetail("ecke", "Wuerg!\n");
+  AddDetail(({"trollkot", "kot", "haufen"}), "Igitt! Das stinkt ja erbaermlich.\n");
+  AddExit("sueden",L1("m4x3"));
+  AddItem(MON("troll"), REFRESH_REMOVE);
+  AddItem(MON("troll"), REFRESH_REMOVE);
+  AddCmd("erkunde", "erkunden");
+}
+
+erkunden(str)
+{ 
+   notify_fail("Was moechtest Du erkunden?\n");
+   if (!str || (str!="hohlraum" && str !="hohlraeume"))
+      return 0;
+   write("Also ein bisschen mehr musst Du da schon fuer tun.\n");
+   return 1;
+}
diff --git a/doc/beispiele/ssp/l1/m4x3.c b/doc/beispiele/ssp/l1/m4x3.c
new file mode 100644
index 0000000..37472a9
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x3.c
@@ -0,0 +1,31 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der durch den harten\n"+
+  "Fels gehauene Gang verzweigt sich hier nach Norden, Osten und Westen.\n"+
+  "Du stellst fest, dass vom Norden her ein ziemlich unangenehmer Geruch\n"+
+  "kommt.\n");
+  AddDetail("fels", "Der Fels wurde von Orks oder Trollen bearbeitet, und das ziemlich schlecht.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang verzweigt sich hier.\n");
+  AddDetail("geruch", "Man koennte es auch Gestank nennen.\n");
+  AddDetail("gestank", "Wenn der Himmel hier sichtbar waere, wuerde es zu ihm stinken.\n");
+  AddDetail("boden", "Auf dem Boden findest Du nichts von Bedeutung.\n");
+  AddDetail("decke", "Grauer Fels.\n");
+  AddDetail(({"wand", "waende"}), "An der Wand siehst Du eine Inschrift.\n");
+  AddDetail("inschrift", "Du kannst sie lesen.\n");
+  AddReadDetail("inschrift", "Du liest: Nicht alles, was man nicht sieht, ist auch wichtig.\n");
+  AddDetail(({"orks", "trolle"}), "Die laufen hier irgendwo rum ... oder liegen tot in der Ecke.\n");
+  AddDetail("ecke", "In dieser Ecke sind jedenfalls keine.\n");
+  AddExit("norden",L1("m4x2"));
+  AddExit("osten",L1("m5x3"));
+  AddExit("westen",L1("m3x3"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x4.c b/doc/beispiele/ssp/l1/m4x4.c
new file mode 100644
index 0000000..be0485f
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x4.c
@@ -0,0 +1,28 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dies ist zweifellos die\n"+
+  "Heimat eines der beruechtigten Eisenfresser, die Waende sehen auch schon\n"+
+  "ganz zernagt aus. Der einzige Ausgang fuehrt nach Sueden.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind aus reinem Eisen und wurden von einem Eisenfresser schon\nziemlich stark misshandelt.\n");
+  AddDetail("boden", "Der Boden ist aus Metall und funkelt im Licht. Solltest Du natuerlich Nacht-\nsicht haben, dann funkelt es nur in Deiner Einbildung.\n");
+  AddDetail("decke", "Die Decke hat eine gewaltige Last zu tragen.\n");
+  AddDetail("last", "Frag mich nicht wieviele Tonnen Gestein sich ueber Dir befinden.\n");
+  AddDetail("gestein", "Sowas gibt es im Gebirge, wenn es auch hier nicht so offensichtlich ist.\n");
+  AddDetail("gebirge", "Ach hoer doch auf ...\n");
+  AddDetail("eisenfresser", "Der hat sich wohl zu Tode gefressen.\n");
+  AddDetail(({"metall", "eisen"}), "Es glaenzt matt.\n");
+  AddDetail("ausgang", "Er liegt im Sueden.\n");
+  AddItem(MON("eisenfresser"), REFRESH_REMOVE);
+  AddExit("sueden",L1("m4x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m4x5.c b/doc/beispiele/ssp/l1/m4x5.c
new file mode 100644
index 0000000..d64774b
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m4x5.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Die metallischen Roehren\n"+
+  "verzweigen sich hier nach Norden, Osten und Westen. Im Norden scheint etwas\n"+
+  "Unangenehmes zu lauern, merkwuerdige Geraeusche dringen von dort hierher.\n");
+  AddDetail(({"wand", "waende", "roehre", "roehren", "gaenge", "gang"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail("unangenehmes", "Wer weiss, was sich dort verbirgt ...\n");
+  AddDetail("boden", "Du bist froh, dass es hier einen Boden gibt, sonst wuerdest Du tief fallen.\n");
+  AddDetail("decke", "Die Decke ist metallisch und glaenzt.\n");
+  AddDetail(({"geraeusch", "geraeusche"}), "Es quietscht.\n");
+  AddExit("norden",L1("m4x4"));
+  AddExit("osten",L1("m5x5"));
+  AddExit("westen",L1("m3x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x1.c b/doc/beispiele/ssp/l1/m5x1.c
new file mode 100644
index 0000000..5865a91
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x1.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der grob behauene Gang\n"+
+  "macht hier eine Biegung von Sueden nach Westen, wo er in einem schwarzen\n"+
+  "Loch verschwindet, aus dem ein fuerchterlicher Gestank dringt.\n"); 
+  AddDetail("gang", "Der Gang fuehrt in die Dunkelheit.\n");
+  AddDetail("dunkelheit", "Schwarze, lichtlose Dunkelheit.\n");
+  AddDetail("loch", "Hier lauert irgend etwas Schreckliches.\n");
+  AddDetail("gestank", "Der Gestank ist wirklich grauenhaft.\n");
+  AddDetail("boden", "Hoppla, hier liegen Fleischfetzen rum, im Westen scheint wohl was zu wueten.\n");
+  AddDetail(({"fleischfetzen", "fetzen", "fleisch"}), "Ist ja eklig!\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind verschmiert.\n");
+  AddDetail("decke", "Gaehn.\n");
+  AddExit("westen",L1("m4x1"));
+  AddExit("sueden",L1("m5x2"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x2.c b/doc/beispiele/ssp/l1/m5x2.c
new file mode 100644
index 0000000..75f6a5f
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x2.c
@@ -0,0 +1,26 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Ein mit roher Gewalt in\n"+
+  "den Fels genagter Gang fuehrt von Sueden nach Norden. Du spuerst, dass\n"+
+  "hinter jeder Ecke Orks oder anderes uebles Gezuecht lauern koennen.\n");
+  AddDetail(({"gang", "gaenge"}), "Der Gang fuehrt von Sueden nach Norden.\n");
+  AddDetail("fels", "Es ist ein harter Fels, der von boesen Wesen durchbohrt wurde.\n");
+  AddDetail(({"ork", "orks", "gezuecht"}), "Momentan siehst Du keine Orks, aber das kann sich ja schnell aendern.\n");
+  AddDetail("boden", "Blanker Fels.\n");
+  AddDetail("fels", "Das wird allmaehlich langweilig.\n");
+  AddDetail("decke", "An der Decke haengt eine bunte Girlande.\n");
+  AddDetail("girlande", "Wer die wohl da aufgehaengt hat?\n");
+  AddDetail(({"wand", "waende"}), "Da gibt es nichts interessantes zu sehen.\n");
+  AddExit("norden",L1("m5x1"));
+  AddExit("sueden",L1("m5x3"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x3.c b/doc/beispiele/ssp/l1/m5x3.c
new file mode 100644
index 0000000..b7d4ce7
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x3.c
@@ -0,0 +1,32 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <moving.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Steinebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dunkle Gaenge fuehren\n"+
+  "nach Norden, Sueden und Westen. Der suedliche Gang ist etwas merkwuerdig,\n"+
+  "denn sein Eingang ist mit glaenzendem Metall seltsam beschlagen.\n");
+  AddDetail(({"felsboden", "boden"}), "Der blanke Felsboden geht im Sueden in Metall ueber.\n");
+  AddDetail(({"gang", "gaenge"}), "Es sind Gaenge der Orks.\n");
+  AddDetail("eingang", "Im Sueden glaenzen die Waende, die mit Metall beschlagen sind.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende sind da ... wie immer.\n");
+  AddDetail("decke", "Die Decke ist nicht interessant.\n");
+  AddDetail("fels", "Grauer Fels.\n");
+  AddDetail("metall", "Es scheint Eisen zu sein.\n");
+  AddDetail("eisen", "Ja, zweifellos, es ist Eisen.\n");
+  AddExit("westen",L1("m4x3"));
+  AddExit("norden",L1("m5x2"));
+  AddExit("sueden",L1("m5x4"));
+
+  AddItem(MON("orkchef"), REFRESH_REMOVE);
+}
+
diff --git a/doc/beispiele/ssp/l1/m5x4.c b/doc/beispiele/ssp/l1/m5x4.c
new file mode 100644
index 0000000..b95d15e
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x4.c
@@ -0,0 +1,25 @@
+inherit "std/room";
+
+#include <properties.h>
+#include "../files.h"
+
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Der Gang, der hier von\n"+
+  "Norden nach Sueden fuehrt, aehnelt mehr einer Roehre, denn alles ist voll-\n"+
+  "staendig aus einem glaenzenden Metall. Du fragst Dich, wer wohl diese\n"+
+  "Gaenge angelegt hat.\n");
+  AddDetail(({"gang", "gaenge", "roehre", "rohr"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail(({"wand", "waende"}), "Die Waende glaenzen silbern.\n");
+  AddDetail("boden", "Sei froh, dass er da ist.\n");
+  AddDetail("decke", "Die Decke ist wirklich ziemlich langweilig.\n");
+  AddExit("norden",L1("m5x3"));
+  AddExit("sueden",L1("m5x5"));
+}
diff --git a/doc/beispiele/ssp/l1/m5x5.c b/doc/beispiele/ssp/l1/m5x5.c
new file mode 100644
index 0000000..4f99ba1
--- /dev/null
+++ b/doc/beispiele/ssp/l1/m5x5.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+
+create()
+{
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Metallebene");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Eigentlich koennte man\n"+
+  "es auch fast Roehrenlabyrinth nennen, denn Du befindest Dich in einer\n"+
+  "solchen, die hier eine Biegung von Norden nach Westen macht. Die Waende\n"+
+  "sind aus einem glaenzenden Metall gefertigt, was Dir ziemlich merkwuerdig\n"+
+  "vorkommt.\n");
+  AddDetail(({"wand", "waende", "roehre", "roehren", "gaenge", "gang"}), "Die Gaenge sind voellig mit Metall ausgekleidet.\n");
+  AddDetail("metall", "Das Metall glaenzt silbern.\n");
+  AddDetail("boden", "Der Boden ist aus Metall.\n");
+  AddDetail("decke", "Selbst die Decke glaenzt metallisch, Du fragst Dich, wer das angelegt hat.\n");
+  AddDetail("biegung", "Die Biegung fuehrt von Norden nach Westen.\n");
+  AddItem(MON("kampfblech"), REFRESH_REMOVE);
+  AddExit("norden",L1("m5x4"));
+  AddExit("westen",L1("m4x5"));
+}
diff --git a/doc/beispiele/ssp/l1/oben.c b/doc/beispiele/ssp/l1/oben.c
new file mode 100644
index 0000000..f3bc039
--- /dev/null
+++ b/doc/beispiele/ssp/l1/oben.c
@@ -0,0 +1,27 @@
+inherit "std/room";
+ 
+#include <properties.h>
+#include <rooms.h>
+#include "../files.h"
+ 
+create()
+{
+  replace_program("std/room");
+  ::create();
+  SetProp(P_LIGHT, 0);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_INT_SHORT, "Beim Knochenschaeler");
+  SetProp(P_INT_LONG,
+  "Du bist im Hoehlenlabyrinth der Schreckensspitze. Dieser kleine Raum ist\n"+
+  "die Heimat eines fuerchterlichen Ungeheuers, die Heimat des schrecklichen\n"+
+  "Knochenschaelers. Im Boden des Raums ist ein kleines Loch, durch das eine\n"+
+  "Leiter nach unten fuehrt.\n");
+  AddDetail("raum", "Der Raum ist ziemlich klein.\n");
+  AddDetail(({"wand", "decke", "waende", "metall"}), "Alles ist aus Metall.\n");
+  AddDetail(({"boden", "loch"}), "Im Boden ist ein Loch, durch das eine Leiter nach unten fuehrt.\n");
+  AddDetail("leiter", "Die Leiter fuehrt nach unten.\n");
+  AddDetail("ungeheuer", "Der Knochenschaeler ist einfach fuerchterlich.\n");
+  AddDetail("knochenschaeler", "Zum Glueck ist er gerade nicht daheim.\n");
+  AddItem(MON("knochenschaeler"), REFRESH_REMOVE);
+  AddExit("unten", L1("m2x2"));
+}