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