New files.

Change-Id: Ife5efe076a66e07821e95c800cd59d7577d8fb45
diff --git a/room/huette1.c b/room/huette1.c
new file mode 100644
index 0000000..6e76e1c
--- /dev/null
+++ b/room/huette1.c
@@ -0,0 +1,24 @@
+// Wir erben vom Standard-Raum der Mudlib:
+inherit "/std/room";
+
+/* Und wir holen uns einige Defines, die wir oefter verwenden und deswegen
+   nicht in jedem Raum erneut schreiben wollen: */
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Eine schummrige Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Viel erkennen kannst Du hier nicht, es gibt naemlich noch keine "
+    "Details. Die lernen wir spaeter. Dies ist nur ein nackter Raum, "
+    "keine Details, keine Ausgaenge, nichts drin. Aber Licht ist schon "
+    "an."));
+
+  // Die Props kann man in den betreffenden Manpages nachlesen.
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_GLOWING);
+}
+
diff --git a/room/huette2.c b/room/huette2.c
new file mode 100644
index 0000000..4326acb
--- /dev/null
+++ b/room/huette2.c
@@ -0,0 +1,38 @@
+inherit "/std/room";
+
+#include __PATH__(1)"defs.h"
+
+
+string sonderfall();
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Eine schummrige Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Nun gibt es hier einige Details. Du kannst sie untersuchen."));
+
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_GLOWING);
+
+  AddDetail("detail", BSLF(
+    "Dieses ist ein statisches Detail (der Normalfall). Es funktioniert "
+    "nur fuer den Plural, den Singular haben wir ja nirgends erwaehnt."));
+  AddDetail(({"plural", "singular"}), BSLF(
+    "Wenn Du nicht gerade Ark heisst, musst Du nicht fuer ALLES etwas "
+    "aushecken, gerade wenn Dein Raum sonst so mit unsinnigen Details "
+    "zugepflastert wird, dass man Tage braucht, um den abzuforschen - das "
+    "frustriert naemlich Spieler auch.\n"
+    "Allerdings sollte ein gut beschriebener Raum die allermeisten Details "
+    "beschreiben. Aus Gruenden der Uebersichtlichkeit verzichte ich hier "
+    "allerdings mal darauf, der Lerneffekt wird dadurch ja nicht groesser."));
+  AddDetail("normalfall", #'sonderfall);
+}
+
+string sonderfall() {
+  return BSLF(
+    "Ja, "+TP->name()+", man kann Details auch dynamisch erzeugen, indem man "
+    "den Rueckgabewert einer Function oder auch einer Inline-Closure zurueck"
+    "gibt. Letzteres handeln wir aber spaeter ab.");
+}
diff --git a/room/huette3a.c b/room/huette3a.c
new file mode 100644
index 0000000..bcf9daf
--- /dev/null
+++ b/room/huette3a.c
@@ -0,0 +1,22 @@
+inherit "/std/room";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Eine schummrige Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Viel erkennen kannst Du hier nicht, es gibt naemlich schon wieder "
+    "keine Details. Dafuer aber einen Durchgang nach Osten, durch den "
+    "Du ins grelle Sonnenlicht rausgehen kannst. Falls Du Dich traust ..."));
+
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_GLOWING);
+
+  // Dies ist ein einfacher, statischer Ausgang
+  AddExit("osten", __DIR__"huette3b");
+}
+
diff --git a/room/huette3b.c b/room/huette3b.c
new file mode 100644
index 0000000..47c1eff
--- /dev/null
+++ b/room/huette3b.c
@@ -0,0 +1,31 @@
+inherit "/std/room";
+
+#include __PATH__(1)"defs.h"
+
+
+protected void create() {
+  ::create();
+
+  SetProp(P_INT_SHORT, "Vor der Huette");
+  SetProp(P_INT_LONG, BSLF(
+    "Blinzelnd stehst Du im grellen, boesen Sonnenlicht. Es blendet Deine "
+    "Augen und verbrennt Deine Haut. Du kannst schnell nach Westen zurueck "
+    "in die Huette fliehen."));
+
+  SetProp(P_LIGHT, 1);
+  SetProp(P_INDOORS, 1);
+  SetProp(P_LIGHT_TYPE, LT_SUN);
+
+  // Ein Beispiel mit einem dynamischen Ausgang:
+  AddExit("westen", #'westen);
+}
+
+/* ... in dem wir eine zusaetzliche Meldung ausgeben, weil man den Ausgang
+   sonst ja auch haette statisch schreiben koennen.
+   Wenn ein Ausgang statisch geschrieben werden kann, sollte man das
+   auch tun, das liest sich leichter. */
+int westen() {
+  tell_room(TO, BSLF(
+    "Ein Sack Reis kippt um."));
+  return TP->move(__DIR__"huette3b", M_GO);
+}