aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/supernova/rooms.h1255
1 files changed, 496 insertions, 759 deletions
diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h
index cbae30a478..f52412ace4 100644
--- a/engines/supernova/rooms.h
+++ b/engines/supernova/rooms.h
@@ -1,784 +1,521 @@
#ifndef ROOMS_H
#define ROOMS_H
+#include "common/scummsys.h"
+
#include "msn_def.h"
namespace Supernova {
-/* --- ROOM 0 ----------------------------------- */
-
-room roomlist0[ROOMNUM0] =
-{
- {
- "",{0},NIL,NIL,NIL,
- {
- {"Keycard","Die Keycard f�r deine Schr�nke.",KEYCARD,
- TAKE+CARRIED+COMBINABLE,255,255,0},
- {"Taschenmesser","Es ist nicht mehr das sch�rfste.",KNIFE,
- TAKE+CARRIED+COMBINABLE,255,255,0},
- {"Armbanduhr",&description,WATCH,TAKE+COMBINABLE+CARRIED,255,255,8},
- {"Discman","Es ist eine \"Mad Monkeys\"-CD darin.",
- DISCMAN,TAKE+COMBINABLE,255,255,0}
- }
+
+ObjectType operator|(ObjectType a, ObjectType b) {
+ return ObjectType(+a | +b);
+}
+
+struct Object {
+ static const char *const defaultDescription;
+
+ Object();
+ Object(const char *name, const char *description, ObjectID id, ObjectType type, byte click,
+ byte click2, byte section = 0, RoomID exitRoom = NULLROOM, byte direction = 0);
+
+ const char *_name;
+ const char *_description;
+ ObjectID _id;
+ ObjectType _type;
+ byte _click;
+ byte _click2;
+ byte _section;
+ RoomID _exitRoom;
+ byte _direction;
+};
+
+Object::Object()
+ : _name("")
+ , _description(Object::defaultDescription)
+ , _id(NULLOBJECT)
+ , _type(NULLTYPE)
+ , _click(0)
+ , _click2(0)
+ , _section(0)
+ , _exitRoom(NULLROOM)
+ , _direction(0)
+{}
+
+Object::Object(const char *name, const char *description, ObjectID id, ObjectType type,
+ byte click, byte click2, byte section, RoomID exitRoom, byte direction)
+ : _name(name)
+ , _description(description)
+ , _id(id)
+ , _type(type)
+ , _click(click)
+ , _click2(click2)
+ , _section(section)
+ , _exitRoom(exitRoom)
+ , _direction(direction)
+{}
+
+class Room {
+public:
+ Room() {
+ _seen = false;
+ }
+
+ bool hasSeen() {
+ return _seen;
+ }
+ void setRoomSeen(bool seen) {
+ _seen = seen;
+ }
+
+ virtual ~Room() {}
+ virtual void animation() {}
+ virtual void onEntrance() {}
+ virtual bool interact(Action verb, Object &obj1, Object &obj2) {
+ return false;
+ }
+
+protected:
+ int _filenumber;
+ bool _shown[kMaxSection];
+ Object _objectState[kMaxObject];
+
+private:
+ bool _seen;
+};
+
+// Room 0
+class StartingItems : public Room {
+public:
+ StartingItems() {
+ _filenumber = -1;
+
+ _shown[0] = false;
+
+ _objectState[0] =
+ Object("Keycard", "Die Keycard fuer deine Schraenke.", KEYCARD,
+ TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
+ _objectState[1] =
+ Object("Taschenmesser", "Es ist nicht mehr das sch�rfste.", KNIFE,
+ TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
+ _objectState[2] =
+ Object("Armbanduhr", Object::defaultDescription, WATCH,
+ TAKE | COMBINABLE | CARRIED, 255, 255, 8, NULLROOM, 0);
+ _objectState[3] =
+ Object("Discman", "Es ist eine \"Mad Monkeys\"-CD darin.", DISCMAN,
+ TAKE | COMBINABLE, 255, 255, 0, NULLROOM, 0);
}
};
+// Spaceship
+class ShipCorridor : public Room {
+public:
+ ShipCorridor() {
+ _filenumber = 17;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = true;
+
+ _objectState[0] = Object("Luke", Object::defaultDescription, HATCH1, OPEN | EXIT, 0, 6, 1, CABIN_L1, 15);
+ _objectState[1] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | EXIT, 1, 7, 2, CABIN_L2, 10);
+ _objectState[2] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | EXIT, 2, 8, 3, CABIN_L3, 5);
+ _objectState[3] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | EXIT, 5, 11, 6, CABIN_R1, 19);
+ _objectState[4] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | EXIT, 4, 10, 5, CABIN_R2, 14);
+ _objectState[5] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | EXIT | OPENED, 9, 3, 4, CABIN_R3, 9);
+ _objectState[6] = Object("Luke", Object::defaultDescription, NULLOBJECT, OPEN | CLOSED | EXIT, 12, 12, 0, AIRLOCK, 2);
+ _objectState[7] = Object("Knopf", "Er geh�rt zu der gro�en Luke.", BUTTON, PRESS, 13, 13, 0, NULLROOM, 0);
+ _objectState[8] = Object("Leiter", Object::defaultDescription, NULLOBJECT, NULLTYPE, 14, 14, 0, NULLROOM, 0);
+ _objectState[9] = Object("Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 15, 15, 0, HALL, 2);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipHall: public Room {
+public:
+ ShipHall() {
+ _filenumber = 15;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Luke", "Sie f�hrt ins Cockpit.", NULLOBJECT, OPEN | EXIT, 4, 5, 1, COCKPIT, 10);
+ _objectState[1] = Object("Luke", "Sie f�hrt zur K�che.", KITCHEN_HATCH, OPEN | EXIT, 0, 0, 0, NULLROOM, 1);
+ _objectState[2] = Object("Luke", "Sie f�hrt zu den Tiefschlafkammern.", NULLOBJECT, OPEN | CLOSED | EXIT, 1, 1, 2, SLEEP, 8);
+ _objectState[3] = Object("Schlitz", "Es ist ein Keycard-Leser.", SLEEP_SLOT, COMBINABLE, 2, 2, 0, NULLROOM, 0);
+ _objectState[4] = Object("Leiter", Object::defaultDescription, NULLOBJECT, NULLTYPE, 3, SLEEP, 0, NULLROOM, 0);
+ _objectState[5] = Object("Gang", Object::defaultDescription, NULLOBJECT, EXIT, 6, 6, 0, CORRIDOR, 1);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
-room roomlist1[ROOMNUM1] =
-{
-/* --- Spaceship --- */
-
- {
- "017",{1,0,0,0,1},&sb_corridor,NIL,NIL,
- {
- {"Luke",&description,HATCH1,OPEN+EXIT,0,6,1,CABIN_L1,15},
- {"Luke",&description,0,OPEN+EXIT,1,7,2,CABIN_L2,10},
- {"Luke",&description,0,OPEN+EXIT,2,8,3,CABIN_L3,5},
- {"Luke",&description,0,OPEN+EXIT+OPENED,9,3,4,CABIN_R3,9},
- {"Luke",&description,0,OPEN+EXIT,4,10,5,CABIN_R2,14},
- {"Luke",&description,0,OPEN+EXIT,5,11,6,CABIN_R1,19},
- {"Luke",&description,0,OPEN+CLOSED+EXIT,12,12,0,AIRLOCK,2},
- {"Knopf","Er geh�rt zu der gro�en Luke.",BUTTON,PRESS,13,13,0},
- {"Leiter",&description,0,0,14,14,0},
- {"Ausgang",&description,0,EXIT,15,15,0,HALL,22}
- }
- },
- {
- "015",{1},&sb_hall,NIL,NIL,
- {
- {"Luke","Sie f�hrt ins Cockpit.",0,OPEN+EXIT,4,5,1,COCKPIT,10},
- {"Luke","Sie f�hrt zur K�che.",KITCHEN_HATCH,
- OPEN+EXIT,0,0,0,NIL,1},
- {"Luke","Sie f�hrt zu den Tiefschlafkammern.",0,
- OPEN+CLOSED+EXIT,1,1,2,SLEEP,8},
- {"Schlitz","Es ist ein Keycard-Leser.",SLEEP_SLOT,COMBINABLE,2,2,0},
- {"Leiter",&description,0,0,3,3,0},
- {"Gang",&description,0,EXIT,6,6,0,CORRIDOR,19}
- }
- },
- {
- "033",{1},&sb_sleep,&anim_sleep,&once_sleep,
- {
- {"Luke","Dies ist eine der Tiefschlafkammern.",CABINS,0,0,0,0},
- {"Luke","Dies ist eine der Tiefschlafkammern.",CABIN,0,1,1,0},
- {"Computer",&description,COMPUTER,0,2,2,0},
- {"Ausgang",&description,0,EXIT,255,255,0,HALL,22}
- }
- },
- {
- "009",{1},&sb_cockpit,&anim_cockpit,&once_cockpit,
- {
- {"Instrumente","Hmm, sieht ziemlich kompliziert aus.",
- INSTRUMENTS,0,2,2,0},
- {"Monitor",&description,MONITOR,0,0,0,0},
- {"Monitor","Dieser Monitor sagt dir nichts.",0,1,1,0},
- {"Ausgang",&description,0,EXIT,255,255,0,HALL,22}
- }
- },
- {
- "034",{1,0,0,0,0,0,1},&sb_airlock,NIL,&once_airlock,
- {
- {"Luke","Das ist eine Luke !!!",0,
- EXIT+OPEN+OPENED+CLOSED,0,0,0,CORRIDOR,10},
- {"Luke","Dies ist eine Luke !!!",0,
- EXIT+OPEN+CLOSED,1,1,0,HOLD,14},
- {"Knopf",&description,BUTTON1,PRESS,2,2,0},
- {"Knopf",&description,BUTTON2,PRESS,3,3,0},
- {"Helm","Es ist der Helm zum Raumanzug.",HELMET,TAKE,4,4,7},
- {"Raumanzug","Der einzige Raumanzug, den die|anderen hiergelassen haben ...",
- SUIT,TAKE,5,5,8},
- {"Versorgung","Es ist der Versorgungsteil zum Raumanzug.",
- LIFESUPPORT,TAKE,6,6,9},
- {"Druckmesser",&description,MANOMETER,0,7,7,0}
- }
- },
- {
- "024",{1},&sb_hold,NIL,&once_hold,
- {
- {"",&description,HOLD_WIRE,COMBINABLE,255,255,0},
- {"Schrott","Da ist eine L�sterklemme dran, die|noch ganz brauchbar aussieht.|Ich nehme sie mit.",
- SCRAP_LK,0,4,4,0},
- {"L�sterklemme",&description,TERMINALSTRIP,COMBINABLE,255,255,0},
- {"Schrott","Junge, Junge! Die Explosion hat ein|ganz sch�nes Durcheinander angerichtet.",
- 0,0,5,5,0},
- {"Reaktor","Das war einmal der Reaktor.",0,0,6,6,0},
- {"D�se",&description,0,0,7,7,0},
- {"blauer K�rbis","Keine Ahnung, was das ist.",0,0,8,8,0},
- {"Luke",&description,LANDINGMOD_OUTERHATCH,EXIT+OPEN,1,2,2,LANDINGMODULE,6},
- {"Landef�hre","Sie war eigentlich f�r Bodenuntersuchungen|auf Arsano 3 gedacht.",
- 0,0,0,0,0},
- {"Ausgang",&description,0,EXIT,255,255,0,AIRLOCK,22},
- {"Luke","Sie f�hrt nach drau�en.",
- OUTERHATCH_TOP,EXIT+OPEN+OPENED,3,3,0,GENERATOR,8},
- {"Generator","Er versorgt das Raumschiff mit Strom.",
- GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8}
- }
- },
- {
- "025",{1},&sb_landingmod,NIL,NIL,
- {
- {"Steckdose",&description,LANDINGMOD_SOCKET,COMBINABLE,1,1,0},
- {"Knopf","Es ist ein Sicherheitsknopf.|Er kann nur mit einem spitzen|Gegenstand gedr�ckt werden.",
- LANDINGMOD_BUTTON,PRESS+COMBINABLE,2,2,0},
- {"Monitor",&description,LANDINGMOD_MONITOR,0,3,3,0},
- {"Tastatur",&description,KEYBOARD,0,4,4,0},
- {"",&description,LANDINGMOD_WIRE,COMBINABLE,255,255,0},
- {"Luke",&description,LANDINGMOD_HATCH,EXIT+OPEN+OPENED+COMBINABLE,
- 0,0,1+128,HOLD,10}
- }
- },
- {
- "018",{1,0,0,0,0,1},&sb_generator,NIL,NIL,
- {
- {"langes Kabel mit Stecker",&description,GENERATOR_WIRE,COMBINABLE,255,255,0},
- {"leere Kabelrolle",&description,0,UNNECESSARY,255,255,0},
- {"Keycard","Hey, das ist die Keycard des Commanders!|Er mu� sie bei dem �berst�rzten|Aufbruch verloren haben.",
- KEYCARD2,COMBINABLE+TAKE,12,12,5+128},
- {"Seil",&description,GENERATOR_ROPE,COMBINABLE,255,255,0},
- {"Luke","Sie f�hrt nach drau�en.",
- OUTERHATCH,EXIT+OPEN,1,2,1,OUTSIDE,22},
- {"Luke",&description,0,OPEN+CLOSED,3,3,0},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,4,4,0},
- {"Klappe",&description,TRAP,OPEN,5,6,2},
- {"Leitung",&description,0,0,7,7,0},
- {"Spannungmessger�t",&description,VOLTMETER,0,9,9,0},
- {"Klemme",&description,CLIP,COMBINABLE,8,8,0},
- {"Leitung","Sie f�hrt vom Generator zum Spannungmessger�t.",
- SHORT_WIRE,COMBINABLE,10,10,0},
- {"Leiter",&description,LADDER,EXIT,0,0,0,HOLD,1}
- }
- },
- {
- "004",{1},NIL,NIL,NIL,
- {
- {"Luke",&description,0,EXIT,0,0,0,GENERATOR,3},
- {"Seil",&description,0,UNNECESSARY,255,255,0}
- }
- },
- {
- "022",{1,1,1},NIL,NIL,NIL,
- {
- {"Bild","Manche Leute haben schon|einen komischen Geschmack.",0,
- UNNECESSARY,5,5,0},
- {"Zeichenger�te",
- "Auf dem Zettel sind lauter|unverst�ndliche Skizzen und Berechnungen.|(Jedenfalls f�r dich unverst�ndlich.)",
- 0,UNNECESSARY,6,6,0},
- {"Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,
- UNNECESSARY,7,7,0},
- {"Luke",&description,0,OPEN+OPENED+EXIT,3,3,15+128,CORRIDOR,5},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22}
- }
- },
- {
- "022",{1,0,0,1,1,1},NIL,NIL,NIL,
- {
- {"Schachspiel","Es macht wohl Spa�, an|der Decke Schach zu spielen.",
- 0,UNNECESSARY,11,11,0},
- {"Tennisschl�ger","Fliegt Boris Becker auch mit?",0,UNNECESSARY,8,8,0},
- {"Tennisball","Toll!",0,UNNECESSARY,9,9,0},
- {"Luke",&description,0,OPEN+OPENED+EXIT,3,3,15+128,CORRIDOR,5},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22}
- }
- },
- {
- "022",{1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1},&sb_cabin_r3,NIL,NIL,
- {
- {"Schachspiel","Dein Magnetschachspiel. Schach war|schon immer deine Leidenschaft.",
- CHESS,TAKE+COMBINABLE,12,12,7+128},
- {"Bett","Das ist dein Bett. Toll, nicht wahr?",0,0,13,13,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_K1,COMBINABLE,27,27,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_K2,COMBINABLE,28,28,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_K3,COMBINABLE,29,29,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_K4,COMBINABLE,30,30,0},
- {"Fach","Das ist eins deiner drei F�cher.",SHELF1,
- OPEN+CLOSED,14,18,9},
- {"Alben","Deine Briefmarkensammlung.",0,UNNECESSARY,14,14,0},
- {"Fach","Das ist eins deiner drei F�cher.",SHELF2,
- OPEN+CLOSED,15,19,10},
- {"Seil","Es ist ungef�hr 10 m lang und 4 cm dick.",ROPE,
- TAKE+COMBINABLE,15,15,12},
- {"Schrank","Das ist dein Schrank.",SHELF3,OPEN+CLOSED,16,17,11},
- {"Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,20,20,0},
- {"Kleider","Es sind Standard-Weltraum-Klamotten.",0,UNNECESSARY,21,21,0},
- {"Unterw�sche",&description,0,UNNECESSARY,22,22,0},
- {"Str�mpfe",&description,0,UNNECESSARY,23,23,0},
- {"Fach","Das ist eins deiner drei F�cher.",SHELF4,
- OPEN+CLOSED,24,25,13},
- {"Buch","Es ist|\"Per Anhalter durch die Galaxis\"|von Douglas Adams.",
- BOOK,TAKE,26,26,14},
- {"Discman","Es ist eine \"Mad Monkeys\"-CD darin.",
- DISCMAN,TAKE+COMBINABLE,33,33,16},
- {"Luke",&description,0,OPEN+EXIT,3,3,15+128,CORRIDOR,5},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22}
- }
- },
- {
- "021",{1,1,1,1,1,1},NIL,NIL,NIL,
- {
- {"Bild","Herb!",0,UNNECESSARY,5,5,0},
- {"Bild","Toll!",0,UNNECESSARY,6,6,0},
- {"Bild","Genial!",0,UNNECESSARY,7,7,0},
- {"Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,
- UNNECESSARY,8,8,0},
- {"Bild","Es scheint noch nicht fertig zu sein.",0,UNNECESSARY,9,9,0},
- {"Stift","Ein Kugelschreiber.",PEN,TAKE+COMBINABLE,10,10,5+128},
- {"Luke",&description,0,OPEN+OPENED+EXIT,3,3,24+128,CORRIDOR,9},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22}
- }
- },
- {
- "021",{1,0,0,0,0,0,1,1,1,1,0,0,1},&sb_cabin_l3,NIL,NIL,
- {
- {"Poster","Ein Poster von \"Big Boss\".",0,UNNECESSARY,11,11,0},
- {"Poster","Ein Poster von \"Rock Desaster\".",0,UNNECESSARY,12,12,0},
- {"Box",&description,0,0,13,13,0},
- {"Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,
- UNNECESSARY,14,14,0},
- {"Schallplatte","Die Platte ist von \"Big Boss\".",
- RECORD,TAKE+COMBINABLE,15,15,8+128},
- {"Schallplattenst�nder","Du hast jetzt keine Zeit, in|der Plattensammlung rumzust�bern.",
- 0,UNNECESSARY,16,16,0},
- {"Knopf",&description,TURNTABLE_BUTTON,PRESS,22,22,0},
- {"Plattenspieler","Sieht aus, als k�me|er aus dem Museum.",
- TURNTABLE,UNNECESSARY+COMBINABLE,17,17,0},
- {"Leitung",&description,WIRE,COMBINABLE,18,18,0},
- {"Leitung",&description,WIRE2,COMBINABLE,19,19,0},
- {"Stecker",&description,PLUG,COMBINABLE,20,20,0},
- {"Luke",&description,0,OPEN+OPENED+EXIT,3,3,24+128,CORRIDOR,9},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22}
- }
- },
- {
- "021",{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},&sb_cabin_l2,NIL,NIL,
- {
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_KL1,COMBINABLE,31,31,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_KL2,COMBINABLE,32,32,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_KL3,COMBINABLE,33,33,0},
- {"Schlitz","Es ist ein Keycard-Leser.",SLOT_KL4,COMBINABLE,45,45,0},
- {"Schrank",&description,SHELF_L1,OPEN+CLOSED,25,26,17},
- {"Pistole","Es ist keine Munition drin.",PISTOL,TAKE,39,39,20},
- {"Fach",&description,SHELF_L2,OPEN+CLOSED,27,28,18},
- {"B�cher","Lauter wissenschaftliche B�cher.",0,UNNECESSARY,40,40,0},
- {"Fach",&description,SHELF_L3,OPEN+CLOSED,29,30,19},
- {"Kabelrolle","Da sind mindestens zwanzig Meter drauf.",
- SPOOL,TAKE+COMBINABLE,41,41,21},
- {"Fach",&description,SHELF_L4,OPEN+CLOSED,43,44,22},
- {"Buch",&description,BOOK2,TAKE,46,46,23},
- {"Unterw�sche","Ich habe keine Lust, in|der Unterw�sche des|Commanders rumzuw�hlen.",
- 0,UNNECESSARY,34,34,0},
- {"Unterw�sche","Ich habe keine Lust, in|der Unterw�sche des|Commanders rumzuw�hlen.",
- 0,UNNECESSARY,35,35,0},
- {"Kleider",&description,0,UNNECESSARY,36,36,0},
- {"Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,37,37,0},
- {"Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,38,38,0},
- {"Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,
- UNNECESSARY,23,23,0},
- {"Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22},
- {"Luke",&description,0,OPEN+OPENED+EXIT,3,3,24+128,CORRIDOR,9},
- {"Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0},
- {"Schrank",&description,0,OPEN+CLOSED,1,1,0},
- {"Fach",&description,0,OPEN+CLOSED,2,2,0},
- {"Steckdose",&description,SOCKET,COMBINABLE,4,4,0},
- {"Ordner","Darauf steht \"Dienstanweisungen|zur Mission Supernova\".|Es steht nichts wichtiges drin.",
- 0,UNNECESSARY,49,49,0}
- }
- },
- {
- "023",{1},&sb_bathroom,NIL,NIL,
- {
- {"Klo","Ein Klo mit Saugmechanismus.",TOILET,0,0,0,0},
- {"Dusche",&description,SHOWER,0,1,1,0},
- {"Ausgang",&description,BATHROOM_EXIT,EXIT,255,255,0,0,22}
- }
+class ShipSleepCabin: public Room {
+public:
+ ShipSleepCabin() {
+ _filenumber = 33;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Luke", "Dies ist eine der Tiefschlafkammern.", CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
+ _objectState[1] = Object("Luke", "Dies ist eine der Tiefschlafkammern.", CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
+ _objectState[2] = Object("Computer", Object::defaultDescription, COMPUTER, NULLTYPE, 2, 2, 0, NULLROOM, 0);
+ _objectState[3] = Object("Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 2);
}
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+ virtual void onEntrance();
};
+class ShipCockpit : public Room {
+public:
+ ShipCockpit() {
+ _filenumber = 9;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Instrumente", "Hmm, sieht ziemlich kompliziert aus.", INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
+ _objectState[1] = Object("Monitor", Object::defaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
+ _objectState[2] = Object("Monitor", "Dieser Monitor sagt dir nichts.", NULLOBJECT, TAKE, 1, 0, 0, NULLROOM, 0);
+ _objectState[3] = Object("Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 2);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void animation();
+ virtual void onEntrance();
+};
-/* --- Rooms ------------------------------------ */
-
-room roomlist2[ROOMNUM2] =
-{
-
-/* --- Arsano --- */
-
- {
- "012",{1},&sb_rocks,NIL,&once_rocks,
- {
- {"Seil",&description,0,UNNECESSARY+EXIT,0,0,0,GENERATOR,12},
- {"Stein",&description,STONE,0,1,1,0},
- {"Stein",&description,0,0,2,2,0},
- {"Loch","Es scheint eine H�hle zu sein.",0,0,255,255,0,CAVE,1}
- }
- },
- {
- "012",{0},NIL,NIL,NIL,
- {
- {"Ausgang","Hier bist du gerade hergekommen.",
- 0,EXIT,255,255,0,ROCKS,22},
- {"Ausgang",&description,0,EXIT,255,255,0,MEETUP,2}
- }
- },
- {
- "037",{1},&sb_meetup,&anim_meetup,&once_meetup,
- {
- {"H�hle",&description,0,EXIT,255,255,0,CAVE,22},
- {"Schild","Diese Schrift kannst du nicht lesen.",MEETUP_SIGN,0,0,0,0},
- {"Eingang",&description,DOOR,EXIT,1,1,0,ENTRANCE,7},
- {"Stern",&description,STAR,0,2,2,0},
- {"Raumschiff",&description,SPACESHIPS,COMBINABLE,3,3,0},
- {"Raumschiff",&description,SPACESHIP,COMBINABLE,4,4,0}
- }
- },
- {
- "010",{1},&sb_entrance,&anim_entrance,NIL,
- {
- {"Portier","Du siehst doch selbst, wie er aussieht.",
- PORTER,TALK,0,0,0},
- {"T�r",&description,0,EXIT+OPEN+CLOSED,1,1,0,0,5},
- {"Schild","Diese Schrift kannst du nicht lesen.",
- KITCHEN_SIGN,0,2,2,0},
- {"Kaugummi",&description,SCHNUCK,TAKE,255,255,10+128},
- {"Gummib�rchen",&description,SCHNUCK,TAKE,255,255,11+128},
- {"Schokokugel",&description,SCHNUCK,TAKE,255,255,12+128},
- {"�berraschungsei",&description,EGG,TAKE,255,255,13+128},
- {"Lakritz",&description,SCHNUCK,TAKE,255,255,14+128},
- {"Tablette","Die Plastikh�lle zeigt einen|Mund mit einer Sprechblase. Was|darin steht, kannst du nicht lesen.",
- PILL,TAKE,255,255,0},
- {"Schlitz",&description,CAR_SLOT,COMBINABLE,6,6,0},
- {"Automat","Sieht aus wie ein Kaugummiautomat.",0,0,5,5,0},
- {"Toilette","Die Toiletten sind denen|auf der Erde sehr �hnlich.",
- ARS_BATHROOM,0,255,255,0},
- {"Knopf",&description,BATHROOM_BUTTON,PRESS,3,3,0},
- {"Schild","Diese Schrift kannst du nicht lesen.",BATHROOM_SIGN,0,4,4,0},
- {"Treppe",&description,STAIRCASE,EXIT,8,8,0,REST,3},
- {"Ausgang",&description,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22},
- {"M�nzen","Es sind seltsame|K�pfe darauf abgebildet.",
- COINS,TAKE+COMBINABLE,255,255,0},
- {"Tablettenh�lle","Darauf steht:\"Wenn Sie diese|Schrift jetzt lesen k�nnen,|hat die Tablette gewirkt.\"",
- PILL_HULL,TAKE,255,255,0}
- }
- },
- {
- "028",{1},NIL,&anim_remaining,NIL,
- {
- {"Treppe",&description,0,EXIT,0,0,0,ENTRANCE,17},
- {"Stuhl",&description,0,EXIT,1,1,0,ROGER,2},
- {"Schuhe","Wie ist der denn mit|Schuhen hier reingekommen?",0,0,2,2,0}
- }
- },
- {
- "029",{1},&sb_roger,&anim_roger,&once_roger,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,REST,19},
- {"Froschgesicht",&description,ROGER_W,TALK,0,0,0},
- {"Gekritzel","\"Mr Spock was here\"",0,0,3,3,0},
- {"Brieftasche",&description,WALLET,TAKE,1,1,4},
- {"Speisekarte","\"Heute empfehlen wir:|Fonua Opra mit Ulk.\"",0,UNNECESSARY,2,2,0},
- {"Tasse","Sie enth�lt eine gr�nliche Fl�ssigkeit.",CUP,UNNECESSARY,4,4,0},
- {"Schachspiel",&description,0,UNNECESSARY,255,255,0},
- {"10-Buckazoid-Schein","Nicht gerade sehr viel Geld.",
- 0,TAKE+COMBINABLE,255,255,0},
- {"Keycard von Roger",&description,KEYCARD_R,TAKE+COMBINABLE,255,255,0}
- }
- },
- {
- "019",{1},&sb_glider,&anim_glider,NIL,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,MEETUP,15},
- {"Knopf",&description,GLIDER_BUTTON1,PRESS,0,0,0},
- {"Knopf",&description,GLIDER_BUTTON2,PRESS,1,1,0},
- {"Knopf",&description,GLIDER_BUTTON3,PRESS,2,2,0},
- {"Knopf",&description,GLIDER_BUTTON4,PRESS,3,3,0},
- {"Keycard von Roger",&description,GLIDER_KEYCARD,TAKE+COMBINABLE,255,255,0},
- {"Schlitz",&description,GLIDER_SLOT,COMBINABLE,4,4,0},
- {"Fach",&description,0,OPEN,5,6,6},
- {"Tastatur",&description,GLIDER_BUTTONS,0,7,7,0},
- {"Anzeige","Hmm, seltsame Anzeigen.",GLIDER_DISPLAY,0,8,8,0},
- {"Instrumente","Hmm, seltsame Anzeigen.",GLIDER_INSTRUMENTS,0,9,9,0}
- }
- },
- {
- "038",{1},&sb_meetup2,NIL,&once_meetup2,
- {
- {"Roger W.",&description,ROGER_W,TALK,255,255,0},
- {"Raumschiff",&description,SPACESHIP,COMBINABLE,255,255,0},
- {"H�hle",&description,0,EXIT,255,255,0,CAVE,22}
- }
- },
- {
- "039",{1},&sb_meetup3,NIL,NIL,
- {
- {"Ufo","Der Eingang scheint offen zu sein.",UFO,EXIT,0,0,0,0,3},
- {"Stern",&description,STAR,0,1,1,0},
- {"H�hle",&description,0,EXIT,255,255,0,CAVE,22}
- }
+class ShipCabinL1: public Room {
+public:
+ ShipCabinL1() {
+ _filenumber = 21;
+ _shown[0] = true;
+ _shown[1] = true;
+ _shown[2] = true;
+ _shown[3] = true;
+ _shown[4] = true;
+ _shown[5] = true;
+
+ _objectState[0] = Object("Bild", "Herb!", NULLOBJECT, UNNECESSARY, 5, 5, 0, NULLROOM, 0);
+ _objectState[1] = Object("Bild", "Toll!", NULLOBJECT, UNNECESSARY, 6, 6, 0, NULLROOM, 0);
+ _objectState[2] = Object("Bild", "Genial!", NULLOBJECT, UNNECESSARY, 7, 7, 0, NULLROOM, 0);
+ _objectState[3] = Object("Magnete", "Damit werden Sachen auf|dem Tisch festgehalten.", NULLOBJECT, UNNECESSARY, 8, 8, 0, NULLROOM, 0);
+ _objectState[4] = Object("Bild", "Es scheint noch nicht fertig zu sein.", 0, UNNECESSARY, 9, 9, 0);
+ _objectState[5] = Object("Stift", "Ein Kugelschreiber.", PEN, TAKE | COMBINABLE, 10, 10, 5 | 128);
+ _objectState[6] = Object("Luke", &description, 0, OPEN | OPENED | EXIT, 3, 3, 24 | 128, CORRIDOR, 9);
+ _objectState[7] = Object("Schlitz", "Es ist ein Keycard-Leser.", 0, COMBINABLE, 0, 0, 0);
+ _objectState[8] = Object("Schrank", &description, 0, OPEN | CLOSED, 1, 1, 0);
+ _objectState[9] = Object("Fach", &description, 0, OPEN | CLOSED, 2, 2, 0);
+ _objectState[10] = Object("Steckdose", &description, SOCKET, COMBINABLE, 4, 4, 0);
+ _objectState[11] = Object("Toilette", &description, BATHROOM_DOOR, EXIT, 255, 255, 0, BATHROOM, 2);
}
};
-/* --- Rooms ------------------------------------ */
-
-room roomlist2[ROOMNUM2] =
-{
-
-/* --- Arsano --- */
-
- {
- "012",{1},&sb_rocks,NIL,&once_rocks,
- {
- {"Seil",&description,0,UNNECESSARY+EXIT,0,0,0,GENERATOR,12},
- {"Stein",&description,STONE,0,1,1,0},
- {"Stein",&description,0,0,2,2,0},
- {"Loch","Es scheint eine H”hle zu sein.",0,0,255,255,0,CAVE,1}
- }
- },
- {
- "012",{0},NIL,NIL,NIL,
- {
- {"Ausgang","Hier bist du gerade hergekommen.",
- 0,EXIT,255,255,0,ROCKS,22},
- {"Ausgang",&description,0,EXIT,255,255,0,MEETUP,2}
- }
- },
- {
- "037",{1},&sb_meetup,&anim_meetup,&once_meetup,
- {
- {"H”hle",&description,0,EXIT,255,255,0,CAVE,22},
- {"Schild","Diese Schrift kannst du nicht lesen.",MEETUP_SIGN,0,0,0,0},
- {"Eingang",&description,DOOR,EXIT,1,1,0,ENTRANCE,7},
- {"Stern",&description,STAR,0,2,2,0},
- {"Raumschiff",&description,SPACESHIPS,COMBINABLE,3,3,0},
- {"Raumschiff",&description,SPACESHIP,COMBINABLE,4,4,0}
- }
- },
- {
- "010",{1},&sb_entrance,&anim_entrance,NIL,
- {
- {"Portier","Du siehst doch selbst, wie er aussieht.",
- PORTER,TALK,0,0,0},
- {"Tr",&description,0,EXIT+OPEN+CLOSED,1,1,0,0,5},
- {"Schild","Diese Schrift kannst du nicht lesen.",
- KITCHEN_SIGN,0,2,2,0},
- {"Kaugummi",&description,SCHNUCK,TAKE,255,255,10+128},
- {"Gummib„rchen",&description,SCHNUCK,TAKE,255,255,11+128},
- {"Schokokugel",&description,SCHNUCK,TAKE,255,255,12+128},
- {"šberraschungsei",&description,EGG,TAKE,255,255,13+128},
- {"Lakritz",&description,SCHNUCK,TAKE,255,255,14+128},
- {"Tablette","Die Plastikhlle zeigt einen|Mund mit einer Sprechblase. Was|darin steht, kannst du nicht lesen.",
- PILL,TAKE,255,255,0},
- {"Schlitz",&description,CAR_SLOT,COMBINABLE,6,6,0},
- {"Automat","Sieht aus wie ein Kaugummiautomat.",0,0,5,5,0},
- {"Toilette","Die Toiletten sind denen|auf der Erde sehr „hnlich.",
- ARS_BATHROOM,0,255,255,0},
- {"Knopf",&description,BATHROOM_BUTTON,PRESS,3,3,0},
- {"Schild","Diese Schrift kannst du nicht lesen.",BATHROOM_SIGN,0,4,4,0},
- {"Treppe",&description,STAIRCASE,EXIT,8,8,0,REST,3},
- {"Ausgang",&description,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22},
- {"Mnzen","Es sind seltsame|K”pfe darauf abgebildet.",
- COINS,TAKE+COMBINABLE,255,255,0},
- {"Tablettenhlle","Darauf steht:\"Wenn Sie diese|Schrift jetzt lesen k”nnen,|hat die Tablette gewirkt.\"",
- PILL_HULL,TAKE,255,255,0}
- }
- },
- {
- "028",{1},NIL,&anim_remaining,NIL,
- {
- {"Treppe",&description,0,EXIT,0,0,0,ENTRANCE,17},
- {"Stuhl",&description,0,EXIT,1,1,0,ROGER,2},
- {"Schuhe","Wie ist der denn mit|Schuhen hier reingekommen?",0,0,2,2,0}
- }
- },
- {
- "029",{1},&sb_roger,&anim_roger,&once_roger,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,REST,19},
- {"Froschgesicht",&description,ROGER_W,TALK,0,0,0},
- {"Gekritzel","\"Mr Spock was here\"",0,0,3,3,0},
- {"Brieftasche",&description,WALLET,TAKE,1,1,4},
- {"Speisekarte","\"Heute empfehlen wir:|Fonua Opra mit Ulk.\"",0,UNNECESSARY,2,2,0},
- {"Tasse","Sie enth„lt eine grnliche Flssigkeit.",CUP,UNNECESSARY,4,4,0},
- {"Schachspiel",&description,0,UNNECESSARY,255,255,0},
- {"10-Buckazoid-Schein","Nicht gerade sehr viel Geld.",
- 0,TAKE+COMBINABLE,255,255,0},
- {"Keycard von Roger",&description,KEYCARD_R,TAKE+COMBINABLE,255,255,0}
- }
- },
- {
- "019",{1},&sb_glider,&anim_glider,NIL,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,MEETUP,15},
- {"Knopf",&description,GLIDER_BUTTON1,PRESS,0,0,0},
- {"Knopf",&description,GLIDER_BUTTON2,PRESS,1,1,0},
- {"Knopf",&description,GLIDER_BUTTON3,PRESS,2,2,0},
- {"Knopf",&description,GLIDER_BUTTON4,PRESS,3,3,0},
- {"Keycard von Roger",&description,GLIDER_KEYCARD,TAKE+COMBINABLE,255,255,0},
- {"Schlitz",&description,GLIDER_SLOT,COMBINABLE,4,4,0},
- {"Fach",&description,0,OPEN,5,6,6},
- {"Tastatur",&description,GLIDER_BUTTONS,0,7,7,0},
- {"Anzeige","Hmm, seltsame Anzeigen.",GLIDER_DISPLAY,0,8,8,0},
- {"Instrumente","Hmm, seltsame Anzeigen.",GLIDER_INSTRUMENTS,0,9,9,0}
- }
- },
- {
- "038",{1},&sb_meetup2,NIL,&once_meetup2,
- {
- {"Roger W.",&description,ROGER_W,TALK,255,255,0},
- {"Raumschiff",&description,SPACESHIP,COMBINABLE,255,255,0},
- {"H”hle",&description,0,EXIT,255,255,0,CAVE,22}
- }
- },
- {
- "039",{1},&sb_meetup3,NIL,NIL,
- {
- {"Ufo","Der Eingang scheint offen zu sein.",UFO,EXIT,0,0,0,0,3},
- {"Stern",&description,STAR,0,1,1,0},
- {"H”hle",&description,0,EXIT,255,255,0,CAVE,22}
- }
+
+class ShipCabinL2 : public Room {
+public:
+ ShipCabinL2() {
+ _filenumber = 21;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = false;
+ _shown[5] = false;
+ _shown[6] = false;
+ _shown[7] = false;
+ _shown[8] = false;
+ _shown[9] = false;
+ _shown[10] = false;
+ _shown[11] = false;
+ _shown[12] = false;
+ _shown[13] = false;
+ _shown[14] = false;
+ _shown[15] = false;
+ _shown[16] = true;
+
+ _objectState[0] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_KL1,COMBINABLE,31,31,0);
+ _objectState[1] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_KL2,COMBINABLE,32,32,0);
+ _objectState[2] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_KL3,COMBINABLE,33,33,0);
+ _objectState[3] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_KL4,COMBINABLE,45,45,0);
+ _objectState[4] = Object("Schrank",&description,SHELF_L1,OPEN | CLOSED,25,26,17);
+ _objectState[5] = Object("Pistole","Es ist keine Munition drin.",PISTOL,TAKE,39,39,20);
+ _objectState[6] = Object("Fach",&description,SHELF_L2,OPEN | CLOSED,27,28,18);
+ _objectState[7] = Object("B�cher","Lauter wissenschaftliche B�cher.",0,UNNECESSARY,40,40,0);
+ _objectState[8] = Object("Fach",&description,SHELF_L3,OPEN | CLOSED,29,30,19);
+ _objectState[9] = Object("Kabelrolle","Da sind mindestens zwanzig Meter drauf.", SPOOL,TAKE | COMBINABLE,41,41,21);
+ _objectState[10] = Object("Fach",&description,SHELF_L4,OPEN | CLOSED,43,44,22);
+ _objectState[11] = Object("Buch",&description,BOOK2,TAKE,46,46,23);
+ _objectState[12] = Object("Unterw�sche","Ich habe keine Lust, in|der Unterw�sche des|Commanders rumzuw�hlen.", 0,UNNECESSARY,34,34,0);
+ _objectState[13] = Object("Unterw�sche","Ich habe keine Lust, in|der Unterw�sche des|Commanders rumzuw�hlen.", 0,UNNECESSARY,35,35,0);
+ _objectState[14] = Object("Kleider",&description,0,UNNECESSARY,36,36,0);
+ _objectState[15] = Object("Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,37,37,0);
+ _objectState[16] = Object("Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,38,38,0);
+ _objectState[17] = Object("Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0, UNNECESSARY,23,23,0);
+ _objectState[18] = Object("Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
+ _objectState[19] = Object("Luke",&description,0,OPEN | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
+ _objectState[20] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0);
+ _objectState[21] = Object("Schrank",&description,0,OPEN | CLOSED,1,1,0);
+ _objectState[22] = Object("Fach",&description,0,OPEN | CLOSED,2,2,0);
+ _objectState[23] = Object("Steckdose",&description,SOCKET,COMBINABLE,4,4,0);
+ _objectState[24] = Object("Ordner","Darauf steht \"Dienstanweisungen|zur Mission Supernova\".|Es steht nichts wichtiges drin.", 0,UNNECESSARY,49,49,);
}
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
};
+class ShipCabinL3 : public Room {
+public:
+ ShipCabinL3() {
+ _filenumber = 21;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = false;
+ _shown[5] = false;
+ _shown[6] = true;
+ _shown[7] = true;
+ _shown[8] = true;
+ _shown[9] = true;
+ _shown[10] = false;
+ _shown[11] = false;
+ _shown[12] = true;
+
+ _objectState[0] = Object("Poster","Ein Poster von \"Big Boss\".",0,UNNECESSARY,11,11,0);
+ _objectState[1] = Object("Poster","Ein Poster von \"Rock Desaster\".",0,UNNECESSARY,12,12,0);
+ _objectState[2] = Object("Box",&description,0,0,13,13,0);
+ _objectState[3] = Object("Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,UNNECESSARY,14,14,0);
+ _objectState[4] = Object("Schallplatte","Die Platte ist von \"Big Boss\".",RECORD,TAKE | COMBINABLE,15,15,8 | 128);
+ _objectState[5] = Object("Schallplattenst�nder","Du hast jetzt keine Zeit, in|der Plattensammlung rumzust�bern.",0,UNNECESSARY,16,16,0);
+ _objectState[6] = Object("Knopf",&description,TURNTABLE_BUTTON,PRESS,22,22,0);
+ _objectState[7] = Object("Plattenspieler","Sieht aus, als k�me|er aus dem Museum.",TURNTABLE,UNNECESSARY | COMBINABLE,17,17,0);
+ _objectState[8] = Object("Leitung",&description,WIRE,COMBINABLE,18,18,0);
+ _objectState[9] = Object("Leitung",&description,WIRE2,COMBINABLE,19,19,0);
+ _objectState[10] = Object("Stecker",&description,PLUG,COMBINABLE,20,20,0);
+ _objectState[11] = Object("Luke",&description,0,OPEN | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
+ _objectState[12] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0);
+ _objectState[13] = Object("Schrank",&description,0,OPEN | CLOSED,1,1,0);
+ _objectState[14] = Object("Fach",&description,0,OPEN | CLOSED,2,2,0);
+ _objectState[15] = Object("Steckdose",&description,SOCKET,COMBINABLE,4,4,0);
+ _objectState[16] = Object("Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,2);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
-/* --- Rooms ------------------------------------ */
-
-room roomlist3[ROOMNUM3] =
-{
-
-/* --- Axacuss --- */
-
- {
- "043",{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
- &sb_cell,&anim_cell,&once_cell,
- {
- {"Knopf",&description,CELL_BUTTON,PRESS,1,1,0},
- {"T�r",&description,CELL_DOOR,EXIT+OPEN+CLOSED,0,0,31+128,CORRIDOR4,1},
- {"Tablett","Es ist irgendein Fra� und|etwas zu Trinken darauf.",
- TRAY,UNNECESSARY,255,255,0},
- {"Stange","Es scheint eine Lampe zu sein.",0,COMBINABLE,3,3,0},
- {"Augen","Es ist nur ein Bild.",0,0,4,4,0},
- {"Leitung",&description,CELL_WIRE,COMBINABLE+TAKE,6,6,0},
- {"Steckdose","Sieht etwas anders aus als auf der Erde.",
- SOCKET,COMBINABLE,5,5,0},
- {"Metallblock","Er ist ziemlich schwer.",
- MAGNET,TAKE+COMBINABLE,255,255,30},
- {"Roboter","Den hast du erledigt.",0,0,255,255,0},
- {"Tisch","Ein kleiner Metalltisch.",CELL_TABLE,COMBINABLE,2,2,0}
- }
- },
- {
- "016",{1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1},
- NIL,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,GUARD3,2},
- {"Ausgang",&description,0,EXIT,3,3,0,CORRIDOR2,22}
- }
- },
- {
- "016",{1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1},
- NIL,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,CORRIDOR1,2},
- {"Ausgang",&description,0,EXIT,3,3,0,CORRIDOR3,22},
- {"Ausgang",&description,0,EXIT,1,1,0,CORRIDOR4,14}
- }
- },
- {
- "016",{1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1},
- NIL,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,CORRIDOR2,2}
- }
- },
- {
- "016",{1,1,1,0,0,0,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,1},
- &sb_corridor4,NIL,&once_corridor4,
- {
- {"Ausgang",&description,0,EXIT,0,0,0,CORRIDOR2,10},
- {"Ausgang",&description,0,EXIT,1,1,0,GUARD,14},
- {"Zellent�r","Hier warst du eingesperrt.",
- DOOR,EXIT+OPEN+OPENED+CLOSED,7,7,0,CELL,16},
- {"Laptop",&description,NEWSPAPER,TAKE,6,6,8},
- {"Armbanduhr",&description,WATCH,TAKE+COMBINABLE,255,255,8},
- {"Tisch",&description,TABLE,COMBINABLE,5,5,0}
- }
- },
- {
- "016",{1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1},
- &sb_corridor5,NIL,&once_corridor,
- {
- {"Ausgang",&description,DOOR,EXIT,2,2,0,0,2},
- {"Ausgang",&description,0,EXIT,3,3,0,CORRIDOR6,22}
- }
- },
- {
- "016",{1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1},
- &sb_corridor6,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,CORRIDOR5,2},
- {"Ausgang",&description,0,EXIT,3,3,0,CORRIDOR7,22},
- {"T�r",&description,DOOR,OPEN+CLOSED,255,255,0,CORRIDOR8,13}
- }
- },
- {
- "016",{1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1},
- NIL,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,CORRIDOR6,2},
- {"Ausgang",&description,0,EXIT,3,3,0,GUARD,22}
- }
- },
- {
- "016",{1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1},
- &sb_corridor8,NIL,&once_corridor,
- {
- {"T�r",&description,DOOR,EXIT+OPEN,0,0,0,CORRIDOR6,10},
- {"Ausgang",&description,0,EXIT,3,3,0,BCORRIDOR,22}
- }
- },
- {
- "016",{1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1},
- &sb_corridor9,NIL,&once_corridor,
- {
- {"Ausgang",&description,0,EXIT,2,2,0,BCORRIDOR,2},
- {"T�r",&description,DOOR,EXIT+OPEN,0,0,0,GUARD,10}
- }
- },
- {
- "006",{1,0,0,1},&sb_bgang,NIL,&once_bgang,
- {
- {"S�ule",&description,PILLAR1,0,4,4,0},
- {"S�ule",&description,PILLAR2,0,5,5,0},
- {"Ausgang",&description,0,EXIT,6,6,0,CORRIDOR8,2},
- {"Ausgang",&description,0,EXIT,7,7,0,CORRIDOR9,22},
- {"T�r","Auf einem Schild an der T�r steht \"Dr. Alab Hansi\".",
- DOOR1,EXIT+OPEN+CLOSED+OCCUPIED,0,0,1,OFFICE_L1,6},
- {"T�r","Auf einem Schild an der T�r steht \"Saval Lun\".",
- DOOR2,EXIT+OPEN+CLOSED+OCCUPIED,1,1,2,OFFICE_L2,16},
- {"T�r","Auf einem Schild an der T�r steht \"Prof. Dr. Ugnul Tschabb\".",
- DOOR3,EXIT+OPEN+OPENED,2,2,3,OFFICE_R1,8},
- {"T�r","Auf einem Schild an der T�r steht \"Alga Hurz Li\".",
- DOOR4,EXIT+OPEN+CLOSED+OCCUPIED,3,3,4,OFFICE_R2,18}
- }
- },
- {
- "040",{1},&sb_guard,NIL,NIL,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,CORRIDOR4,21},
- {"Gang",&description,0,EXIT,3,3,0,CORRIDOR7,5},
- {"T�r",&description,DOOR,EXIT+OPEN,1,1,6,CORRIDOR9,3},
- {"Axacussaner","Du m��test ihn irgendwie ablenken.",
- GUARD,TALK,0,0,0},
- {"Bild","Komisches Bild.",0,0,2,2,0},
- {"Karte","Darauf steht: \"Generalkarte\".",
- MASTERKEYCARD,TAKE+COMBINABLE,255,255,1}
- }
- },
- {
- "042",{1},&sb_guard3,NIL,NIL,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,CORRIDOR1,22},
- {"T�r",&description,0,EXIT+OPEN+CLOSED,0,0,0,0,20},
- {"T�r",&description,0,EXIT+OPEN+CLOSED,1,1,0,0,15},
- {"T�r",&description,DOOR,EXIT+OPEN,2,2,11,OFFICE_L,0},
- {"Lampe",&description,LAMP,COMBINABLE,3,3,0},
- {"Axacussaner",&description,GUARD,TALK,5,5,0},
- {"Bild","Seltsam!",0,0,4,4,0}
- }
- },
- {
- "007",{1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1},
- &sb_office1,NIL,NIL,
- {
- {"T�r",&description,DOOR,EXIT+OPEN+OPENED,6,6,9,BCORRIDOR,9},
- {"Computer",&description,COMPUTER,COMBINABLE,4,4,0},
- {"Geld","Es sind 500 Xa.",TICKETS,TAKE,255,255,0},
- {"Schlie�fach","Es hat ein elektronisches Zahlenschlo�.",
- LOCKER,OPEN+CLOSED,5,5,0},
- {"Brief",&description,LETTER,UNNECESSARY,3,3,0}
- }
- },
- {
- "007",{1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1},
- &sb_office2,NIL,NIL,
- {
- {"T�r",&description,DOOR,EXIT+OPEN+OPENED,6,6,9,BCORRIDOR,9},
- {"Computer",&description,COMPUTER,COMBINABLE,4,4,0},
- {"W�rfel","Sonderbar!",0,0,0,0,0},
- {"Bild","Affenstark!",0,0,1,1,0},
- {"Komisches Ding","Wundersam!",0,UNNECESSARY,2,2,0}
- }
- },
- {
- "008",{1,1,0,1},&sb_office3,NIL,NIL,
- {
- {"T�r",&description,DOOR,EXIT+OPEN+OPENED,0,0,3,BCORRIDOR,5},
- {"Computer",&description,COMPUTER,COMBINABLE,4,4,0},
- {"Bild","Es ist ein Axacussanerkopf auf dem Bild.",0,UNNECESSARY,1,1,0},
- {"Bild","Es ist ein Axacussanerkopf auf dem Bild.",PAINTING,UNNECESSARY,2,2,0},
- {"Pflanze",&description,0,UNNECESSARY,3,3,0},
- {NIL,&description,MONEY,TAKE+COMBINABLE,255,255,0}
- }
- },
- {
- "008",{1,0,1,1},&sb_office4,NIL,NIL,
- {
- {"T�r",&description,DOOR,EXIT+OPEN+OPENED,0,0,3,BCORRIDOR,5},
- {"Computer",&description,COMPUTER,COMBINABLE,4,4,0},
- {"Figur","Stark!",0,UNNECESSARY,6,6,0},
- {"Pflanze","Sie ist den Pflanzen auf der Erde sehr �hnlich.",
- 0,UNNECESSARY,5,5,0}
- }
- },
- {
- "007",{1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1},
- &sb_office5,NIL,&once_office5,
- {
- {"T�r",&description,DOOR,EXIT+OPEN+OPENED,6,6,17,GUARD3,9},
- {"Computer","Er funktioniert nicht.",COMPUTER,COMBINABLE,4,4,0},
- {"Graffiti","Seltsamer B�roschmuck!",0,0,7,7,0},
- {"Geld","Es sind 350 Xa.",TICKETS,TAKE,8,8,0}
- }
- },
- {
- "003",{1},&sb_elevator,NIL,NIL,
- {
- {"Knopf",&description,BUTTON1,PRESS,0,0,0},
- {"Knopf",&description,BUTTON2,PRESS,1,1,0},
- {"Ausgang",&description,DOOR,EXIT,255,255,0,0,22},
- {"Dschungel","Lauter B�ume.",JUNGLE,0,255,255,0,STATION,2}
- }
- },
- {
- "005",{1},&sb_station,NIL,NIL,
- {
- {"Schild",&description,STATION_SIGN,0,0,0,0},
- {"T�r",&description,DOOR,EXIT+OPEN+CLOSED,1,1,0,0,7}
- }
- },
- {
- "032",{1,1},&sb_sign,NIL,NIL,
- {
- {"Ausgang",&description,0,EXIT,255,255,0,STATION,22},
- {"Schlitz",&description,SLOT,COMBINABLE,0,0,0}
- }
+class ShipCabinR1 : public Room {
+public:
+ ShipCabinR1() {
+ _filenumber = 22;
+ _shown[0] = true;
+ _shown[1] = true;
+ _shown[2] = true;
+
+ _objectState[0] = Object("Bild","Manche Leute haben schon|einen komischen Geschmack.",0,UNNECESSARY,5,5,0);
+ _objectState[1] = Object("Zeichenger�te","Auf dem Zettel sind lauter|unverst�ndliche Skizzen und Berechnungen.|(Jedenfalls f�r dich unverst�ndlich.)",0,UNNECESSARY,6,6,0);
+ _objectState[2] = Object("Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",0,UNNECESSARY,7,7,0);
+ _objectState[3] = Object("Luke",&description,0,OPEN | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[4] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0);
+ _objectState[5] = Object("Schrank",&description,0,OPEN | CLOSED,1,1,0);
+ _objectState[6] = Object("Fach",&description,0,OPEN | CLOSED,2,2,0);
+ _objectState[7] = Object("Steckdose",&description,SOCKET,COMBINABLE,4,4,0);
+ _objectState[8] = Object("Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,2);
}
};
+class ShipCabinR2 : public Room {
+public:
+ ShipCabinR2() {
+ _filenumber = 22;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = true;
+ _shown[4] = true;
+ _shown[5] = true;
+
+ _objectState[0] = Object("Schachspiel","Es macht wohl Spa�, an|der Decke Schach zu spielen.",0,UNNECESSARY,11,11,0);
+ _objectState[1] = Object("Tennisschl�ger","Fliegt Boris Becker auch mit?",0,UNNECESSARY,8,8,0);
+ _objectState[2] = Object("Tennisball","Toll!",0,UNNECESSARY,9,9,0);
+ _objectState[3] = Object("Luke",&description,0,OPEN | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[4] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0);
+ _objectState[5] = Object("Schrank",&description,0,OPEN | CLOSED,1,1,0);
+ _objectState[6] = Object("Fach",&description,0,OPEN | CLOSED,2,2,0);
+ _objectState[7] = Object("Steckdose",&description,SOCKET,COMBINABLE,4,4,0);
+ _objectState[8] = Object("Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,2);
+ }
+};
+
+class ShipCabinR3 : public Room {
+public:
+ ShipCabinR3() {
+ _filenumber = 22;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = false;
+ _shown[5] = false;
+ _shown[6] = false;
+ _shown[7] = true;
+ _shown[8] = true;
+ _shown[9] = false;
+ _shown[10] = false;
+ _shown[11] = false;
+ _shown[12] = false;
+ _shown[13] = false;
+ _shown[14] = false;
+ _shown[15] = true;
+
+ _objectState[0] = Object("Schachspiel","Dein Magnetschachspiel. Schach war|schon immer deine Leidenschaft.",CHESS,TAKE | COMBINABLE,12,12,7 | 128);
+ _objectState[1] = Object("Bett","Das ist dein Bett. Toll, nicht wahr?",0,0,13,13,0);
+ _objectState[2] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_K1,COMBINABLE,27,27,0);
+ _objectState[3] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_K2,COMBINABLE,28,28,0);
+ _objectState[4] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_K3,COMBINABLE,29,29,0);
+ _objectState[5] = Object("Schlitz","Es ist ein Keycard-Leser.",SLOT_K4,COMBINABLE,30,30,0);
+ _objectState[6] = Object("Fach","Das ist eins deiner drei F�cher.",SHELF1,OPEN | CLOSED,14,18,9);
+ _objectState[7] = Object("Alben","Deine Briefmarkensammlung.",0,UNNECESSARY,14,14,0);
+ _objectState[8] = Object("Fach","Das ist eins deiner drei F�cher.",SHELF2,OPEN | CLOSED,15,19,10);
+ _objectState[9] = Object("Seil","Es ist ungef�hr 10 m lang und 4 cm dick.",ROPE,TAKE | COMBINABLE,15,15,12);
+ _objectState[10] = Object("Schrank","Das ist dein Schrank.",SHELF3,OPEN | CLOSED,16,17,11);
+ _objectState[11] = Object("Krimskram","Es ist nichts brauchbares dabei.",0,UNNECESSARY,20,20,0);
+ _objectState[12] = Object("Kleider","Es sind Standard-Weltraum-Klamotten.",0,UNNECESSARY,21,21,0);
+ _objectState[13] = Object("Unterw�sche",&description,0,UNNECESSARY,22,22,0);
+ _objectState[14] = Object("Str�mpfe",&description,0,UNNECESSARY,23,23,0);
+ _objectState[15] = Object("Fach","Das ist eins deiner drei F�cher.",SHELF4,OPEN | CLOSED,24,25,13);
+ _objectState[16] = Object("Buch","Es ist|\"Per Anhalter durch die Galaxis\"|von Douglas Adams.",BOOK,TAKE,26,26,14);
+ _objectState[17] = Object("Discman","Es ist eine \"Mad Monkeys\"-CD darin.",DISCMAN,TAKE | COMBINABLE,33,33,16);
+ _objectState[18] = Object("Luke",&description,0,OPEN | EXIT,3,3,15 | 128,CORRIDOR,5);
+ _objectState[19] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,0,0,0);
+ _objectState[20] = Object("Schrank",&description,0,OPEN | CLOSED,1,1,0);
+ _objectState[21] = Object("Fach",&description,0,OPEN | CLOSED,2,2,0);
+ _objectState[22] = Object("Steckdose",&description,SOCKET,COMBINABLE,4,4,0);
+ _objectState[23] = Object("Toilette",&description,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,2);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipCabinBathroom : public Room {
+public:
+ ShipCabinBathroom() {
+ _filenumber = 23;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Klo","Ein Klo mit Saugmechanismus.",TOILET,0,0,0,0);
+ _objectState[1] = Object("Dusche",&description,SHOWER,0,1,1,0);
+ _objectState[2] = Object("Ausgang",&description,BATHROOM_EXIT,EXIT,255,255,0,0,2);
+ }
+};
+
+class ShipAirlock : public Room {
+public:
+ ShipAirlock() {
+ _filenumber = 34;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = false;
+ _shown[5] = false;
+ _shown[6] = true;
+
+ _objectState[0] = Object("Luke","Das ist eine Luke !!!",0,EXIT | OPEN | OPENED | CLOSED,0,0,0,CORRIDOR,10);
+ _objectState[1] = Object("Luke","Dies ist eine Luke !!!",0,EXIT | OPEN | CLOSED,1,1,0,HOLD,14);
+ _objectState[2] = Object("Knopf",&description,BUTTON1,PRESS,2,2,0);
+ _objectState[3] = Object("Knopf",&description,BUTTON2,PRESS,3,3,0);
+ _objectState[4] = Object("Helm","Es ist der Helm zum Raumanzug.",HELMET,TAKE,4,4,7);
+ _objectState[5] = Object("Raumanzug","Der einzige Raumanzug, den die|anderen hiergelassen haben ...",SUIT,TAKE,5,5,8);
+ _objectState[6] = Object("Versorgung","Es ist der Versorgungsteil zum Raumanzug.",LIFESUPPORT,TAKE,6,6,9);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void onEntrance();
+};
+
+class ShipHold : public Room {
+public:
+ ShipHold() {
+ _filenumber = 24;
+ _shown[0] = true;
+
+ _objectState[0] = Object("",&description,HOLD_WIRE,COMBINABLE,255,255,0);
+ _objectState[1] = Object("Schrott","Da ist eine L�sterklemme dran, die|noch ganz brauchbar aussieht.|Ich nehme sie mit.",SCRAP_LK,0,4,4,0);
+ _objectState[2] = Object("L�sterklemme",&description,TERMINALSTRIP,COMBINABLE,255,255,0);
+ _objectState[3] = Object("Schrott","Junge, Junge! Die Explosion hat ein|ganz sch�nes Durcheinander angerichtet.",0,0,5,5,0);
+ _objectState[4] = Object("Reaktor","Das war einmal der Reaktor.",0,0,6,6,0);
+ _objectState[5] = Object("D�se",&description,0,0,7,7,0);
+ _objectState[6] = Object("blauer K�rbis","Keine Ahnung, was das ist.",0,0,8,8,0);
+ _objectState[7] = Object("Luke",&description,LANDINGMOD_OUTERHATCH,EXIT | OPEN,1,2,2,LANDINGMODULE,6);
+ _objectState[8] = Object("Landef�hre","Sie war eigentlich f�r Bodenuntersuchungen|auf Arsano 3 gedacht.",0,0,0,0,0);
+ _objectState[9] = Object("Ausgang",&description,0,EXIT,255,255,0,AIRLOCK,22);
+ _objectState[10] = Object("Luke","Sie f�hrt nach drau�en.",OUTERHATCH_TOP,EXIT | OPEN | OPENED,3,3,0,GENERATOR,8);
+ _objectState[11] = Object("Generator","Er versorgt das Raumschiff mit Strom.",GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+ virtual void onEntrance();
+};
+
+class ShipLandingModule : public Room {
+public:
+ ShipLandingModule() {
+ _filenumber = 25;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Steckdose",&description,LANDINGMOD_SOCKET,COMBINABLE,1,1,0);
+ _objectState[1] = Object("Knopf","Es ist ein Sicherheitsknopf.|Er kann nur mit einem spitzen|Gegenstand gedr�ckt werden.",LANDINGMOD_BUTTON,PRESS | COMBINABLE,2,2,0);
+ _objectState[2] = Object("Monitor",&description,LANDINGMOD_MONITOR,0,3,3,0);
+ _objectState[3] = Object("Tastatur",&description,KEYBOARD,0,4,4,0);
+ _objectState[4] = Object("",&description,LANDINGMOD_WIRE,COMBINABLE,255,255,0);
+ _objectState[5] = Object("Luke",&description,LANDINGMOD_HATCH,EXIT | OPEN | OPENED | COMBINABLE, 0,0,1 | 128,HOLD,10);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipGenerator : public Room {
+public:
+ ShipGenerator() {
+ _filenumber = 18;
+ _shown[0] = true;
+ _shown[1] = false;
+ _shown[2] = false;
+ _shown[3] = false;
+ _shown[4] = false;
+ _shown[5] = true;
+
+ _objectState[0] = Object("langes Kabel mit Stecker",&description,GENERATOR_WIRE,COMBINABLE,255,255,0);
+ _objectState[1] = Object("leere Kabelrolle",&description,0,UNNECESSARY,255,255,0);
+ _objectState[2] = Object("Keycard","Hey, das ist die Keycard des Commanders!|Er mu� sie bei dem �berst�rzten|Aufbruch verloren haben.",KEYCARD2,COMBINABLE | TAKE,12,12,5 | 128);
+ _objectState[3] = Object("Seil",&description,GENERATOR_ROPE,COMBINABLE,255,255,0);
+ _objectState[4] = Object("Luke","Sie f�hrt nach drau�en.",OUTERHATCH,EXIT | OPEN,1,2,1,OUTSIDE,22);
+ _objectState[5] = Object("Luke",&description,0,OPEN | CLOSED,3,3,0);
+ _objectState[6] = Object("Schlitz","Es ist ein Keycard-Leser.",0,COMBINABLE,4,4,0);
+ _objectState[7] = Object("Klappe",&description,TRAP,OPEN,5,6,2);
+ _objectState[8] = Object("Leitung",&description,0,0,7,7,0);
+ _objectState[9] = Object("Spannungmessger�t",&description,VOLTMETER,0,9,9,0);
+ _objectState[10] = Object("Klemme",&description,CLIP,COMBINABLE,8,8,0);
+ _objectState[11] = Object("Leitung","Sie f�hrt vom Generator zum Spannungmessger�t.",SHORT_WIRE,COMBINABLE,10,10,0);
+ _objectState[12] = Object("Leiter",&description,LADDER,EXIT,0,0,0,HOLD,1);
+ }
+
+ virtual bool interact(Action verb, Object &obj1, Object &obj2);
+};
+
+class ShipOuterSpace : public Room {
+public:
+ ShipOuterSpace() {
+ _filenumber = 4;
+ _shown[0] = true;
+
+ _objectState[0] = Object("Luke",&description,0,EXIT,0,0,0,GENERATOR,3);
+ _objectState[1] = Object("Seil",&description,0,UNNECESSARY,255,255,0);
+ }
+};
+
+// Arsano
+
+// Axacuss
+
+
}
#endif // ROOMS_H