SUPERNOVA: Move object name and description strings to engine data file

This commit is contained in:
Thierry Crozat 2017-10-01 21:36:15 +01:00
parent be08dd3c57
commit 7722fe99cd
7 changed files with 865 additions and 652 deletions

View File

@ -36,233 +36,414 @@
const char *gameText[] = {
// 0
"Gehe", // kCommandGo
"Schau", // kCommandLook
"Nimm", // kCommandTake
"\231ffne", // kCommandOpen
"Schlie\341e", // kCommandClose
"Gehe", // kStringCommandGo
"Schau", // kStringCommandLook
"Nimm", // kStringCommandTake
"\231ffne", // kStringCommandOpen
"Schlie\341e", // kStringCommandClose
// 5
"Dr\201cke", // kCommandPress
"Ziehe", // kCommandPull
"Benutze", // kCommandUse
"Rede", // kCommandTalk
"Gib", // kCommandGive
"Dr\201cke", // kStringCommandPress
"Ziehe", // kStringCommandPull
"Benutze", // kStringCommandUse
"Rede", // kStringCommandTalk
"Gib", // kStringCommandGive
// 10
"Gehe zu ", // kStatusCommandGo
"Schau ", // kStatusCommandLook
"Nimm ", // kStatusCommandTake
"\231ffne ", // kStatusCommandOpen
"Schlie\341e ", // kStatusCommandClose
"Gehe zu ", // kStringStatusCommandGo
"Schau ", // kStringStatusCommandLook
"Nimm ", // kStringStatusCommandTake
"\231ffne ", // kStringStatusCommandOpen
"Schlie\341e ", // kStringStatusCommandClose
// 15
"Dr\201cke ", // kStatusCommandPress
"Ziehe ", // kStatusCommandPull
"Benutze ", // kStatusCommandUse
"Rede mit ", // kStatusCommandTalk
"Gib ", // kStatusCommandGive
"Dr\201cke ", // kStringStatusCommandPress
"Ziehe ", // kStringStatusCommandPull
"Benutze ", // kStringStatusCommandUse
"Rede mit ", // kStringStatusCommandTalk
"Gib ", // kStringStatusCommandGive
// 20
"Hmm, er scheint kaputt zu sein.", // kBroken
"^(C) 1994 Thomas und Steffen Dingel#", // kIntro1
"Story und Grafik:^ Thomas Dingel#", // kIntro2
"Programmierung:^ Steffen Dingel#", // kIntro3
"Musik:^ Bernd Hoffmann#", // kIntro4
"V2.02", // kStringTitleVersion
"Teil 1:", // kStringTitle1
"Das Schicksal", // kStringTitle2
"des Horst Hummel", // kStringTitle3
"^(C) 1994 Thomas und Steffen Dingel#", // kStringIntro1
// 25
"Getestet von ...#", // kIntro5
"^Matthias Neef#", // kIntro6
"^Sascha Otterbach#", // kIntro7
"^Thomas Mazzoni#", // kIntro8
"^Matthias Klein#", // kIntro9
"Story und Grafik:^ Thomas Dingel#", // kStringIntro2
"Programmierung:^ Steffen Dingel#", // kStringIntro3
"Musik:^ Bernd Hoffmann#", // kStringIntro4
"Getestet von ...#", // kStringIntro5
"^Matthias Neef#", // kStringIntro6
// 30
"^Gerrit Rothmaier#", // kIntro10
"^Thomas Hassler#", // kIntro11
"^Rene Koch#", // kIntro12
"°", // kIntro13
"Keycard", // kKeycard
"^Sascha Otterbach#", // kStringIntro7
"^Thomas Mazzoni#", // kStringIntro8
"^Matthias Klein#", // kStringIntro9
"^Gerrit Rothmaier#", // kStringIntro10
"^Thomas Hassler#", // kStringIntro11
// 35
"Die Keycard f\224r deine Schr\204nke.", // kKeycardDesc
"Taschenmesser", // kKnife
"Es ist nicht mehr das sch\204rfste.", // kKnifeDesc
"Armbanduhr", // kWatch
"Discman", // kDiscman
"^Rene Koch#", // kStringIntro12
"\233", // kStringIntro13
"Hmm, er scheint kaputt zu sein.", // kStringBroken
"Es ist nichts Besonderes daran.", // kStringDefaultDescription
"Das mußt du erst nehmen.", // kStringTakeMessage
// 40
"Es ist eine \"Mad Monkeys\"-CD darin.", // kDiscmanDesc
"", //
"", //
"", //
"", //
"Keycard", // kStringKeycard
"Die Keycard f\224r deine Schr\204nke.", // kStringKeycardDescription
"Taschenmesser", // kStringKnife
"Es ist nicht mehr das sch\204rfste.", // kStringKnifeDescription
"Armbanduhr", // kStringWatch
// 45
"", //
"", //
"", //
"", //
"", //
"Discman", // kStringDiscman
"Es ist eine \"Mad Monkeys\"-CD darin.", // kStringDiscmanDescription
"Luke", // kStringHatch
"Knopf", // kStringButton
"Er geh\224rt zu der gro\341en Luke.", // kStringHatchButtonDescription
// 50
"", //
"", //
"", //
"", //
"", //
"Leiter", // kStringLadder
"Ausgang", // kStringExit
"Sie f\204hrt ins Cockpit.", // kStringCockpitHatchDescription
"Sie f\204hrt zur K\201che.", // kStringKitchenHatchDescription
"Sie f\204hrt zu den Tiefschlafkammern.", // kStringStasisHatchDescription
// 55
"", //
"", //
"", //
"", //
"", //
"Dies ist eine der Tiefschlafkammern.", // kStringStasisHatchDescription2
"Schlitz", // kStringSlot
"Es ist ein Keycard-Leser.", // kStringSlotDescription
"Gang", // kStringCorridor
"Computer", // kStringComputer
// 60
"", //
"", //
"", //
"", //
"", //
"ZWEIUNDVIERZIG", // kStringComputerPassword
"Instrumente", // kStringInstruments
"Hmm, sieht ziemlich kompliziert aus.", // kStringInstrumentsDescription1
"Monitor", // kStringMonitor
"Dieser Monitor sagt dir nichts.", // kStringMonitorDescription
// 65
"", //
"", //
"", //
"", //
"", //
"Bild", // kStringImage
"Herb!", // kStringGenericDescription1
"Toll!", // kStringGenericDescription2
"Genial!", // kStringGenericDescription3
"Es scheint noch nicht fertig zu sein.", // kStringGenericDescription4
// 70
"", //
"", //
"", //
"", //
"", //
"Magnete", // kStringMagnete
"Damit werden Sachen auf|dem Tisch festgehalten.", // kStringMagneteDescription
"Stift", // kStringPen
"Ein Kugelschreiber.", // kStringPenDescription
"Schrank", // kStringShelf
// 75
"", //
"", //
"", //
"", //
"", //
"Fach", // kStringCompartment
"Steckdose", // kStringSocket
"Toilette", // kStringToilet
"Pistole", // kStringPistol
"Es ist keine Munition drin.", // kStringPistolDescription
// 80
"", //
"", //
"", //
"", //
"", //
"B\201cher", // kStringBooks
"Lauter wissenschaftliche B\201cher.", // kStringBooksDescription
"Kabelrolle", // kStringSpool
"Da sind mindestens zwanzig Meter drauf.", // kStringSpoolDescription
"Buch", // kStringBook
// 85
"", //
"", //
"", //
"", //
"", //
"Unterw\204sche", // kStringUnderwear
"Ich habe keine Lust, in|der Unterw\204sche des|Commanders rumzuw\201hlen.", // kStringUnderwearDescription
"Kleider", // kStringClothes
"Krimskram", // kStringJunk
"Es ist nichts brauchbares dabei.", // kStringJunkDescription
// 90
"", //
"", //
"", //
"", //
"", //
"Ordner", // kStringFolders
"Darauf steht \"Dienstanweisungen|zur Mission Supernova\".|Es steht nichts wichtiges drin.", // kStringFoldersDescription
"Poster", // kStringPoster
"Ein Poster von \"Big Boss\".", // kStringPosterDescription1
"Ein Poster von \"Rock Desaster\".", // kStringPosterDescription2
// 95
"", //
"", //
"", //
"", //
"", //
"Box", // kStringSpeaker
"Schallplatte", // kStringRecord
"Die Platte ist von \"Big Boss\".", // kStringRecordDescription
"Schallplattenst\204nder", // kStringRecordStand
"Du hast jetzt keine Zeit, in|der Plattensammlung rumzust\224bern.", // kStringRecordStandDescription
// 100
"", //
"", //
"", //
"", //
"", //
"Plattenspieler", // kStringTurntable
"Sieht aus, als k\204me|er aus dem Museum.", // kStringTurntableDescription
"Leitung", // kStringWire
"Stecker", // kStringPlug
"Manche Leute haben schon|einen komischen Geschmack.", // kStringImageDescription1
// 105
"", //
"", //
"", //
"", //
"", //
"Zeichenger\204te", // kStringDrawingInstruments
"Auf dem Zettel sind lauter|unverst\204ndliche Skizzen und Berechnungen.|(Jedenfalls f\201r dich unverst\204ndlich.)", // kStringDrawingInstrumentsDescription
"Schachspiel", // kStringChessGame
"Es macht wohl Spa\341, an|der Decke Schach zu spielen.", // kStringChessGameDescription1
"Tennisschl\204ger", // kStringTennisRacket
// 110
"", //
"", //
"", //
"", //
"", //
"Fliegt Boris Becker auch mit?", // kStringTennisRacketDescription
"Tennisball", // kStringTennisBall
"Dein Magnetschachspiel. Schach war|schon immer deine Leidenschaft.", // kStringChessGameDescription2
"Bett", // kStringBed
"Das ist dein Bett. Toll, nicht wahr?", // kStringBedDescription
// 115
"", //
"", //
"", //
"", //
"", //
"Das ist eins deiner drei F\204cher.", // kStringCompartmentDescription
"Alben", // kStringAlbums
"Deine Briefmarkensammlung.", // kStringAlbumsDescription
"Seil", // kStringRope
"Es ist ungef\204hr 10 m lang und 4 cm dick.", // kStringRopeDescription
// 120
"", //
"", //
"", //
"", //
"", //
"Das ist dein Schrank.", // kStringShelfDescription
"Es sind Standard-Weltraum-Klamotten.", // kStringClothesDescription
"Str\201mpfe", // kStringSocks
"Es ist|\"Per Anhalter durch die Galaxis\"|von Douglas Adams.", // kStringBookHitchhiker
"Klo", // kStringBathroom
// 125
"", //
"", //
"", //
"", //
"", //
"Ein Klo mit Saugmechanismus.", // kStringBathroomDescription
"Dusche", // kStringShower
"Das ist eine Luke !!!", // kStringHatchDescription1
"Dies ist eine Luke !!!", // kStringHatchDescription2
"Helm", // kStringHelmet
// 130
"", //
"", //
"", //
"", //
"", //
"Es ist der Helm zum Raumanzug.", // kStringHelmetDescription
"Raumanzug", // kStringSuit
"Der einzige Raumanzug, den die|anderen hiergelassen haben ...", // kStringSuitDescription
"Versorgung", // kStringLifeSupport
"Es ist der Versorgungsteil zum Raumanzug.", // kStringLifeSupportDescription
// 135
"", //
"", //
"", //
"", //
"", //
"Schrott", // kStringScrap
"Da ist eine L\201sterklemme dran, die|noch ganz brauchbar aussieht.|Ich nehme sie mit.", // kStringScrapDescription1
"L\201sterklemme", // kStringTerminalStrip
"Junge, Junge! Die Explosion hat ein|ganz sch\224nes Durcheinander angerichtet.", // kStringScrapDescription2
"Reaktor", // kStringReactor
// 140
"", //
"", //
"", //
"", //
"", //
"Das war einmal der Reaktor.", // kStringReactorDescription
"D\201se", // kStringNozzle
"blauer K\201rbis", // kStringPumpkin
"Keine Ahnung, was das ist.", // kStringPumpkinDescription
"Landef\204hre", // kStringLandingModule
// 145
"", //
"", //
"", //
"", //
"", //
"Sie war eigentlich f\201r Bodenuntersuchungen|auf Arsano 3 gedacht.", // kStringLandingModuleDescription
"Sie f\201hrt nach drau\341en.", // kStringHatchDescription3
"Generator", // kStringGenerator
"Er versorgt das Raumschiff mit Strom.", // kStringGeneratorDescription
"Ein St\201ck Schrott.", // kStringScrapDescription3
// 150
"", //
"", //
"", //
"", //
"", //
"Es ist ein Sicherheitsknopf.|Er kann nur mit einem spitzen|Gegenstand gedr\201ckt werden.", // kSafetyButtonDescription
"Tastatur", // kStringKeyboard
"langes Kabel mit Stecker", // kStringGeneratorWire
"leere Kabelrolle", // kStringEmptySpool
"Keycard des Commanders", // kStringKeycard2
// 155
"", //
"", //
"", //
"", //
"", //
"Hey, das ist die Keycard des Commanders!|Er mu\341 sie bei dem \201berst\201rzten|Aufbruch verloren haben.", // kStringKeycard2Description
"Klappe", // kStringTrap
"Spannungmessger\204t", // kStringVoltmeter
"Klemme", // kStringClip
"Sie f\201hrt vom Generator zum Spannungmessger\204t.", // kStringWireDescription
// 160
"", //
"", //
"", //
"", //
"", //
"Stein", // kStringStone
"Loch", // kStringCaveOpening
"Es scheint eine H\224hle zu sein.", // kStringCaveOpeningDescription
"Hier bist du gerade hergekommen.", // kStringExitDescription
"H\224hle", // kStringCave
// 165
"", //
"", //
"", //
"", //
"", //
"Schild", // kStringSign
"Diese Schrift kannst du nicht lesen.", // kStringSignDescription
"Eingang", // kStringEntrance
"Stern", // kStringStar
"Raumschiff", // kStringSpaceshift
// 170
"", //
"", //
"", //
"", //
"", //
"Portier", // kStringPorter
"Du siehst doch selbst, wie er aussieht.", // kStringPorterDescription
"T\201r", // kStringDoor
"Kaugummi", // kStringChewingGum
"Gummib\204rchen", // kStringGummyBears
// 175
"", //
"", //
"", //
"", //
"", //
"Schokokugel", // kStringChocolateBall
"\232berraschungsei", // kStringEgg
"Lakritz", // kStringLiquorice
"Tablette", // kStringPill
"Die Plastikh\201lle zeigt einen|Mund mit einer Sprechblase. Was|darin steht, kannst du nicht lesen.", // kStringPillDescription
// 180
"", //
"", //
"", //
"", //
"", //
"Automat", // kStringVendingMachine
"Sieht aus wie ein Kaugummiautomat.", // kStringVendingMachineDescription
"Die Toiletten sind denen|auf der Erde sehr \204hnlich.", // kStringToiletDescription
"Treppe", // kStringStaircase
"M\201nzen", // kStringCoins
// 185
"Es sind seltsame|K\224pfe darauf abgebildet.", // kStringCoinsDescription
"Tablettenh\201lle", // kStringTabletPackage
"Darauf steht:\"Wenn Sie diese|Schrift jetzt lesen k\224nnen,|hat die Tablette gewirkt.\"", // kStringTabletPackageDescription
"Stuhl", // kStringChair
"Schuhe", // kStringShoes
// 190
"Wie ist der denn mit|Schuhen hier reingekommen?", // kStringShoesDescription
"Froschgesicht", // kStringFrogFace
"Gekritzel", // kStringScrible
"\"Mr Spock was here\"", // kStringScribleDescription
"Brieftasche", // kStringWallet
// 195
"Speisekarte", // kStringMenu
"\"Heute empfehlen wir:|Fonua Opra mit Ulk.\"", // kStringMenuDescription
"Tasse", // kStringCup
"Sie enth\204lt eine gr\201nliche Fl\201ssigkeit.", // kStringCupDescription
"10-Buckazoid-Schein", // kStringBill
// 200
"Nicht gerade sehr viel Geld.", // kStringBillDescription
"Keycard von Roger", // kStringKeycard3
"Anzeige", // kStringAnnouncement
"Hmm, seltsame Anzeigen.", // kStringAnnouncementDescription
"Roger W.", // kStringRoger
// 205
"Ufo", // kStringUfo
"Der Eingang scheint offen zu sein.", // kStringUfoDescription
"Tablett", // kStringTray
"Es ist irgendein Fra\341 und|etwas zu Trinken darauf.", // kStringTrayDescription
"Stange", // kStringLamp
// 210
"Es scheint eine Lampe zu sein.", // kStringLampDescription
"Augen", // kStringEyes
"Es ist nur ein Bild.", // kStringEyesDescription
"Sieht etwas anders aus als auf der Erde.", // kStringSocketDescription
"Metallblock", // kStringMetalBlock
// 215
"Er ist ziemlich schwer.", // kStringMetalBlockDescription
"Roboter", // kStringRobot
"Den hast du erledigt.", // kStringRobotDescription
"Tisch", // kStringTable
"Ein kleiner Metalltisch.", // kStringTableDescription
// 220
"Zellent\201r", // kStringCellDoor
"Hier warst du eingesperrt.", // kStringCellDoorDescription
"Laptop", // kStringLaptop
"Armbanduhr", // kStringWristwatch
"S\204ule", // kStringPillar
// 225
"Auf einem Schild an der T\201r steht \"Dr. Alab Hansi\".", // kStringDoorDescription1
"Auf einem Schild an der T\201r steht \"Saval Lun\".", // kStringDoorDescription2
"Auf einem Schild an der T\201r steht \"Prof. Dr. Ugnul Tschabb\".", // kStringDoorDescription3
"Auf einem Schild an der T\201r steht \"Alga Hurz Li\".", // kStringDoorDescription4
"Diese T\201r w\201rde ich lieber|nicht \224ffnen. Nach dem Schild zu|urteilen, ist jemand in dem Raum.", // kStringDontEnter
// 230
"Axacussaner", // kStringAxacussan
"Du m\201\341test ihn irgendwie ablenken.", // kStringAxacussanDescription
"Komisches Bild.", // kStringImageDescription2
"Karte", // kStringMastercard
"Darauf steht: \"Generalkarte\".", // kStringMastercardDescription
// 235
"Lampe", // kStringLamp2
"Seltsam!", // kStringGenericDescription5
"Geld", // kStringMoney
"Es sind 500 Xa.", // kStringMoneyDescription1
"Schließfach", // kStringLocker
// 240
"Es hat ein elektronisches Zahlenschlo\341.", // kStringLockerDescription
"Brief", // kStringLetter
"W\201rfel", // kStringCube
"Sonderbar!", // kStringGenericDescription6
"Affenstark!", // kStringGenericDescription7
// 245
"Komisches Ding", // kStringStrangeThing
"Wundersam", // kStringGenericDescription8
"Es ist ein Axacussanerkopf auf dem Bild.", // kStringImageDescription3
"Pflanze", // kStringPlant
"Figur", // kStringStatue
// 250
"Stark!", // kStringStatueDescription
"Sie ist den Pflanzen auf der Erde sehr ähnlich.", // kStringPlantDescription
"Er funktioniert nicht.", // kStringComputerDescription
"Graffiti", // kStringGraffiti
"Seltsamer B\201roschmuck!", // kStringGraffitiDescription
// 255
"Es sind 350 Xa.", // kStringMoneyDescription2
"Dschungel", // kStringJungle
"Lauter B\204ume.", // kStringJungleDescription
"^ E#N#D#E ...########", // kStringOutro1
"# ... des ersten Teils!########", // kStringOutro2
// 260
"#########", // kStringOutro3
"^Aber:#", // kStringOutro4
"Das Abenteuer geht weiter, ...##", // kStringOutro5
"... wenn Sie sich für 30,- DM registrieren lassen!##", // kStringOutro6
"(Falls Sie das nicht schon längst getan haben.)##", // kStringOutro7
// 265
"In^ Teil 2 - Der Doppelgänger^ erwarten Sie:##", // kStringOutro8
"Knifflige Puzzles,##", // kStringOutro9
"noch mehr Grafik und Sound,##", // kStringOutro10
"ein perfekt geplanter Museumseinbruch,##", // kStringOutro11
"das Virtual-Reality-Spiel \"Indiana Joe\"##", // kStringOutro12
// 270
"und vieles mehr!##", // kStringOutro13
"\233", // kStringOutro14
"Leitung mit Stecker", // kStringWireAndPlug
"Leitung mit L\201sterklemme", // kStringWireAndClip
"langes Kabel mit Stecker", // kStringWireAndPlug2
// 275
"Darauf steht:|\"Treffpunkt Galactica\".", // kStringSignDescription2
"M\201nze", // kStringCoin
"Darauf steht:|\"Zutritt nur f\201r Personal\".", // kStringDoorDescription5
"Darauf steht:|\"Toilette\".", // kStringDoorDescription6
"Es ist die Keycard des Commanders.", // kStringKeycard2Description2
// 280
"Kabelrolle mit L\201sterklemme", // kSringSpoolAndClip
"", //
"", //
"", //
"", //
// 285
"", //
"", //
"", //
"", //
"", //
// 290
"", //
"", //
"", //
"", //
"", //
// 295
"", //
"", //
"", //
"", //
"", //
// 300
"", //
"", //
"", //
"", //
"", //
// 305
"", //
"", //
"", //
"", //
"", //
// 310
"", //
"", //
"", //
"", //
"", //
// 315
"", //
"", //
"", //
"", //
"", //
// 320
"", //
"", //
"", //
"", //
"", //
// 325
"", //
"", //
"", //
"", //
"", //
// 330
"", //
"", //
"", //
"", //
"", //
// 335
"", //
"", //
"", //
"", //
"", //
NULL
};

View File

@ -401,25 +401,80 @@ enum ObjectID {
};
enum StringID {
kCommandGo = 0, kCommandLook, kCommandTake, kCommandOpen, kCommandClose,
kCommandPress, kCommandPull, kCommandUse, kCommandTalk, kCommandGive,
kStatusCommandGo, kStatusCommandLook, kStatusCommandTake, kStatusCommandOpen, kStatusCommandClose,
kStatusCommandPress, kStatusCommandPull, kStatusCommandUse, kStatusCommandTalk, kStatusCommandGive,
kBroken, kIntro1, kIntro2, kIntro3, kIntro4,
kIntro5, kIntro6, kIntro7, kIntro8, kIntro9,
kIntro10, kIntro11, kIntro12, kIntro13, kKeycard,
kKeycardDesc, kKnife, kKnifeDesc, kWatch, kDiscman,
kDiscmanDesc
kNoString = -1,
// 0
kStringCommandGo = 0, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose,
kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive,
kStringStatusCommandGo, kStringStatusCommandLook, kStringStatusCommandTake, kStringStatusCommandOpen, kStringStatusCommandClose,
kStringStatusCommandPress, kStringStatusCommandPull, kStringStatusCommandUse, kStringStatusCommandTalk, kStringStatusCommandGive,
kStringTitleVersion, kStringTitle1, kStringTitle2, kStringTitle3, kStringIntro1,
kStringIntro2, kStringIntro3, kStringIntro4, kStringIntro5, kStringIntro6,
kStringIntro7, kStringIntro8, kStringIntro9, kStringIntro10, kStringIntro11,
kStringIntro12, kStringIntro13, kStringBroken, kStringDefaultDescription, kStringTakeMessage,
kStringKeycard, kStringKeycardDescription, kStringKnife, kStringKnifeDescription, kStringWatch,
kStringDiscman, kStringDiscmanDescription, kStringHatch, kStringButton, kStringHatchButtonDescription,
// 50
kStringLadder, kStringExit, kStringCockpitHatchDescription, kStringKitchenHatchDescription, kStringStasisHatchDescription,
kStringStasisHatchDescription2, kStringSlot, kStringSlotDescription, kStringCorridor, kStringComputer,
kStringComputerPassword, kStringInstruments, kStringInstrumentsDescription1, kStringMonitor, kStringMonitorDescription,
kStringImage, kStringGenericDescription1, kStringGenericDescription2, kStringGenericDescription3, kStringGenericDescription4,
kStringMagnete, kStringMagneteDescription, kStringPen, kStringPenDescription, kStringShelf,
kStringCompartment, kStringSocket, kStringToilet, kStringPistol, kStringPistolDescription,
kStringBooks, kStringBooksDescription, kStringSpool, kStringSpoolDescription, kStringBook,
kStringUnderwear, kStringUnderwearDescription, kStringClothes, kStringJunk, kStringJunkDescription,
kStringFolders, kStringFoldersDescription, kStringPoster, kStringPosterDescription1, kStringPosterDescription2,
kStringSpeaker, kStringRecord, kStringRecordDescription, kStringRecordStand, kStringRecordStandDescription,
// 100
kStringTurntable, kStringTurntableDescription, kStringWire, kStringPlug, kStringImageDescription1,
kStringDrawingInstruments, kStringDrawingInstrumentsDescription, kStringChessGame, kStringChessGameDescription1, kStringTennisRacket,
kStringTennisRacketDescription, kStringTennisBall, kStringChessGameDescription2, kStringBed, kStringBedDescription,
kStringCompartmentDescription, kStringAlbums, kStringAlbumsDescription, kStringRope, kStringRopeDescription,
kStringShelfDescription, kStringClothesDescription, kStringSocks, kStringBookHitchhiker, kStringBathroom,
kStringBathroomDescription, kStringShower, kStringHatchDescription1, kStringHatchDescription2, kStringHelmet,
kStringHelmetDescription, kStringSuit, kStringSuitDescription, kStringLifeSupport, kStringLifeSupportDescription,
kStringScrap, kStringScrapDescription1, kStringTerminalStrip, kStringScrapDescription2, kStringReactor,
kStringReactorDescription, kStringNozzle, kStringPumpkin, kStringPumpkinDescription, kStringLandingModule,
kStringLandingModuleDescription, kStringHatchDescription3, kStringGenerator, kStringGeneratorDescription, kStringScrapDescription3,
// 150
kSafetyButtonDescription, kStringKeyboard, kStringGeneratorWire, kStringEmptySpool, kStringKeycard2,
kStringKeycard2Description, kStringTrap, kStringVoltmeter, kStringClip, kStringWireDescription,
kStringStone, kStringCaveOpening, kStringCaveOpeningDescription, kStringExitDescription, kStringCave,
kStringSign, kStringSignDescription, kStringEntrance, kStringStar, kStringSpaceshift,
kStringPorter, kStringPorterDescription, kStringDoor, kStringChewingGum, kStringGummyBears,
kStringChocolateBall, kStringEgg, kStringLiquorice, kStringPill, kStringPillDescription,
kStringVendingMachine, kStringVendingMachineDescription, kStringToiletDescription, kStringStaircase, kStringCoins,
kStringCoinsDescription, kStringTabletPackage, kStringTabletPackageDescription, kStringChair, kStringShoes,
kStringShoesDescription, kStringFrogFace, kStringScrible, kStringScribleDescription, kStringWallet,
kStringMenu, kStringMenuDescription, kStringCup, kStringCupDescription, kStringBill,
// 200
kStringBillDescription, kStringKeycard3, kStringAnnouncement, kStringAnnouncementDescription, kStringRoger,
kStringUfo, kStringUfoDescription, kStringTray, kStringTrayDescription, kStringLamp,
kStringLampDescription, kStringEyes, kStringEyesDescription, kStringSocketDescription, kStringMetalBlock,
kStringMetalBlockDescription, kStringRobot, kStringRobotDescription, kStringTable, kStringTableDescription,
kStringCellDoor, kStringCellDoorDescription, kStringLaptop, kStringWristwatch, kStringPillar,
kStringDoorDescription1, kStringDoorDescription2, kStringDoorDescription3, kStringDoorDescription4, kStringDontEnter,
kStringAxacussan, kStringAxacussanDescription, kStringImageDescription2, kStringMastercard, kStringMastercardDescription,
kStringLamp2, kStringGenericDescription5, kStringMoney, kStringMoneyDescription1, kStringLocker,
kStringLockerDescription, kStringLetter, kStringCube, kStringGenericDescription6, kStringGenericDescription7,
kStringStrangeThing, kStringGenericDescription8, kStringImageDescription3, kStringPlant, kStringStatue,
// 250
kStringStatueDescription, kStringPlantDescription, kStringComputerDescription, kStringGraffiti, kStringGraffitiDescription,
kStringMoneyDescription2, kStringJungle, kStringJungleDescription, kStringOutro1, kStringOutro2,
kStringOutro3, kStringOutro4, kStringOutro5, kStringOutro6, kStringOutro7,
kStringOutro8, kStringOutro9, kStringOutro10, kStringOutro11, kStringOutro12,
kStringOutro13, kStringOutro14, kStringWireAndPlug, kStringWireAndClip, kStringWireAndPlug2,
kStringSignDescription2, kStringCoin, kStringDoorDescription5, kStringDoorDescription6, kStringKeycard2Description2,
kSringSpoolAndClip
};
static StringID guiCommands[] = {
kCommandGo, kCommandLook, kCommandTake, kCommandOpen, kCommandClose,
kCommandPress, kCommandPull, kCommandUse, kCommandTalk, kCommandGive
kStringCommandGo, kStringCommandLook, kStringCommandTake, kStringCommandOpen, kStringCommandClose,
kStringCommandPress, kStringCommandPull, kStringCommandUse, kStringCommandTalk, kStringCommandGive
};
static StringID guiStatusCommands[] = {
kStatusCommandGo, kStatusCommandLook, kStatusCommandTake, kStatusCommandOpen, kStatusCommandClose,
kStatusCommandPress, kStatusCommandPull, kStatusCommandUse, kStatusCommandTalk, kStatusCommandGive
kStringStatusCommandGo, kStringStatusCommandLook, kStringStatusCommandTake, kStringStatusCommandOpen, kStringStatusCommandClose,
kStringStatusCommandPress, kStringStatusCommandPull, kStringStatusCommandUse, kStringStatusCommandTalk, kStringStatusCommandGive
};
ObjectType operator|(ObjectType a, ObjectType b);
@ -430,13 +485,11 @@ ObjectType &operator&=(ObjectType &a, ObjectType b);
ObjectType &operator^=(ObjectType &a, ObjectType b);
struct Object {
static const char *const defaultDescription;
static const char *const takeMessage;
static const Object nullObject;
Object()
: _name("")
, _description(Object::defaultDescription)
: _name(kNoString)
, _description(kStringDefaultDescription)
, _id(INVALIDOBJECT)
, _roomId(NULLROOM)
, _type(NULLTYPE)
@ -446,7 +499,7 @@ struct Object {
, _exitRoom(NULLROOM)
, _direction(0)
{}
Object(byte roomId, const char *name, const char *description, ObjectID id, ObjectType type,
Object(byte roomId, StringID name, StringID description, ObjectID id, ObjectType type,
byte click, byte click2, byte section = 0, RoomID exitRoom = NULLROOM, byte direction = 0)
: _name(name)
, _description(description)
@ -491,8 +544,8 @@ struct Object {
}
byte _roomId;
Common::String _name;
Common::String _description;
StringID _name;
StringID _description;
ObjectID _id;
ObjectType _type;
byte _click;

View File

@ -43,11 +43,8 @@ bool Room::serialize(Common::WriteStream *out) {
out->writeSint32LE(numObjects);
for (int i = 0; i < numObjects; ++i) {
out->writeUint32LE(_objectState[i]._name.size());
out->writeString(_objectState[i]._name);
out->writeUint32LE(_objectState[i]._description.size());
out->writeString(_objectState[i]._description);
out->writeSint32LE(_objectState[i]._name);
out->writeSint32LE(_objectState[i]._description);
out->writeByte(_objectState[i]._roomId);
out->writeSint32LE(_objectState[i]._id);
out->writeSint32LE(_objectState[i]._type);
@ -72,24 +69,9 @@ bool Room::deserialize(Common::ReadStream *in) {
_shown[i] = in->readByte();
int numObjects = in->readSint32LE();
Common::SeekableReadStream *stream = NULL;
for (int i = 0; i < numObjects; ++i) {
int stringLength = in->readUint32LE();
if (stringLength) {
stream = in->readStream(stringLength);
_objectState[i]._name = stream->readLine();
} else {
_objectState[i]._name = "";
}
stringLength = in->readUint32LE();
if (stringLength) {
stream = in->readStream(stringLength);
_objectState[i]._description = stream->readLine();
} else {
_objectState[i]._description = "";
}
_objectState[i]._name = static_cast<StringID>(in->readSint32LE());
_objectState[i]._description = static_cast<StringID>(in->readSint32LE());
_objectState[i]._roomId = in->readByte();
_objectState[i]._id = static_cast<ObjectID>(in->readSint32LE());
_objectState[i]._type = static_cast<ObjectType>(in->readSint32LE());
@ -105,6 +87,45 @@ bool Room::deserialize(Common::ReadStream *in) {
return !in->err();
}
Intro::Intro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
_fileNumber = -1;
_id = INTRO;
_shown[0] = false;
_objectState[0] =
Object(_id, kStringKeycard, kStringKeycardDescription, KEYCARD,
TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_objectState[1] =
Object(_id, kStringKnife, kStringKnifeDescription, KNIFE,
TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_objectState[2] =
Object(_id, kStringWatch, kStringDefaultDescription, WATCH,
TAKE | COMBINABLE | CARRIED, 255, 255, 8, NULLROOM, 0);
_objectState[3] =
Object(_id, kStringDiscman, kStringDiscmanDescription, DISCMAN,
TAKE | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_shouldExit = false;
introText =
_vm->getGameString(kStringIntro1) +
_vm->getGameString(kStringIntro2) +
_vm->getGameString(kStringIntro3) +
_vm->getGameString(kStringIntro4) +
_vm->getGameString(kStringIntro5) +
_vm->getGameString(kStringIntro6) +
_vm->getGameString(kStringIntro7) +
_vm->getGameString(kStringIntro8) +
_vm->getGameString(kStringIntro9) +
_vm->getGameString(kStringIntro10) +
_vm->getGameString(kStringIntro11) +
_vm->getGameString(kStringIntro12) +
_vm->getGameString(kStringIntro13);
}
void Intro::onEntrance() {
_gm->_guiEnabled = false;
_vm->_allowSaveGame = false;
@ -132,10 +153,10 @@ void Intro::titleScreen() {
while (_vm->_mixer->isSoundHandleActive(_vm->_soundHandle))
_gm->wait2(1);
titleFadeIn();
_vm->renderText("V2.02", 295, 190, kColorWhite44);
_vm->renderText("Teil 1:", 64, 120, kColorLightBlue);
_vm->renderText("Das Schicksal", 44, 132, kColorWhite99);
_vm->renderText("des Horst Hummel", 35, 142, kColorWhite99);
_vm->renderText(kStringTitleVersion, 295, 190, kColorWhite44);
_vm->renderText(kStringTitle1, 64, 120, kColorLightBlue);
_vm->renderText(kStringTitle2, 44, 132, kColorWhite99);
_vm->renderText(kStringTitle3, 35, 142, kColorWhite99);
_gm->wait2(1);
CursorMan.showMouse(true);
_vm->playSoundMod(kMusicIntro);
@ -488,7 +509,7 @@ bool ShipSleepCabin::interact(Action verb, Object &obj1, Object &obj2) {
input.toUppercase();
if (_gm->_key.keycode != Common::KEYCODE_ESCAPE) {
if (input == _codeword_DE) {
if (input == _vm->getGameString(kStringComputerPassword)) {
_gm->great(6);
g_system->fillScreen(kColorDarkBlue);
_vm->renderText("Schlafdauer in Tagen:", 30, 85, kColorWhite99);
@ -846,7 +867,7 @@ bool ShipCabinL3::interact(Action verb, Object &obj1, Object &obj2) {
if (isSectionVisible(10) && isSectionVisible(11)) {
_gm->drawImage(_gm->invertSection(10));
_gm->drawImage(_gm->invertSection(11));
getObject(8)->_name = "Leitung mit Stecker";
getObject(8)->_name = kStringWireAndPlug;
_gm->takeObject(*getObject(8));
getObject(9)->_click = 255;
getObject(10)->_click = 255;
@ -1035,9 +1056,9 @@ void ShipAirlock::onEntrance() {
bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
Room *room;
if ((verb == ACTION_LOOK) && (obj1._id == SCRAP_LK) && (obj1._description != _descriptionScrap)) {
_vm->renderMessage(obj1._description.c_str());
obj1._description = _descriptionScrap;
if ((verb == ACTION_LOOK) && (obj1._id == SCRAP_LK) && (obj1._description != kStringScrapDescription3)) {
_vm->renderMessage(obj1._description);
obj1._description = kStringScrapDescription3;
_gm->takeObject(*getObject(2));
} else if (((verb == ACTION_OPEN) || (verb == ACTION_CLOSE)) &&
(obj1._id == OUTERHATCH_TOP)) {
@ -1049,7 +1070,7 @@ bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
((verb == ACTION_USE) && Object::combine(obj1, obj2, HOLD_WIRE, LANDINGMOD_HATCH)))
_vm->renderMessage("Das Kabel ist schon ganz|richtig an dieser Stelle.");
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, HOLD_WIRE)) {
getObject(0)->_name = "Leitung mit L\201sterklemme";
getObject(0)->_name = kStringWireAndClip;
_gm->_inventory.remove(*getObject(2));
_gm->_state._terminalStripConnected = true;
_gm->_state._terminalStripWire = true;
@ -1059,7 +1080,7 @@ bool ShipHold::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderMessage("Womit denn?");
else {
_gm->drawImage(5);
getObject(0)->_name = "langes Kabel mit Stecker";
getObject(0)->_name = kStringWireAndPlug2;
getObject(0)->_click = 10;
room = _gm->_rooms[CABIN_L2];
_gm->_inventory.remove(*getObject(9));
@ -1095,7 +1116,7 @@ void ShipHold::onEntrance() {
bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
Room *r;
if ((verb == ACTION_PRESS) && (obj1._id == LANDINGMOD_BUTTON))
_vm->renderMessage(obj1._description.c_str());
_vm->renderMessage(obj1._description);
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, PEN, LANDINGMOD_BUTTON)) {
if (_gm->_state._landingModuleEnergyDaysLeft) {
r = _gm->_rooms[GENERATOR];
@ -1153,7 +1174,7 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderMessage("An dem Kabel ist doch gar kein Stecker.");
else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, LANDINGMOD_WIRE, TERMINALSTRIP)) {
_gm->drawImage(11);
getObject(4)->_name = "Leitung mit L\201sterklemme";
getObject(4)->_name = kStringWireAndClip;
r = _gm->_rooms[HOLD];
_gm->_inventory.remove(*r->getObject(2));
_gm->_state._terminalStripConnected = true;
@ -1163,7 +1184,7 @@ bool ShipLandingModule::interact(Action verb, Object &obj1, Object &obj2) {
_vm->renderMessage("Womit denn?");
else {
_gm->drawImage(5);
getObject(4)->_name = "langes Kabel mit Stecker";
getObject(4)->_name = kStringWireAndPlug2;
getObject(4)->_click = 6;
_gm->_inventory.remove(*_gm->_rooms[CABIN_L2]->getObject(9));
}
@ -1429,7 +1450,7 @@ bool ArsanoMeetup::interact(Action verb, Object &obj1, Object &obj2) {
if (_gm->_state._language == 2)
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Treffpunkt Galactica\".");
obj1._description = "Darauf steht:|\"Treffpunkt Galactica\".";
obj1._description = kStringSignDescription2;
if (_gm->_state._language == 1)
return false;
@ -1632,7 +1653,7 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
getObject(8 - _gm->_state._coins)->_click = 7;
--_gm->_state._coins;
if (_gm->_state._coins == 1) {
getObject(16)->_name = "M\201nze";
getObject(16)->_name = kStringCoin;
}
if (_gm->_state._coins == 0) {
_gm->_inventory.remove(*getObject(16));
@ -1642,14 +1663,14 @@ bool ArsanoEntrance::interact(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_LOOK) && (obj1._id == KITCHEN_SIGN) && _gm->_state._language) {
if (_gm->_state._language == 2)
_vm->renderMessage("Komisch! Auf einmal kannst du|das Schild lesen! Darauf steht:|\"Zutritt nur f\201r Personal\".");
obj1._description = "Darauf steht:|\"Zutritt nur f\201r Personal\".";
obj1._description = kStringDoorDescription5;
if (_gm->_state._language == 1)
return false;
_gm->_state._language = 1;
} else if ((verb == ACTION_LOOK) && (obj1._id == BATHROOM_SIGN) && _gm->_state._language) {
if (_gm->_state._language == 2)
_vm->renderMessage("Komisch! Auf einmal kannst|du das Schild lesen!|Darauf steht:\"Toilette\".");
obj1._description = "Darauf steht:|\"Toilette\".";
obj1._description = kStringDoorDescription6;
if (_gm->_state._language == 1)
return false;
_gm->_state._language = 1;
@ -2670,11 +2691,11 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
} else if (((verb == ACTION_WALK) || ((verb == ACTION_OPEN) && !obj1.hasProperty(OPENED))) &&
(obj1._id >= DOOR1) && (obj1._id <= DOOR4) &&
obj1.hasProperty(OCCUPIED)) {
_vm->renderMessage(_dontEnter.c_str());
_vm->renderMessage(kStringDontEnter);
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR1) &&
!getObject(4)->hasProperty(OPENED)) {
if (getObject(4)->hasProperty(OCCUPIED))
_vm->renderMessage(_dontEnter.c_str());
_vm->renderMessage(kStringDontEnter);
else {
_gm->drawImage(1);
_vm->playSound(kAudioDoorOpen);
@ -2685,7 +2706,7 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR2) &&
!getObject(5)->hasProperty(OPENED)) {
if (getObject(5)->hasProperty(OCCUPIED)) {
_vm->renderMessage(_dontEnter.c_str());
_vm->renderMessage(kStringDontEnter);
} else {
_gm->drawImage(2);
_vm->playSound(kAudioDoorOpen);
@ -2696,7 +2717,7 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR3) &&
!getObject(6)->hasProperty(OPENED)) {
if (getObject(6)->hasProperty(OCCUPIED)) {
_vm->renderMessage(_dontEnter.c_str());
_vm->renderMessage(kStringDontEnter);
} else {
_gm->drawImage(3);
_vm->playSound(kAudioDoorOpen);
@ -2707,7 +2728,7 @@ bool AxacussBcorridor::interact(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, MASTERKEYCARD, DOOR4) &&
!getObject(7)->hasProperty(OPENED)) {
if (getObject(7)->hasProperty(OCCUPIED)) {
_vm->renderMessage(_dontEnter.c_str());
_vm->renderMessage(kStringDontEnter);
} else {
_gm->drawImage(4);
_vm->playSound(kAudioDoorOpen);
@ -2757,7 +2778,7 @@ bool AxacussOffice1::interact(Action verb, Object &obj1, Object &obj2) {
_vm->playSound(kAudioUndef2);
} else if ((verb == ACTION_LOOK) && (obj1._id == COMPUTER)) {
if (isSectionVisible(4))
_vm->renderMessage(kBroken);
_vm->renderMessage(kStringBroken);
else
_gm->telomat(0);
} else if (((verb == ACTION_OPEN) || (verb == ACTION_USE)) &&
@ -2840,7 +2861,7 @@ bool AxacussOffice2::interact(Action verb, Object &obj1, Object &obj2) {
_vm->playSound(kAudioUndef2);
} else if ((verb == ACTION_LOOK) && (obj1._id == COMPUTER)) {
if (isSectionVisible(4))
_vm->renderMessage(kBroken);
_vm->renderMessage(kStringBroken);
else
_gm->telomat(1);
} else
@ -2865,7 +2886,7 @@ bool AxacussOffice3::interact(Action verb, Object &obj1, Object &obj2) {
_vm->playSound(kAudioUndef2);
} else if ((verb == ACTION_LOOK) && (obj1._id == COMPUTER)) {
if (isSectionVisible(4))
_vm->renderMessage(kBroken);
_vm->renderMessage(kStringBroken);
else
_gm->telomat(2);
} else if ((verb == ACTION_LOOK) && (obj1._id == PAINTING)) {
@ -2894,7 +2915,7 @@ bool AxacussOffice4::interact(Action verb, Object &obj1, Object &obj2) {
_vm->playSound(kAudioUndef2);
} else if ((verb == ACTION_LOOK) && (obj1._id == COMPUTER)) {
if (isSectionVisible(4))
_vm->renderMessage(kBroken);
_vm->renderMessage(kStringBroken);
else
_gm->telomat(3);
} else
@ -3028,6 +3049,31 @@ bool AxacussSign::interact(Action verb, Object &obj1, Object &obj2) {
return false;
}
Outro::Outro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
_fileNumber = -1;
_id = OUTRO;
_shown[0] = false;
outroText =
_vm->getGameString(kStringOutro1) +
_vm->getGameString(kStringOutro2) +
_vm->getGameString(kStringOutro3) +
_vm->getGameString(kStringOutro4) +
_vm->getGameString(kStringOutro5) +
_vm->getGameString(kStringOutro6) +
_vm->getGameString(kStringOutro7) +
_vm->getGameString(kStringOutro8) +
_vm->getGameString(kStringOutro9) +
_vm->getGameString(kStringOutro10) +
_vm->getGameString(kStringOutro11) +
_vm->getGameString(kStringOutro12) +
_vm->getGameString(kStringOutro13) +
_vm->getGameString(kStringOutro14);
}
void Outro::onEntrance() {
}

View File

@ -88,44 +88,7 @@ private:
// Room 0
class Intro : public Room {
public:
Intro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
_fileNumber = -1;
_id = INTRO;
_shown[0] = false;
_objectState[0] =
Object(_id, "Keycard", "Die Keycard f\224r deine Schr\204nke.", KEYCARD,
TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_objectState[1] =
Object(_id, "Taschenmesser", "Es ist nicht mehr das sch\204rfste.", KNIFE,
TAKE | CARRIED | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_objectState[2] =
Object(_id, "Armbanduhr", Object::defaultDescription, WATCH,
TAKE | COMBINABLE | CARRIED, 255, 255, 8, NULLROOM, 0);
_objectState[3] =
Object(_id, "Discman", "Es ist eine \"Mad Monkeys\"-CD darin.", DISCMAN,
TAKE | COMBINABLE, 255, 255, 0, NULLROOM, 0);
_shouldExit = false;
introText = "^(C) 1994 Thomas und Steffen Dingel#"
"Story und Grafik:^ Thomas Dingel#"
"Programmierung:^ Steffen Dingel#"
"Musik:^ Bernd Hoffmann#"
"Getestet von ...#"
"^Matthias Neef#"
"^Sascha Otterbach#"
"^Thomas Mazzoni#"
"^Matthias Klein#"
"^Gerrit Rothmaier#"
"^Thomas Hassler#"
"^Rene Koch#"
"°";
}
Intro(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
private:
@ -159,16 +122,16 @@ public:
_shown[3] = false;
_shown[4] = true;
_objectState[0] = Object(_id, "Luke", Object::defaultDescription, HATCH1, OPENABLE | EXIT, 0, 6, 1, CABIN_L1, 15);
_objectState[1] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | EXIT, 1, 7, 2, CABIN_L2, 10);
_objectState[2] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | EXIT, 2, 8, 3, CABIN_L3, 5);
_objectState[3] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | EXIT, 5, 11, 6, CABIN_R1, 19);
_objectState[4] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | EXIT, 4, 10, 5, CABIN_R2, 14);
_objectState[5] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | EXIT | OPENED, 9, 3, 4, CABIN_R3, 9);
_objectState[6] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 12, 12, 0, AIRLOCK, 2);
_objectState[7] = Object(_id, "Knopf", "Er geh\224rt zu der gro\341en Luke.", BUTTON, PRESS, 13, 13, 0, NULLROOM, 0);
_objectState[8] = Object(_id, "Leiter", Object::defaultDescription, NULLOBJECT, NULLTYPE, 14, 14, 0, NULLROOM, 0);
_objectState[9] = Object(_id, "Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 15, 15, 0, HALL, 22);
_objectState[0] = Object(_id, kStringHatch, kStringDefaultDescription, HATCH1, OPENABLE | EXIT, 0, 6, 1, CABIN_L1, 15);
_objectState[1] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 1, 7, 2, CABIN_L2, 10);
_objectState[2] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 2, 8, 3, CABIN_L3, 5);
_objectState[3] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 5, 11, 6, CABIN_R1, 19);
_objectState[4] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT, 4, 10, 5, CABIN_R2, 14);
_objectState[5] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | EXIT | OPENED, 9, 3, 4, CABIN_R3, 9);
_objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 12, 12, 0, AIRLOCK, 2);
_objectState[7] = Object(_id, kStringButton, kStringHatchButtonDescription, BUTTON, PRESS, 13, 13, 0, NULLROOM, 0);
_objectState[8] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 14, 14, 0, NULLROOM, 0);
_objectState[9] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 15, 15, 0, HALL, 22);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -184,12 +147,12 @@ public:
_id = HALL;
_shown[0] = true;
_objectState[0] = Object(_id, "Luke", "Sie f\204hrt ins Cockpit.", NULLOBJECT, OPENABLE | EXIT, 4, 5, 1, COCKPIT, 10);
_objectState[1] = Object(_id, "Luke", "Sie f\204hrt zur K\201che.", KITCHEN_HATCH, OPENABLE | EXIT, 0, 0, 0, NULLROOM, 1);
_objectState[2] = Object(_id, "Luke", "Sie f\204hrt zu den Tiefschlafkammern.", NULLOBJECT, OPENABLE | CLOSED | EXIT, 1, 1, 2, SLEEP, 8);
_objectState[3] = Object(_id, "Schlitz", "Es ist ein Keycard-Leser.", SLEEP_SLOT, COMBINABLE, 2, 2, 0, NULLROOM, 0);
_objectState[4] = Object(_id, "Leiter", Object::defaultDescription, NULLOBJECT, NULLTYPE, 3, SLEEP, 0, NULLROOM, 0);
_objectState[5] = Object(_id, "Gang", Object::defaultDescription, NULLOBJECT, EXIT, 6, 6, 0, CORRIDOR, 19);
_objectState[0] = Object(_id, kStringHatch, kStringCockpitHatchDescription, NULLOBJECT, OPENABLE | EXIT, 4, 5, 1, COCKPIT, 10);
_objectState[1] = Object(_id, kStringHatch, kStringKitchenHatchDescription, KITCHEN_HATCH, OPENABLE | EXIT, 0, 0, 0, NULLROOM, 1);
_objectState[2] = Object(_id, kStringHatch, kStringStasisHatchDescription, NULLOBJECT, OPENABLE | CLOSED | EXIT, 1, 1, 2, SLEEP, 8);
_objectState[3] = Object(_id, kStringSlot, kStringSlotDescription, SLEEP_SLOT, COMBINABLE, 2, 2, 0, NULLROOM, 0);
_objectState[4] = Object(_id, kStringLadder, kStringDefaultDescription, NULLOBJECT, NULLTYPE, 3, SLEEP, 0, NULLROOM, 0);
_objectState[5] = Object(_id, kStringCorridor, kStringDefaultDescription, NULLOBJECT, EXIT, 6, 6, 0, CORRIDOR, 19);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -205,13 +168,10 @@ public:
_id = SLEEP;
_shown[0] = true;
_objectState[0] = Object(_id, "Luke", "Dies ist eine der Tiefschlafkammern.", CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
_objectState[1] = Object(_id, "Luke", "Dies ist eine der Tiefschlafkammern.", CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
_objectState[2] = Object(_id, "Computer", Object::defaultDescription, COMPUTER, NULLTYPE, 2, 2, 0, NULLROOM, 0);
_objectState[3] = Object(_id, "Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
_codeword_DE = "ZWEIUNDVIERZIG";
_codeword_EN = "FORTYTWO";
_objectState[0] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABINS, NULLTYPE, 0, 0, 0, NULLROOM, 0);
_objectState[1] = Object(_id, kStringHatch, kStringStasisHatchDescription2, CABIN, NULLTYPE, 1, 1, 0, NULLROOM, 0);
_objectState[2] = Object(_id, kStringComputer, kStringDefaultDescription, COMPUTER, NULLTYPE, 2, 2, 0, NULLROOM, 0);
_objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -219,8 +179,6 @@ public:
virtual void onEntrance();
private:
Common::String _codeword_DE;
Common::String _codeword_EN;
byte _color;
};
@ -234,10 +192,10 @@ public:
_id = COCKPIT;
_shown[0] = true;
_objectState[0] = Object(_id, "Instrumente", "Hmm, sieht ziemlich kompliziert aus.", INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
_objectState[1] = Object(_id, "Monitor", Object::defaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
_objectState[2] = Object(_id, "Monitor", "Dieser Monitor sagt dir nichts.", NULLOBJECT, TAKE, 1, 0, 0, NULLROOM, 0);
_objectState[3] = Object(_id, "Ausgang", Object::defaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
_objectState[0] = Object(_id, kStringInstruments, kStringInstrumentsDescription1, INSTRUMENTS, NULLTYPE, 2, 2, 0, NULLROOM, 0);
_objectState[1] = Object(_id, kStringMonitor, kStringDefaultDescription, MONITOR, NULLTYPE, 0, 0, 0, NULLROOM, 0);
_objectState[2] = Object(_id, kStringMonitor, kStringMonitorDescription, NULLOBJECT, TAKE, 1, 0, 0, NULLROOM, 0);
_objectState[3] = Object(_id, kStringExit, kStringDefaultDescription, NULLOBJECT, EXIT, 255, 255, 0, HALL, 22);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -263,18 +221,18 @@ public:
_shown[4] = true;
_shown[5] = true;
_objectState[0] = Object(_id, "Bild", "Herb!", NULLOBJECT, UNNECESSARY, 5, 5, 0, NULLROOM, 0);
_objectState[1] = Object(_id, "Bild", "Toll!", NULLOBJECT, UNNECESSARY, 6, 6, 0, NULLROOM, 0);
_objectState[2] = Object(_id, "Bild", "Genial!", NULLOBJECT, UNNECESSARY, 7, 7, 0, NULLROOM, 0);
_objectState[3] = Object(_id, "Magnete", "Damit werden Sachen auf|dem Tisch festgehalten.", NULLOBJECT, UNNECESSARY, 8, 8, 0, NULLROOM, 0);
_objectState[4] = Object(_id, "Bild", "Es scheint noch nicht fertig zu sein.", NULLOBJECT, UNNECESSARY, 9, 9, 0);
_objectState[5] = Object(_id, "Stift", "Ein Kugelschreiber.", PEN, TAKE | COMBINABLE, 10, 10, 5 | 128);
_objectState[6] = Object(_id, "Luke", Object::defaultDescription, NULLOBJECT, OPENABLE | OPENED | EXIT, 3, 3, 24 | 128, CORRIDOR, 9);
_objectState[7] = Object(_id, "Schlitz", "Es ist ein Keycard-Leser.", NULLOBJECT, COMBINABLE, 0, 0, 0);
_objectState[8] = Object(_id, "Schrank", Object::defaultDescription, NULLOBJECT, OPENABLE | CLOSED, 1, 1, 0);
_objectState[9] = Object(_id, "Fach", Object::defaultDescription, NULLOBJECT, OPENABLE | CLOSED, 2, 2, 0);
_objectState[10] = Object(_id, "Steckdose", Object::defaultDescription, SOCKET, COMBINABLE, 4, 4, 0);
_objectState[11] = Object(_id, "Toilette", Object::defaultDescription, BATHROOM_DOOR, EXIT, 255, 255, 0, BATHROOM, 22);
_objectState[0] = Object(_id, kStringImage, kStringGenericDescription1, NULLOBJECT, UNNECESSARY, 5, 5, 0, NULLROOM, 0);
_objectState[1] = Object(_id, kStringImage, kStringGenericDescription2, NULLOBJECT, UNNECESSARY, 6, 6, 0, NULLROOM, 0);
_objectState[2] = Object(_id, kStringImage, kStringGenericDescription3, NULLOBJECT, UNNECESSARY, 7, 7, 0, NULLROOM, 0);
_objectState[3] = Object(_id, kStringMagnete, kStringMagneteDescription, NULLOBJECT, UNNECESSARY, 8, 8, 0, NULLROOM, 0);
_objectState[4] = Object(_id, kStringImage, kStringGenericDescription4, NULLOBJECT, UNNECESSARY, 9, 9, 0);
_objectState[5] = Object(_id, kStringPen, kStringPenDescription, PEN, TAKE | COMBINABLE, 10, 10, 5 | 128);
_objectState[6] = Object(_id, kStringHatch, kStringDefaultDescription, NULLOBJECT, OPENABLE | OPENED | EXIT, 3, 3, 24 | 128, CORRIDOR, 9);
_objectState[7] = Object(_id, kStringSlot, kStringSlotDescription, NULLOBJECT, COMBINABLE, 0, 0, 0);
_objectState[8] = Object(_id, kStringShelf, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 1, 1, 0);
_objectState[9] = Object(_id, kStringCompartment, kStringDefaultDescription, NULLOBJECT, OPENABLE | CLOSED, 2, 2, 0);
_objectState[10] = Object(_id, kStringSocket, kStringDefaultDescription, SOCKET, COMBINABLE, 4, 4, 0);
_objectState[11] = Object(_id, kStringToilet, kStringDefaultDescription, BATHROOM_DOOR, EXIT, 255, 255, 0, BATHROOM, 22);
}
};
@ -304,31 +262,31 @@ public:
_shown[15] = false;
_shown[16] = true;
_objectState[0] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_KL1,COMBINABLE,31,31,0);
_objectState[1] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_KL2,COMBINABLE,32,32,0);
_objectState[2] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_KL3,COMBINABLE,33,33,0);
_objectState[3] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_KL4,COMBINABLE,45,45,0);
_objectState[4] = Object(_id, "Schrank",Object::defaultDescription,SHELF_L1,OPENABLE | CLOSED,25,26,17);
_objectState[5] = Object(_id, "Pistole","Es ist keine Munition drin.",PISTOL,TAKE,39,39,20);
_objectState[6] = Object(_id, "Fach",Object::defaultDescription,SHELF_L2,OPENABLE | CLOSED,27,28,18);
_objectState[7] = Object(_id, "B\201cher","Lauter wissenschaftliche B\201cher.",NULLOBJECT,UNNECESSARY,40,40,0);
_objectState[8] = Object(_id, "Fach",Object::defaultDescription,SHELF_L3,OPENABLE | CLOSED,29,30,19);
_objectState[9] = Object(_id, "Kabelrolle","Da sind mindestens zwanzig Meter drauf.", SPOOL,TAKE | COMBINABLE,41,41,21);
_objectState[10] = Object(_id, "Fach",Object::defaultDescription,SHELF_L4,OPENABLE | CLOSED,43,44,22);
_objectState[11] = Object(_id, "Buch",Object::defaultDescription,BOOK2,TAKE,46,46,23);
_objectState[12] = Object(_id, "Unterw\204sche","Ich habe keine Lust, in|der Unterw\204sche des|Commanders rumzuw\201hlen.",NULLOBJECT,UNNECESSARY,34,34,0);
_objectState[13] = Object(_id, "Unterw\204sche","Ich habe keine Lust, in|der Unterw\204sche des|Commanders rumzuw\201hlen.",NULLOBJECT,UNNECESSARY,35,35,0);
_objectState[14] = Object(_id, "Kleider",Object::defaultDescription,NULLOBJECT,UNNECESSARY,36,36,0);
_objectState[15] = Object(_id, "Krimskram","Es ist nichts brauchbares dabei.",NULLOBJECT,UNNECESSARY,37,37,0);
_objectState[16] = Object(_id, "Krimskram","Es ist nichts brauchbares dabei.",NULLOBJECT,UNNECESSARY,38,38,0);
_objectState[17] = Object(_id, "Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",NULLOBJECT,UNNECESSARY,23,23,0);
_objectState[18] = Object(_id, "Toilette",Object::defaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[19] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
_objectState[20] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,0,0,0);
_objectState[21] = Object(_id, "Schrank",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[22] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[23] = Object(_id, "Steckdose",Object::defaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[24] = Object(_id, "Ordner","Darauf steht \"Dienstanweisungen|zur Mission Supernova\".|Es steht nichts wichtiges drin.",NULLOBJECT,UNNECESSARY,49,49,0);
_objectState[0] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL1,COMBINABLE,31,31,0);
_objectState[1] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL2,COMBINABLE,32,32,0);
_objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL3,COMBINABLE,33,33,0);
_objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_KL4,COMBINABLE,45,45,0);
_objectState[4] = Object(_id, kStringShelf,kStringDefaultDescription,SHELF_L1,OPENABLE | CLOSED,25,26,17);
_objectState[5] = Object(_id, kStringPistol,kStringPistolDescription,PISTOL,TAKE,39,39,20);
_objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L2,OPENABLE | CLOSED,27,28,18);
_objectState[7] = Object(_id, kStringBooks,kStringBooksDescription,NULLOBJECT,UNNECESSARY,40,40,0);
_objectState[8] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L3,OPENABLE | CLOSED,29,30,19);
_objectState[9] = Object(_id, kStringSpool,kStringSpoolDescription, SPOOL,TAKE | COMBINABLE,41,41,21);
_objectState[10] = Object(_id, kStringCompartment,kStringDefaultDescription,SHELF_L4,OPENABLE | CLOSED,43,44,22);
_objectState[11] = Object(_id, kStringBook,kStringDefaultDescription,BOOK2,TAKE,46,46,23);
_objectState[12] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,34,34,0);
_objectState[13] = Object(_id, kStringUnderwear,kStringUnderwearDescription,NULLOBJECT,UNNECESSARY,35,35,0);
_objectState[14] = Object(_id, kStringClothes,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,36,36,0);
_objectState[15] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,37,37,0);
_objectState[16] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,38,38,0);
_objectState[17] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,23,23,0);
_objectState[18] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[19] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
_objectState[20] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
_objectState[21] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[22] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[23] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[24] = Object(_id, kStringFolders,kStringFoldersDescription,NULLOBJECT,UNNECESSARY,49,49,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -356,23 +314,23 @@ public:
_shown[11] = false;
_shown[12] = true;
_objectState[0] = Object(_id, "Poster","Ein Poster von \"Big Boss\".",NULLOBJECT,UNNECESSARY,11,11,0);
_objectState[1] = Object(_id, "Poster","Ein Poster von \"Rock Desaster\".",NULLOBJECT,UNNECESSARY,12,12,0);
_objectState[2] = Object(_id, "Box",Object::defaultDescription,NULLOBJECT,NULLTYPE,13,13,0);
_objectState[3] = Object(_id, "Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",NULLOBJECT,UNNECESSARY,14,14,0);
_objectState[4] = Object(_id, "Schallplatte","Die Platte ist von \"Big Boss\".",RECORD,TAKE | COMBINABLE,15,15,8 | 128);
_objectState[5] = Object(_id, "Schallplattenst\204nder","Du hast jetzt keine Zeit, in|der Plattensammlung rumzust\224bern.",NULLOBJECT,UNNECESSARY,16,16,0);
_objectState[6] = Object(_id, "Knopf",Object::defaultDescription,TURNTABLE_BUTTON,PRESS,22,22,0);
_objectState[7] = Object(_id, "Plattenspieler","Sieht aus, als k<>me|er aus dem Museum.",TURNTABLE,UNNECESSARY | COMBINABLE,17,17,0);
_objectState[8] = Object(_id, "Leitung",Object::defaultDescription,WIRE,COMBINABLE,18,18,0);
_objectState[9] = Object(_id, "Leitung",Object::defaultDescription,WIRE2,COMBINABLE,19,19,0);
_objectState[10] = Object(_id, "Stecker",Object::defaultDescription,PLUG,COMBINABLE,20,20,0);
_objectState[11] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
_objectState[12] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,0,0,0);
_objectState[13] = Object(_id, "Schrank",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[14] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[15] = Object(_id, "Steckdose",Object::defaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[16] = Object(_id, "Toilette",Object::defaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[0] = Object(_id, kStringPoster,kStringPosterDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
_objectState[1] = Object(_id, kStringPoster,kStringPosterDescription2,NULLOBJECT,UNNECESSARY,12,12,0);
_objectState[2] = Object(_id, kStringSpeaker,kStringDefaultDescription,NULLOBJECT,NULLTYPE,13,13,0);
_objectState[3] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,14,14,0);
_objectState[4] = Object(_id, kStringRecord,kStringRecordDescription,RECORD,TAKE | COMBINABLE,15,15,8 | 128);
_objectState[5] = Object(_id, kStringRecordStand,kStringRecordStandDescription,NULLOBJECT,UNNECESSARY,16,16,0);
_objectState[6] = Object(_id, kStringButton,kStringDefaultDescription,TURNTABLE_BUTTON,PRESS,22,22,0);
_objectState[7] = Object(_id, kStringTurntable,kStringTurntableDescription,TURNTABLE,UNNECESSARY | COMBINABLE,17,17,0);
_objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,WIRE,COMBINABLE,18,18,0);
_objectState[9] = Object(_id, kStringWire,kStringDefaultDescription,WIRE2,COMBINABLE,19,19,0);
_objectState[10] = Object(_id, kStringPlug,kStringDefaultDescription,PLUG,COMBINABLE,20,20,0);
_objectState[11] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,24 | 128,CORRIDOR,9);
_objectState[12] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
_objectState[13] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[14] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[15] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[16] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -390,15 +348,15 @@ public:
_shown[1] = true;
_shown[2] = true;
_objectState[0] = Object(_id, "Bild","Manche Leute haben schon|einen komischen Geschmack.",NULLOBJECT,UNNECESSARY,5,5,0);
_objectState[1] = Object(_id, "Zeichenger\204te","Auf dem Zettel sind lauter|unverst\204ndliche Skizzen und Berechnungen.|(Jedenfalls f\201r dich unverst\204ndlich.)",NULLOBJECT,UNNECESSARY,6,6,0);
_objectState[2] = Object(_id, "Magnete","Damit werden Sachen auf|dem Tisch festgehalten.",NULLOBJECT,UNNECESSARY,7,7,0);
_objectState[3] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[4] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,0,0,0);
_objectState[5] = Object(_id, "Schrank",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[6] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[7] = Object(_id, "Steckdose",Object::defaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[8] = Object(_id, "Toilette",Object::defaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[0] = Object(_id, kStringImage,kStringImageDescription1,NULLOBJECT,UNNECESSARY,5,5,0);
_objectState[1] = Object(_id, kStringDrawingInstruments,kStringDrawingInstrumentsDescription,NULLOBJECT,UNNECESSARY,6,6,0);
_objectState[2] = Object(_id, kStringMagnete,kStringMagneteDescription,NULLOBJECT,UNNECESSARY,7,7,0);
_objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
_objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
}
};
@ -417,15 +375,15 @@ public:
_shown[4] = true;
_shown[5] = true;
_objectState[0] = Object(_id, "Schachspiel","Es macht wohl Spa\341, an|der Decke Schach zu spielen.",NULLOBJECT,UNNECESSARY,11,11,0);
_objectState[1] = Object(_id, "Tennisschl\204ger","Fliegt Boris Becker auch mit?",NULLOBJECT,UNNECESSARY,8,8,0);
_objectState[2] = Object(_id, "Tennisball","Toll!",NULLOBJECT,UNNECESSARY,9,9,0);
_objectState[3] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[4] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,0,0,0);
_objectState[5] = Object(_id, "Schrank",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[6] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[7] = Object(_id, "Steckdose",Object::defaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[8] = Object(_id, "Toilette",Object::defaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription1,NULLOBJECT,UNNECESSARY,11,11,0);
_objectState[1] = Object(_id, kStringTennisRacket,kStringTennisRacketDescription,NULLOBJECT,UNNECESSARY,8,8,0);
_objectState[2] = Object(_id, kStringTennisBall,kStringGenericDescription2,NULLOBJECT,UNNECESSARY,9,9,0);
_objectState[3] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | OPENED | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
_objectState[5] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[6] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[7] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[8] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
}
};
@ -454,30 +412,30 @@ public:
_shown[14] = false;
_shown[15] = true;
_objectState[0] = Object(_id, "Schachspiel","Dein Magnetschachspiel. Schach war|schon immer deine Leidenschaft.",CHESS,TAKE | COMBINABLE,12,12,7 | 128);
_objectState[1] = Object(_id, "Bett","Das ist dein Bett. Toll, nicht wahr?",NULLOBJECT,NULLTYPE,13,13,0);
_objectState[2] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_K1,COMBINABLE,27,27,0);
_objectState[3] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_K2,COMBINABLE,28,28,0);
_objectState[4] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_K3,COMBINABLE,29,29,0);
_objectState[5] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",SLOT_K4,COMBINABLE,30,30,0);
_objectState[6] = Object(_id, "Fach","Das ist eins deiner drei F\204cher.",SHELF1,OPENABLE | CLOSED,14,18,9);
_objectState[7] = Object(_id, "Alben","Deine Briefmarkensammlung.",NULLOBJECT,UNNECESSARY,14,14,0);
_objectState[8] = Object(_id, "Fach","Das ist eins deiner drei F\204cher.",SHELF2,OPENABLE | CLOSED,15,19,10);
_objectState[9] = Object(_id, "Seil","Es ist ungef\204hr 10 m lang und 4 cm dick.",ROPE,TAKE | COMBINABLE,15,15,12);
_objectState[10] = Object(_id, "Schrank","Das ist dein Schrank.",SHELF3,OPENABLE | CLOSED,16,17,11);
_objectState[11] = Object(_id, "Krimskram","Es ist nichts brauchbares dabei.",NULLOBJECT,UNNECESSARY,20,20,0);
_objectState[12] = Object(_id, "Kleider","Es sind Standard-Weltraum-Klamotten.",NULLOBJECT,UNNECESSARY,21,21,0);
_objectState[13] = Object(_id, "Unterw\204sche",Object::defaultDescription,NULLOBJECT,UNNECESSARY,22,22,0);
_objectState[14] = Object(_id, "Str\201mpfe",Object::defaultDescription,NULLOBJECT,UNNECESSARY,23,23,0);
_objectState[15] = Object(_id, "Fach","Das ist eins deiner drei F\204cher.",SHELF4,OPENABLE | CLOSED,24,25,13);
_objectState[16] = Object(_id, "Buch","Es ist|\"Per Anhalter durch die Galaxis\"|von Douglas Adams.",BOOK,TAKE,26,26,14);
_objectState[17] = Object(_id, "Discman","Es ist eine \"Mad Monkeys\"-CD darin.",DISCMAN,TAKE | COMBINABLE,33,33,16);
_objectState[18] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[19] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,0,0,0);
_objectState[20] = Object(_id, "Schrank",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[21] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[22] = Object(_id, "Steckdose",Object::defaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[23] = Object(_id, "Toilette",Object::defaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
_objectState[0] = Object(_id, kStringChessGame,kStringChessGameDescription2,CHESS,TAKE | COMBINABLE,12,12,7 | 128);
_objectState[1] = Object(_id, kStringBed,kStringBedDescription,NULLOBJECT,NULLTYPE,13,13,0);
_objectState[2] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K1,COMBINABLE,27,27,0);
_objectState[3] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K2,COMBINABLE,28,28,0);
_objectState[4] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K3,COMBINABLE,29,29,0);
_objectState[5] = Object(_id, kStringSlot,kStringSlotDescription,SLOT_K4,COMBINABLE,30,30,0);
_objectState[6] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF1,OPENABLE | CLOSED,14,18,9);
_objectState[7] = Object(_id, kStringAlbums,kStringAlbumsDescription,NULLOBJECT,UNNECESSARY,14,14,0);
_objectState[8] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF2,OPENABLE | CLOSED,15,19,10);
_objectState[9] = Object(_id, kStringRope,kStringRopeDescription,ROPE,TAKE | COMBINABLE,15,15,12);
_objectState[10] = Object(_id, kStringShelf,kStringShelfDescription,SHELF3,OPENABLE | CLOSED,16,17,11);
_objectState[11] = Object(_id, kStringJunk,kStringJunkDescription,NULLOBJECT,UNNECESSARY,20,20,0);
_objectState[12] = Object(_id, kStringClothes,kStringClothesDescription,NULLOBJECT,UNNECESSARY,21,21,0);
_objectState[13] = Object(_id, kStringUnderwear,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,22,22,0);
_objectState[14] = Object(_id, kStringSocks,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,23,23,0);
_objectState[15] = Object(_id, kStringCompartment,kStringCompartmentDescription,SHELF4,OPENABLE | CLOSED,24,25,13);
_objectState[16] = Object(_id, kStringBook,kStringBookHitchhiker,BOOK,TAKE,26,26,14);
_objectState[17] = Object(_id, kStringDiscman,kStringDiscmanDescription,DISCMAN,TAKE | COMBINABLE,33,33,16);
_objectState[18] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | EXIT,3,3,15 | 128,CORRIDOR,5);
_objectState[19] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,0,0,0);
_objectState[20] = Object(_id, kStringShelf,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,1,1,0);
_objectState[21] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,2,2,0);
_objectState[22] = Object(_id, kStringSocket,kStringDefaultDescription,SOCKET,COMBINABLE,4,4,0);
_objectState[23] = Object(_id, kStringToilet,kStringDefaultDescription,BATHROOM_DOOR,EXIT,255,255,0,BATHROOM,22);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -494,9 +452,9 @@ public:
_id = BATHROOM;
_shown[0] = true;
_objectState[0] = Object(_id, "Klo","Ein Klo mit Saugmechanismus.",TOILET,NULLTYPE,0,0,0);
_objectState[1] = Object(_id, "Dusche",Object::defaultDescription,SHOWER,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, "Ausgang",Object::defaultDescription,BATHROOM_EXIT,EXIT,255,255,0,CABIN_R3,2);
_objectState[0] = Object(_id, kStringBathroom,kStringBathroomDescription,TOILET,NULLTYPE,0,0,0);
_objectState[1] = Object(_id, kStringShower,kStringDefaultDescription,SHOWER,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,BATHROOM_EXIT,EXIT,255,255,0,CABIN_R3,2);
}
};
@ -516,13 +474,13 @@ public:
_shown[5] = false;
_shown[6] = true;
_objectState[0] = Object(_id, "Luke","Das ist eine Luke !!!",NULLOBJECT,EXIT | OPENABLE | OPENED | CLOSED,0,0,0,CORRIDOR,10);
_objectState[1] = Object(_id, "Luke","Dies ist eine Luke !!!",NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,HOLD,14);
_objectState[2] = Object(_id, "Knopf",Object::defaultDescription,BUTTON1,PRESS,2,2,0);
_objectState[3] = Object(_id, "Knopf",Object::defaultDescription,BUTTON2,PRESS,3,3,0);
_objectState[4] = Object(_id, "Helm","Es ist der Helm zum Raumanzug.",HELMET,TAKE,4,4,7);
_objectState[5] = Object(_id, "Raumanzug","Der einzige Raumanzug, den die|anderen hiergelassen haben ...",SUIT,TAKE,5,5,8);
_objectState[6] = Object(_id, "Versorgung","Es ist der Versorgungsteil zum Raumanzug.",LIFESUPPORT,TAKE,6,6,9);
_objectState[0] = Object(_id, kStringHatch,kStringHatchDescription1,NULLOBJECT,EXIT | OPENABLE | OPENED | CLOSED,0,0,0,CORRIDOR,10);
_objectState[1] = Object(_id, kStringHatch,kStringHatchDescription2,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,HOLD,14);
_objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,2,2,0);
_objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,3,3,0);
_objectState[4] = Object(_id, kStringHelmet,kStringHelmetDescription,HELMET,TAKE,4,4,7);
_objectState[5] = Object(_id, kStringSuit,kStringSuitDescription,SUIT,TAKE,5,5,8);
_objectState[6] = Object(_id, kStringLifeSupport,kStringLifeSupportDescription,LIFESUPPORT,TAKE,6,6,9);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -539,27 +497,22 @@ public:
_id = HOLD;
_shown[0] = true;
_objectState[0] = Object(_id, "",Object::defaultDescription,HOLD_WIRE,COMBINABLE,255,255,0);
_objectState[1] = Object(_id, "Schrott","Da ist eine L\201sterklemme dran, die|noch ganz brauchbar aussieht.|Ich nehme sie mit.",SCRAP_LK,NULLTYPE,4,4,0);
_objectState[2] = Object(_id, "L\201sterklemme",Object::defaultDescription,TERMINALSTRIP,COMBINABLE,255,255,0);
_objectState[3] = Object(_id, "Schrott","Junge, Junge! Die Explosion hat ein|ganz sch\224nes Durcheinander angerichtet.",NULLOBJECT,NULLTYPE,5,5,0);
_objectState[4] = Object(_id, "Reaktor","Das war einmal der Reaktor.",NULLOBJECT,NULLTYPE,6,6,0);
_objectState[5] = Object(_id, "D\201se",Object::defaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
_objectState[6] = Object(_id, "blauer K\201rbis","Keine Ahnung, was das ist.",NULLOBJECT,NULLTYPE,8,8,0);
_objectState[7] = Object(_id, "Luke",Object::defaultDescription,LANDINGMOD_OUTERHATCH,EXIT | OPENABLE,1,2,2,LANDINGMODULE,6);
_objectState[8] = Object(_id, "Landef\204hre","Sie war eigentlich f\201r Bodenuntersuchungen|auf Arsano 3 gedacht.",NULLOBJECT,NULLTYPE,0,0,0);
_objectState[9] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,AIRLOCK,22);
_objectState[10] = Object(_id, "Luke","Sie f\201hrt nach drau\341en.",OUTERHATCH_TOP,EXIT | OPENABLE | OPENED,3,3,0,GENERATOR,8);
_objectState[11] = Object(_id, "Generator","Er versorgt das Raumschiff mit Strom.",GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8);
_descriptionScrap = "Ein St\201ck Schrott.";
_objectState[0] = Object(_id, kNoString,kStringDefaultDescription,HOLD_WIRE,COMBINABLE,255,255,0);
_objectState[1] = Object(_id, kStringScrap,kStringScrapDescription1,SCRAP_LK,NULLTYPE,4,4,0);
_objectState[2] = Object(_id, kStringTerminalStrip,kStringDefaultDescription,TERMINALSTRIP,COMBINABLE,255,255,0);
_objectState[3] = Object(_id, kStringScrap,kStringScrapDescription2,NULLOBJECT,NULLTYPE,5,5,0);
_objectState[4] = Object(_id, kStringReactor,kStringReactorDescription,NULLOBJECT,NULLTYPE,6,6,0);
_objectState[5] = Object(_id, kStringNozzle,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
_objectState[6] = Object(_id, kStringPumpkin,kStringPumpkinDescription,NULLOBJECT,NULLTYPE,8,8,0);
_objectState[7] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_OUTERHATCH,EXIT | OPENABLE,1,2,2,LANDINGMODULE,6);
_objectState[8] = Object(_id, kStringLandingModule,kStringLandingModuleDescription,NULLOBJECT,NULLTYPE,0,0,0);
_objectState[9] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,AIRLOCK,22);
_objectState[10] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH_TOP,EXIT | OPENABLE | OPENED,3,3,0,GENERATOR,8);
_objectState[11] = Object(_id, kStringGenerator,kStringGeneratorDescription,GENERATOR_TOP,EXIT,12,12,0,GENERATOR,8);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
virtual void onEntrance();
private:
Common::String _descriptionScrap;
};
class ShipLandingModule : public Room {
@ -572,12 +525,12 @@ public:
_id = LANDINGMODULE;
_shown[0] = true;
_objectState[0] = Object(_id, "Steckdose",Object::defaultDescription,LANDINGMOD_SOCKET,COMBINABLE,1,1,0);
_objectState[1] = Object(_id, "Knopf","Es ist ein Sicherheitsknopf.|Er kann nur mit einem spitzen|Gegenstand gedr\201ckt werden.",LANDINGMOD_BUTTON,PRESS | COMBINABLE,2,2,0);
_objectState[2] = Object(_id, "Monitor",Object::defaultDescription,LANDINGMOD_MONITOR,NULLTYPE,3,3,0);
_objectState[3] = Object(_id, "Tastatur",Object::defaultDescription,KEYBOARD,NULLTYPE,4,4,0);
_objectState[4] = Object(_id, "",Object::defaultDescription,LANDINGMOD_WIRE,COMBINABLE,255,255,0);
_objectState[5] = Object(_id, "Luke",Object::defaultDescription,LANDINGMOD_HATCH,EXIT | OPENABLE | OPENED | COMBINABLE, 0,0,1 | 128,HOLD,10);
_objectState[0] = Object(_id, kStringSocket,kStringDefaultDescription,LANDINGMOD_SOCKET,COMBINABLE,1,1,0);
_objectState[1] = Object(_id, kStringButton,kSafetyButtonDescription,LANDINGMOD_BUTTON,PRESS | COMBINABLE,2,2,0);
_objectState[2] = Object(_id, kStringMonitor,kStringDefaultDescription,LANDINGMOD_MONITOR,NULLTYPE,3,3,0);
_objectState[3] = Object(_id, kStringKeyboard,kStringDefaultDescription,KEYBOARD,NULLTYPE,4,4,0);
_objectState[4] = Object(_id, kNoString,kStringDefaultDescription,LANDINGMOD_WIRE,COMBINABLE,255,255,0);
_objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,LANDINGMOD_HATCH,EXIT | OPENABLE | OPENED | COMBINABLE, 0,0,1 | 128,HOLD,10);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -598,19 +551,19 @@ public:
_shown[4] = false;
_shown[5] = true;
_objectState[0] = Object(_id, "langes Kabel mit Stecker",Object::defaultDescription,GENERATOR_WIRE,COMBINABLE,255,255,0);
_objectState[1] = Object(_id, "leere Kabelrolle",Object::defaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
_objectState[2] = Object(_id, "Keycard des Commanders","Hey, das ist die Keycard des Commanders!|Er mu\341 sie bei dem \201berst\201rzten|Aufbruch verloren haben.",KEYCARD2,COMBINABLE | TAKE,12,12,5 | 128);
_objectState[3] = Object(_id, "Seil",Object::defaultDescription,GENERATOR_ROPE,COMBINABLE,255,255,0);
_objectState[4] = Object(_id, "Luke","Sie f\201hrt nach drau\341en.",OUTERHATCH,EXIT | OPENABLE,1,2,1,OUTSIDE,22);
_objectState[5] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,OPENABLE | CLOSED,3,3,0);
_objectState[6] = Object(_id, "Schlitz","Es ist ein Keycard-Leser.",NULLOBJECT,COMBINABLE,4,4,0);
_objectState[7] = Object(_id, "Klappe",Object::defaultDescription,TRAP,OPENABLE,5,6,2);
_objectState[8] = Object(_id, "Leitung",Object::defaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
_objectState[9] = Object(_id, "Spannungmessger\204t",Object::defaultDescription,VOLTMETER,NULLTYPE,9,9,0,NULLROOM,0);
_objectState[10] = Object(_id, "Klemme",Object::defaultDescription,CLIP,COMBINABLE,8,8,0);
_objectState[11] = Object(_id, "Leitung","Sie f\201hrt vom Generator zum Spannungmessger\204t.",SHORT_WIRE,COMBINABLE,10,10,0);
_objectState[12] = Object(_id, "Leiter",Object::defaultDescription,LADDER,EXIT,0,0,0,HOLD,1);
_objectState[0] = Object(_id, kStringGeneratorWire,kStringDefaultDescription,GENERATOR_WIRE,COMBINABLE,255,255,0);
_objectState[1] = Object(_id, kStringEmptySpool,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
_objectState[2] = Object(_id, kStringKeycard2,kStringKeycard2Description,KEYCARD2,COMBINABLE | TAKE,12,12,5 | 128);
_objectState[3] = Object(_id, kStringRope,kStringDefaultDescription,GENERATOR_ROPE,COMBINABLE,255,255,0);
_objectState[4] = Object(_id, kStringHatch,kStringHatchDescription3,OUTERHATCH,EXIT | OPENABLE,1,2,1,OUTSIDE,22);
_objectState[5] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,OPENABLE | CLOSED,3,3,0);
_objectState[6] = Object(_id, kStringSlot,kStringSlotDescription,NULLOBJECT,COMBINABLE,4,4,0);
_objectState[7] = Object(_id, kStringTrap,kStringDefaultDescription,TRAP,OPENABLE,5,6,2);
_objectState[8] = Object(_id, kStringWire,kStringDefaultDescription,NULLOBJECT,NULLTYPE,7,7,0);
_objectState[9] = Object(_id, kStringVoltmeter,kStringDefaultDescription,VOLTMETER,NULLTYPE,9,9,0,NULLROOM,0);
_objectState[10] = Object(_id, kStringClip,kStringDefaultDescription,CLIP,COMBINABLE,8,8,0);
_objectState[11] = Object(_id, kStringWire,kStringWireDescription,SHORT_WIRE,COMBINABLE,10,10,0);
_objectState[12] = Object(_id, kStringLadder,kStringDefaultDescription,LADDER,EXIT,0,0,0,HOLD,1);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -626,8 +579,8 @@ public:
_id = OUTSIDE;
_shown[0] = true;
_objectState[0] = Object(_id, "Luke",Object::defaultDescription,NULLOBJECT,EXIT,0,0,0,GENERATOR,3);
_objectState[1] = Object(_id, "Seil",Object::defaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
_objectState[0] = Object(_id, kStringHatch,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,GENERATOR,3);
_objectState[1] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
}
};
@ -642,10 +595,10 @@ public:
_id = OUTSIDE;
_shown[0] = true;
_objectState[0] = Object(_id, "Seil",Object::defaultDescription,NULLOBJECT,UNNECESSARY | EXIT,0,0,0,GENERATOR,12);
_objectState[1] = Object(_id, "Stein",Object::defaultDescription,STONE,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, "Stein",Object::defaultDescription,NULLOBJECT,NULLTYPE,2,2,0);
_objectState[3] = Object(_id, "Loch","Es scheint eine H\224hle zu sein.",NULLOBJECT,NULLTYPE,255,255,0,CAVE,1);
_objectState[0] = Object(_id, kStringRope,kStringDefaultDescription,NULLOBJECT,UNNECESSARY | EXIT,0,0,0,GENERATOR,12);
_objectState[1] = Object(_id, kStringStone,kStringDefaultDescription,STONE,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, kStringStone,kStringDefaultDescription,NULLOBJECT,NULLTYPE,2,2,0);
_objectState[3] = Object(_id, kStringCaveOpening,kStringCaveOpeningDescription,NULLOBJECT,NULLTYPE,255,255,0,CAVE,1);
}
virtual void onEntrance();
@ -661,8 +614,8 @@ public:
_id = CAVE;
_shown[0] = false;
_objectState[0] = Object(_id, "Ausgang","Hier bist du gerade hergekommen.",NULLOBJECT,EXIT,255,255,0,ROCKS,22);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,2);
_objectState[0] = Object(_id, kStringExit,kStringExitDescription,NULLOBJECT,EXIT,255,255,0,ROCKS,22);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,2);
}
};
class ArsanoMeetup : public Room {
@ -675,12 +628,12 @@ public:
_id = MEETUP;
_shown[0] = true;
_objectState[0] = Object(_id, "H\224hle",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_objectState[1] = Object(_id, "Schild","Diese Schrift kannst du nicht lesen.",MEETUP_SIGN,NULLTYPE,0,0,0);
_objectState[2] = Object(_id, "Eingang",Object::defaultDescription,DOOR,EXIT,1,1,0,ENTRANCE,7);
_objectState[3] = Object(_id, "Stern",Object::defaultDescription,STAR,NULLTYPE,2,2,0);
_objectState[4] = Object(_id, "Raumschiff",Object::defaultDescription,SPACESHIPS,COMBINABLE,3,3,0);
_objectState[5] = Object(_id, "Raumschiff",Object::defaultDescription,SPACESHIP,COMBINABLE,4,4,0);
_objectState[0] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_objectState[1] = Object(_id, kStringSign,kStringSignDescription,MEETUP_SIGN,NULLTYPE,0,0,0);
_objectState[2] = Object(_id, kStringEntrance,kStringDefaultDescription,DOOR,EXIT,1,1,0,ENTRANCE,7);
_objectState[3] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,2,2,0);
_objectState[4] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIPS,COMBINABLE,3,3,0);
_objectState[5] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIP,COMBINABLE,4,4,0);
}
virtual void onEntrance();
@ -701,24 +654,24 @@ public:
_id = ENTRANCE;
_shown[0] = true;
_objectState[0] = Object(_id, "Portier","Du siehst doch selbst, wie er aussieht.",PORTER,TALK,0,0,0);
_objectState[1] = Object(_id, "T\201r",Object::defaultDescription,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,NULLROOM,5);
_objectState[2] = Object(_id, "Schild","Diese Schrift kannst du nicht lesen.",KITCHEN_SIGN,NULLTYPE,2,2,0);
_objectState[3] = Object(_id, "Kaugummi",Object::defaultDescription,SCHNUCK,TAKE,255,255,10+128);
_objectState[4] = Object(_id, "Gummib\204rchen",Object::defaultDescription,SCHNUCK,TAKE,255,255,11+128);
_objectState[5] = Object(_id, "Schokokugel",Object::defaultDescription,SCHNUCK,TAKE,255,255,12+128);
_objectState[6] = Object(_id, "\232berraschungsei",Object::defaultDescription,EGG,TAKE,255,255,13+128);
_objectState[7] = Object(_id, "Lakritz",Object::defaultDescription,SCHNUCK,TAKE,255,255,14+128);
_objectState[8] = Object(_id, "Tablette","Die Plastikh\201lle zeigt einen|Mund mit einer Sprechblase. Was|darin steht, kannst du nicht lesen.",PILL,TAKE,255,255,0);
_objectState[9] = Object(_id, "Schlitz",Object::defaultDescription,CAR_SLOT,COMBINABLE,6,6,0);
_objectState[10] = Object(_id, "Automat","Sieht aus wie ein Kaugummiautomat.",NULLOBJECT,NULLTYPE,5,5,0);
_objectState[11] = Object(_id, "Toilette","Die Toiletten sind denen|auf der Erde sehr \204hnlich.",ARSANO_BATHROOM,NULLTYPE,255,255,0);
_objectState[12] = Object(_id, "Knopf",Object::defaultDescription,BATHROOM_BUTTON,PRESS,3,3,0);
_objectState[13] = Object(_id, "Schild","Diese Schrift kannst du nicht lesen.",BATHROOM_SIGN,NULLTYPE,4,4,0);
_objectState[14] = Object(_id, "Treppe",Object::defaultDescription,STAIRCASE,EXIT,8,8,0,REST,3);
_objectState[15] = Object(_id, "Ausgang",Object::defaultDescription,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22);
_objectState[16] = Object(_id, "M\201nzen","Es sind seltsame|K\224pfe darauf abgebildet.",COINS,TAKE|COMBINABLE,255,255,0);
_objectState[17] = Object(_id, "Tablettenh\201lle","Darauf steht:\"Wenn Sie diese|Schrift jetzt lesen k\224nnen,|hat die Tablette gewirkt.\"",PILL_HULL,TAKE,255,255,0);
_objectState[0] = Object(_id, kStringPorter,kStringPorterDescription,PORTER,TALK,0,0,0);
_objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT | OPENABLE | CLOSED,1,1,0,NULLROOM,5);
_objectState[2] = Object(_id, kStringSign,kStringSignDescription,KITCHEN_SIGN,NULLTYPE,2,2,0);
_objectState[3] = Object(_id, kStringChewingGum,kStringDefaultDescription,SCHNUCK,TAKE,255,255,10+128);
_objectState[4] = Object(_id, kStringGummyBears,kStringDefaultDescription,SCHNUCK,TAKE,255,255,11+128);
_objectState[5] = Object(_id, kStringChocolateBall,kStringDefaultDescription,SCHNUCK,TAKE,255,255,12+128);
_objectState[6] = Object(_id, kStringEgg,kStringDefaultDescription,EGG,TAKE,255,255,13+128);
_objectState[7] = Object(_id, kStringLiquorice,kStringDefaultDescription,SCHNUCK,TAKE,255,255,14+128);
_objectState[8] = Object(_id, kStringPill,kStringPillDescription,PILL,TAKE,255,255,0);
_objectState[9] = Object(_id, kStringSlot,kStringDefaultDescription,CAR_SLOT,COMBINABLE,6,6,0);
_objectState[10] = Object(_id, kStringVendingMachine,kStringVendingMachineDescription,NULLOBJECT,NULLTYPE,5,5,0);
_objectState[11] = Object(_id, kStringToilet,kStringToiletDescription,ARSANO_BATHROOM,NULLTYPE,255,255,0);
_objectState[12] = Object(_id, kStringButton,kStringDefaultDescription,BATHROOM_BUTTON,PRESS,3,3,0);
_objectState[13] = Object(_id, kStringSign,kStringSignDescription,BATHROOM_SIGN,NULLTYPE,4,4,0);
_objectState[14] = Object(_id, kStringStaircase,kStringDefaultDescription,STAIRCASE,EXIT,8,8,0,REST,3);
_objectState[15] = Object(_id, kStringExit,kStringDefaultDescription,MEETUP_EXIT,EXIT,255,255,0,MEETUP,22);
_objectState[16] = Object(_id, kStringCoins,kStringCoinsDescription,COINS,TAKE|COMBINABLE,255,255,0);
_objectState[17] = Object(_id, kStringTabletPackage,kStringTabletPackageDescription,PILL_HULL,TAKE,255,255,0);
_dialog1[0] = "Wieso das denn nicht?";
_dialog1[1] = "Wo bin ich hier?";
@ -757,9 +710,9 @@ public:
_id = REST;
_shown[0] = true;
_objectState[0] = Object(_id, "Treppe",Object::defaultDescription,NULLOBJECT,EXIT,0,0,0,ENTRANCE,17);
_objectState[1] = Object(_id, "Stuhl",Object::defaultDescription,NULLOBJECT,EXIT,1,1,0,ROGER,2);
_objectState[2] = Object(_id, "Schuhe","Wie ist der denn mit|Schuhen hier reingekommen?",NULLOBJECT,NULLTYPE,2,2,0);
_objectState[0] = Object(_id, kStringStaircase,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,ENTRANCE,17);
_objectState[1] = Object(_id, kStringChair,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,ROGER,2);
_objectState[2] = Object(_id, kStringShoes,kStringShoesDescription,NULLOBJECT,NULLTYPE,2,2,0);
_chewing = true;
}
@ -780,15 +733,15 @@ public:
_id = ROGER;
_shown[0] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,REST,19);
_objectState[1] = Object(_id, "Froschgesicht",Object::defaultDescription,ROGER_W,TALK,0,0,0);
_objectState[2] = Object(_id, "Gekritzel","\"Mr Spock was here\"",NULLOBJECT,NULLTYPE,3,3,0);
_objectState[3] = Object(_id, "Brieftasche",Object::defaultDescription,WALLET,TAKE,1,1,4);
_objectState[4] = Object(_id, "Speisekarte","\"Heute empfehlen wir:|Fonua Opra mit Ulk.\"",NULLOBJECT,UNNECESSARY,2,2,0);
_objectState[5] = Object(_id, "Tasse","Sie enth\204lt eine gr\201nliche Fl\201ssigkeit.",CUP,UNNECESSARY,4,4,0);
_objectState[6] = Object(_id, "Schachspiel",Object::defaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
_objectState[7] = Object(_id, "10-Buckazoid-Schein","Nicht gerade sehr viel Geld.",NULLOBJECT,TAKE|COMBINABLE,255,255,0);
_objectState[8] = Object(_id, "Keycard von Roger",Object::defaultDescription,KEYCARD_R,TAKE|COMBINABLE,255,255,0);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,REST,19);
_objectState[1] = Object(_id, kStringFrogFace,kStringDefaultDescription,ROGER_W,TALK,0,0,0);
_objectState[2] = Object(_id, kStringScrible,kStringScribleDescription,NULLOBJECT,NULLTYPE,3,3,0);
_objectState[3] = Object(_id, kStringWallet,kStringDefaultDescription,WALLET,TAKE,1,1,4);
_objectState[4] = Object(_id, kStringMenu,kStringMenuDescription,NULLOBJECT,UNNECESSARY,2,2,0);
_objectState[5] = Object(_id, kStringCup,kStringCupDescription,CUP,UNNECESSARY,4,4,0);
_objectState[6] = Object(_id, kStringChessGame,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,255,255,0);
_objectState[7] = Object(_id, kStringBill,kStringBillDescription,NULLOBJECT,TAKE|COMBINABLE,255,255,0);
_objectState[8] = Object(_id, kStringKeycard3,kStringDefaultDescription,KEYCARD_R,TAKE|COMBINABLE,255,255,0);
_dialog1[0] = "K\224nnten Sie mir ein Gericht empfehlen?";
_dialog1[1] = "Wie lange dauert es denn noch bis zur Supernova?";
@ -817,17 +770,17 @@ public:
_id = GLIDER;
_shown[0] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,15);
_objectState[1] = Object(_id, "Knopf",Object::defaultDescription,GLIDER_BUTTON1,PRESS,0,0,0);
_objectState[2] = Object(_id, "Knopf",Object::defaultDescription,GLIDER_BUTTON2,PRESS,1,1,0);
_objectState[3] = Object(_id, "Knopf",Object::defaultDescription,GLIDER_BUTTON3,PRESS,2,2,0);
_objectState[4] = Object(_id, "Knopf",Object::defaultDescription,GLIDER_BUTTON4,PRESS,3,3,0);
_objectState[5] = Object(_id, "Keycard von Roger",Object::defaultDescription,GLIDER_KEYCARD,TAKE|COMBINABLE,255,255,0);
_objectState[6] = Object(_id, "Schlitz",Object::defaultDescription,GLIDER_SLOT,COMBINABLE,4,4,0);
_objectState[7] = Object(_id, "Fach",Object::defaultDescription,NULLOBJECT,OPENABLE,5,6,6);
_objectState[8] = Object(_id, "Tastatur",Object::defaultDescription,GLIDER_BUTTONS,NULLTYPE,7,7,0);
_objectState[9] = Object(_id, "Anzeige","Hmm, seltsame Anzeigen.",GLIDER_DISPLAY,NULLTYPE,8,8,0);
_objectState[10] = Object(_id, "Instrumente","Hmm, seltsame Anzeigen.",GLIDER_INSTRUMENTS,NULLTYPE,9,9,0);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,MEETUP,15);
_objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON1,PRESS,0,0,0);
_objectState[2] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON2,PRESS,1,1,0);
_objectState[3] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON3,PRESS,2,2,0);
_objectState[4] = Object(_id, kStringButton,kStringDefaultDescription,GLIDER_BUTTON4,PRESS,3,3,0);
_objectState[5] = Object(_id, kStringKeycard,kStringDefaultDescription,GLIDER_KEYCARD,TAKE|COMBINABLE,255,255,0);
_objectState[6] = Object(_id, kStringSlot,kStringDefaultDescription,GLIDER_SLOT,COMBINABLE,4,4,0);
_objectState[7] = Object(_id, kStringCompartment,kStringDefaultDescription,NULLOBJECT,OPENABLE,5,6,6);
_objectState[8] = Object(_id, kStringKeyboard,kStringDefaultDescription,GLIDER_BUTTONS,NULLTYPE,7,7,0);
_objectState[9] = Object(_id, kStringAnnouncement,kStringAnnouncementDescription,GLIDER_DISPLAY,NULLTYPE,8,8,0);
_objectState[10] = Object(_id, kStringInstruments,kStringAnnouncementDescription,GLIDER_INSTRUMENTS,NULLTYPE,9,9,0);
}
virtual void animation();
@ -846,9 +799,9 @@ public:
_id = MEETUP2;
_shown[0] = true;
_objectState[0] = Object(_id, "Roger W.",Object::defaultDescription,ROGER_W,TALK,255,255,0);
_objectState[1] = Object(_id, "Raumschiff",Object::defaultDescription,SPACESHIP,COMBINABLE,255,255,0);
_objectState[2] = Object(_id, "Höhle",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_objectState[0] = Object(_id, kStringRoger,kStringDefaultDescription,ROGER_W,TALK,255,255,0);
_objectState[1] = Object(_id, kStringSpaceshift,kStringDefaultDescription,SPACESHIP,COMBINABLE,255,255,0);
_objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_dialog1[0] = "Ach, Ihnen geh\224rt die. Ich habe sie eben im Sand gefunden.";
_dialog1[1] = "Nein, tut mir leid.";
@ -884,9 +837,9 @@ public:
_id = MEETUP3;
_shown[0] = true;
_objectState[0] = Object(_id, "Ufo","Der Eingang scheint offen zu sein.",UFO,EXIT,0,0,0,NULLROOM,3);
_objectState[1] = Object(_id, "Stern",Object::defaultDescription,STAR,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, "H\224hle",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_objectState[0] = Object(_id, kStringUfo,kStringUfoDescription,UFO,EXIT,0,0,0,NULLROOM,3);
_objectState[1] = Object(_id, kStringStar,kStringDefaultDescription,STAR,NULLTYPE,1,1,0);
_objectState[2] = Object(_id, kStringCave,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CAVE,22);
_dialog2[0] = "Wo bin ich hier?";
_dialog2[1] = "Was wollen Sie von mir?";
@ -945,16 +898,16 @@ public:
_shown[30] = false;
_shown[31] = true;
_objectState[0] = Object(_id, "Knopf",Object::defaultDescription,CELL_BUTTON,PRESS,1,1,0);
_objectState[1] = Object(_id, "T\201r",Object::defaultDescription,CELL_DOOR,EXIT|OPENABLE|CLOSED,0,0,31+128,CORRIDOR4,1);
_objectState[2] = Object(_id, "Tablett","Es ist irgendein Fra\341 und|etwas zu Trinken darauf.",TRAY,UNNECESSARY,255,255,0);
_objectState[3] = Object(_id, "Stange","Es scheint eine Lampe zu sein.",NULLOBJECT,COMBINABLE,3,3,0);
_objectState[4] = Object(_id, "Augen","Es ist nur ein Bild.",NULLOBJECT,NULLTYPE,4,4,0);
_objectState[5] = Object(_id, "Leitung",Object::defaultDescription,CELL_WIRE,COMBINABLE|TAKE,6,6,0);
_objectState[6] = Object(_id, "Steckdose","Sieht etwas anders aus als auf der Erde.",SOCKET,COMBINABLE,5,5,0);
_objectState[7] = Object(_id, "Metallblock","Er ist ziemlich schwer.",MAGNET,TAKE|COMBINABLE,255,255,30);
_objectState[8] = Object(_id, "Roboter","Den hast du erledigt.",NULLOBJECT,NULLTYPE,255,255,0);
_objectState[9] = Object(_id, "Tisch","Ein kleiner Metalltisch.",CELL_TABLE,COMBINABLE,2,2,0);
_objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,CELL_BUTTON,PRESS,1,1,0);
_objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,CELL_DOOR,EXIT|OPENABLE|CLOSED,0,0,31+128,CORRIDOR4,1);
_objectState[2] = Object(_id, kStringTray,kStringTrayDescription,TRAY,UNNECESSARY,255,255,0);
_objectState[3] = Object(_id, kStringLamp,kStringLampDescription,NULLOBJECT,COMBINABLE,3,3,0);
_objectState[4] = Object(_id, kStringEyes,kStringEyesDescription,NULLOBJECT,NULLTYPE,4,4,0);
_objectState[5] = Object(_id, kStringWire,kStringDefaultDescription,CELL_WIRE,COMBINABLE|TAKE,6,6,0);
_objectState[6] = Object(_id, kStringSocket,kStringSocketDescription,SOCKET,COMBINABLE,5,5,0);
_objectState[7] = Object(_id, kStringMetalBlock,kStringMetalBlockDescription,MAGNET,TAKE|COMBINABLE,255,255,30);
_objectState[8] = Object(_id, kStringRobot,kStringRobotDescription,NULLOBJECT,NULLTYPE,255,255,0);
_objectState[9] = Object(_id, kStringTable,kStringTableDescription,CELL_TABLE,COMBINABLE,2,2,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -996,8 +949,8 @@ public:
_shown[24] = false;
_shown[25] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,GUARD3,2);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR2,22);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,GUARD3,2);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR2,22);
}
virtual void onEntrance();
@ -1036,9 +989,9 @@ public:
_shown[23] = false;
_shown[24] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR1,2);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR3,22);
_objectState[2] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,1,1,0,CORRIDOR4,14);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR1,2);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR3,22);
_objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,CORRIDOR4,14);
}
virtual void onEntrance();
@ -1076,7 +1029,7 @@ public:
_shown[22] = false;
_shown[23] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR2,2);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR2,2);
}
virtual void onEntrance();
@ -1117,12 +1070,12 @@ public:
_shown[25] = false;
_shown[26] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,0,0,0,CORRIDOR2,10);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,1,1,0,GUARD,14);
_objectState[2] = Object(_id, "Zellent\201r","Hier warst du eingesperrt.",DOOR,EXIT|OPENABLE|OPENED|CLOSED,7,7,0,CELL,16);
_objectState[3] = Object(_id, "Laptop",Object::defaultDescription,NEWSPAPER,TAKE,6,6,8);
_objectState[4] = Object(_id, "Armbanduhr",Object::defaultDescription,WATCH,TAKE|COMBINABLE,255,255,8);
_objectState[5] = Object(_id, "Tisch",Object::defaultDescription,TABLE,COMBINABLE,5,5,0);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,0,0,0,CORRIDOR2,10);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,1,1,0,GUARD,14);
_objectState[2] = Object(_id, kStringCellDoor,kStringCellDoorDescription,DOOR,EXIT|OPENABLE|OPENED|CLOSED,7,7,0,CELL,16);
_objectState[3] = Object(_id, kStringLaptop,kStringDefaultDescription,NEWSPAPER,TAKE,6,6,8);
_objectState[4] = Object(_id, kStringWristwatch,kStringDefaultDescription,WATCH,TAKE|COMBINABLE,255,255,8);
_objectState[5] = Object(_id, kStringTable,kStringDefaultDescription,TABLE,COMBINABLE,5,5,0);
}
virtual void onEntrance();
@ -1163,8 +1116,8 @@ public:
_shown[23] = true;
_shown[24] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,DOOR,EXIT,2,2,0,NULLROOM,2);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR6,22);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,2,2,0,NULLROOM,2);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR6,22);
_dialog1[0] = "\216h ... nein, mein Name ist M\201ller.";
_dialog1[1] = "Oh, ich habe mich im Gang vertan.";
@ -1219,9 +1172,9 @@ public:
_shown[24] = true;
_shown[25] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR5,2);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,22);
_objectState[2] = Object(_id, "T\201r",Object::defaultDescription,DOOR,OPENABLE|CLOSED,255,255,0,CORRIDOR8,13);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR5,2);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,22);
_objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,OPENABLE|CLOSED,255,255,0,CORRIDOR8,13);
}
virtual void onEntrance();
@ -1262,8 +1215,8 @@ public:
_shown[24] = true;
_shown[25] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR6,2);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,GUARD,22);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,CORRIDOR6,2);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,GUARD,22);
}
virtual void onEntrance();
@ -1306,8 +1259,8 @@ public:
_shown[27] = false;
_shown[28] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE,0,0,0,CORRIDOR6,10);
_objectState[1] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,BCORRIDOR,22);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,CORRIDOR6,10);
_objectState[1] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,BCORRIDOR,22);
}
virtual void onEntrance();
@ -1351,8 +1304,8 @@ public:
_shown[27] = false;
_shown[28] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,2,2,0,BCORRIDOR,2);
_objectState[1] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE,0,0,0,GUARD,10);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,2,2,0,BCORRIDOR,2);
_objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,0,0,0,GUARD,10);
}
virtual void onEntrance();
@ -1371,23 +1324,20 @@ public:
_shown[2] = false;
_shown[3] = true;
_objectState[0] = Object(_id, "S\204ule",Object::defaultDescription,PILLAR1,NULLTYPE,4,4,0);
_objectState[1] = Object(_id, "S\204ule",Object::defaultDescription,PILLAR2,NULLTYPE,5,5,0);
_objectState[2] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,6,6,0,CORRIDOR8,2);
_objectState[3] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,7,7,0,CORRIDOR9,22);
_objectState[4] = Object(_id, "T\201r","Auf einem Schild an der T\201r steht \"Dr. Alab Hansi\".",DOOR1,EXIT|OPENABLE|CLOSED|OCCUPIED,0,0,1,OFFICE_L1,6);
_objectState[5] = Object(_id, "T\201r","Auf einem Schild an der T\201r steht \"Saval Lun\".",DOOR2,EXIT|OPENABLE|CLOSED|OCCUPIED,1,1,2,OFFICE_L2,16);
_objectState[6] = Object(_id, "T\201r","Auf einem Schild an der T\201r steht \"Prof. Dr. Ugnul Tschabb\".",DOOR3,EXIT|OPENABLE|OPENED,2,2,3,OFFICE_R1,8);
_objectState[7] = Object(_id, "T\201r","Auf einem Schild an der T\201r steht \"Alga Hurz Li\".",DOOR4,EXIT|OPENABLE|CLOSED|OCCUPIED,3,3,4,OFFICE_R2,18);
_dontEnter = "Diese T\201r w\201rde ich lieber|nicht \224ffnen. Nach dem Schild zu|urteilen, ist jemand in dem Raum.";
_objectState[0] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR1,NULLTYPE,4,4,0);
_objectState[1] = Object(_id, kStringPillar,kStringDefaultDescription,PILLAR2,NULLTYPE,5,5,0);
_objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,6,6,0,CORRIDOR8,2);
_objectState[3] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,7,7,0,CORRIDOR9,22);
_objectState[4] = Object(_id, kStringDoor,kStringDoorDescription1,DOOR1,EXIT|OPENABLE|CLOSED|OCCUPIED,0,0,1,OFFICE_L1,6);
_objectState[5] = Object(_id, kStringDoor,kStringDoorDescription2,DOOR2,EXIT|OPENABLE|CLOSED|OCCUPIED,1,1,2,OFFICE_L2,16);
_objectState[6] = Object(_id, kStringDoor,kStringDoorDescription3,DOOR3,EXIT|OPENABLE|OPENED,2,2,3,OFFICE_R1,8);
_objectState[7] = Object(_id, kStringDoor,kStringDoorDescription4,DOOR4,EXIT|OPENABLE|CLOSED|OCCUPIED,3,3,4,OFFICE_R2,18);
}
virtual void onEntrance();
virtual bool interact(Action verb, Object &obj1, Object &obj2);
private:
Common::String _dontEnter;
byte _nameSeen;
};
class AxacussIntersection : public Room {
@ -1400,13 +1350,13 @@ public:
_id = GUARD;
_shown[0] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR4,21);
_objectState[1] = Object(_id, "Gang",Object::defaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,5);
_objectState[2] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE,1,1,6,CORRIDOR9,3);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR4,21);
_objectState[1] = Object(_id, kStringCorridor,kStringDefaultDescription,NULLOBJECT,EXIT,3,3,0,CORRIDOR7,5);
_objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,1,1,6,CORRIDOR9,3);
// Originally GUARD was ObjectID..
_objectState[3] = Object(_id, "Axacussaner","Du m\201\341test ihn irgendwie ablenken.",INSTRUMENTS,TALK,0,0,0);
_objectState[4] = Object(_id, "Bild","Komisches Bild.",NULLOBJECT,NULLTYPE,2,2,0);
_objectState[5] = Object(_id, "Karte","Darauf steht: \"Generalkarte\".",MASTERKEYCARD,TAKE|COMBINABLE,255,255,1);
_objectState[3] = Object(_id, kStringAxacussan,kStringAxacussanDescription,INSTRUMENTS,TALK,0,0,0);
_objectState[4] = Object(_id, kStringImage,kStringImageDescription2,NULLOBJECT,NULLTYPE,2,2,0);
_objectState[5] = Object(_id, kStringMastercard,kStringMastercardDescription,MASTERKEYCARD,TAKE|COMBINABLE,255,255,1);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1421,14 +1371,14 @@ public:
_id = GUARD3;
_shown[0] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR1,22);
_objectState[1] = Object(_id, "T\201r",Object::defaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,0,0,0,NULLROOM,20);
_objectState[2] = Object(_id, "T\201r",Object::defaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,15);
_objectState[3] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE,2,2,11,OFFICE_L,0);
_objectState[4] = Object(_id, "Lampe",Object::defaultDescription,LAMP,COMBINABLE,3,3,0);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,CORRIDOR1,22);
_objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,0,0,0,NULLROOM,20);
_objectState[2] = Object(_id, kStringDoor,kStringDefaultDescription,NULLOBJECT,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,15);
_objectState[3] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE,2,2,11,OFFICE_L,0);
_objectState[4] = Object(_id, kStringLamp2,kStringDefaultDescription,LAMP,COMBINABLE,3,3,0);
// Originally GUARD was ObjectID..
_objectState[5] = Object(_id, "Axacussaner",Object::defaultDescription,INSTRUMENTS,TALK,5,5,0);
_objectState[6] = Object(_id, "Bild","Seltsam!",NULLOBJECT,NULLTYPE,4,4,0);
_objectState[5] = Object(_id, kStringAxacussan,kStringDefaultDescription,INSTRUMENTS,TALK,5,5,0);
_objectState[6] = Object(_id, kStringImage,kStringGenericDescription5,NULLOBJECT,NULLTYPE,4,4,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1459,11 +1409,11 @@ public:
_shown[15] = false;
_shown[16] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
_objectState[1] = Object(_id, "Computer",Object::defaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, "Geld","Es sind 500 Xa.",TICKETS,TAKE,255,255,0);
_objectState[3] = Object(_id, "Schließfach","Es hat ein elektronisches Zahlenschlo\341.",LOCKER,OPENABLE|CLOSED,5,5,0);
_objectState[4] = Object(_id, "Brief",Object::defaultDescription,LETTER,UNNECESSARY,3,3,0);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
_objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, kStringMoney,kStringMoneyDescription1,TICKETS,TAKE,255,255,0);
_objectState[3] = Object(_id, kStringLocker,kStringLockerDescription,LOCKER,OPENABLE|CLOSED,5,5,0);
_objectState[4] = Object(_id, kStringLetter,kStringDefaultDescription,LETTER,UNNECESSARY,3,3,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1494,11 +1444,11 @@ public:
_shown[15] = false;
_shown[16] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
_objectState[1] = Object(_id, "Computer",Object::defaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, "W\201rfel","Sonderbar!",NULLOBJECT,NULLTYPE,0,0,0);
_objectState[3] = Object(_id, "Bild","Affenstark!",NULLOBJECT,NULLTYPE,1,1,0);
_objectState[4] = Object(_id, "Komisches Ding","Wundersam!",NULLOBJECT,UNNECESSARY,2,2,0);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,9,BCORRIDOR,9);
_objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, kStringCube,kStringGenericDescription6,NULLOBJECT,NULLTYPE,0,0,0);
_objectState[3] = Object(_id, kStringImage,kStringGenericDescription7,NULLOBJECT,NULLTYPE,1,1,0);
_objectState[4] = Object(_id, kStringStrangeThing,kStringGenericDescription8,NULLOBJECT,UNNECESSARY,2,2,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1516,12 +1466,12 @@ public:
_shown[2] = false;
_shown[3] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
_objectState[1] = Object(_id, "Computer",Object::defaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, "Bild","Es ist ein Axacussanerkopf auf dem Bild.",NULLOBJECT,UNNECESSARY,1,1,0);
_objectState[3] = Object(_id, "Bild","Es ist ein Axacussanerkopf auf dem Bild.",PAINTING,UNNECESSARY,2,2,0);
_objectState[4] = Object(_id, "Pflanze",Object::defaultDescription,NULLOBJECT,UNNECESSARY,3,3,0);
_objectState[5] = Object(_id, "",Object::defaultDescription,MONEY,TAKE|COMBINABLE,255,255,0);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
_objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, kStringImage,kStringImageDescription2,NULLOBJECT,UNNECESSARY,1,1,0);
_objectState[3] = Object(_id, kStringImage,kStringImageDescription2,PAINTING,UNNECESSARY,2,2,0);
_objectState[4] = Object(_id, kStringPlant,kStringDefaultDescription,NULLOBJECT,UNNECESSARY,3,3,0);
_objectState[5] = Object(_id, kNoString,kStringDefaultDescription,MONEY,TAKE|COMBINABLE,255,255,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1539,10 +1489,10 @@ public:
_shown[2] = true;
_shown[3] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
_objectState[1] = Object(_id, "Computer",Object::defaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, "Figur","Stark!",NULLOBJECT,UNNECESSARY,6,6,0);
_objectState[3] = Object(_id, "Pflanze","Sie ist den Pflanzen auf der Erde sehr ähnlich.",NULLOBJECT,UNNECESSARY,5,5,0);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,0,0,3,BCORRIDOR,5);
_objectState[1] = Object(_id, kStringComputer,kStringDefaultDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, kStringStatue,kStringStatueDescription,NULLOBJECT,UNNECESSARY,6,6,0);
_objectState[3] = Object(_id, kStringPlant,kStringPlantDescription,NULLOBJECT,UNNECESSARY,5,5,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1574,10 +1524,10 @@ public:
_shown[16] = false;
_shown[17] = true;
_objectState[0] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,17,GUARD3,9);
_objectState[1] = Object(_id, "Computer","Er funktioniert nicht.",COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, "Graffiti","Seltsamer B\201roschmuck!",NULLOBJECT,NULLTYPE,7,7,0);
_objectState[3] = Object(_id, "Geld","Es sind 350 Xa.",TICKETS,TAKE,8,8,0);
_objectState[0] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|OPENED,6,6,17,GUARD3,9);
_objectState[1] = Object(_id, kStringComputer,kStringComputerDescription,COMPUTER,COMBINABLE,4,4,0);
_objectState[2] = Object(_id, kStringGraffiti,kStringGraffitiDescription,NULLOBJECT,NULLTYPE,7,7,0);
_objectState[3] = Object(_id, kStringMoney,kStringMoneyDescription2,TICKETS,TAKE,8,8,0);
}
virtual void onEntrance();
@ -1593,10 +1543,10 @@ public:
_id = ELEVATOR;
_shown[0] = true;
_objectState[0] = Object(_id, "Knopf",Object::defaultDescription,BUTTON1,PRESS,0,0,0);
_objectState[1] = Object(_id, "Knopf",Object::defaultDescription,BUTTON2,PRESS,1,1,0);
_objectState[2] = Object(_id, "Ausgang",Object::defaultDescription,DOOR,EXIT,255,255,0,NULLROOM,22);
_objectState[3] = Object(_id, "Dschungel","Lauter B\204ume.",JUNGLE,NULLTYPE,255,255,0,STATION,2);
_objectState[0] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON1,PRESS,0,0,0);
_objectState[1] = Object(_id, kStringButton,kStringDefaultDescription,BUTTON2,PRESS,1,1,0);
_objectState[2] = Object(_id, kStringExit,kStringDefaultDescription,DOOR,EXIT,255,255,0,NULLROOM,22);
_objectState[3] = Object(_id, kStringJungle,kStringJungleDescription,JUNGLE,NULLTYPE,255,255,0,STATION,2);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1610,8 +1560,8 @@ public:
_fileNumber = 5;
_id = STATION;
_shown[0] = true;
_objectState[0] = Object(_id, "Schild",Object::defaultDescription,STATION_SIGN,NULLTYPE,0,0,0);
_objectState[1] = Object(_id, "T\201r",Object::defaultDescription,DOOR,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,7);
_objectState[0] = Object(_id, kStringSign,kStringDefaultDescription,STATION_SIGN,NULLTYPE,0,0,0);
_objectState[1] = Object(_id, kStringDoor,kStringDefaultDescription,DOOR,EXIT|OPENABLE|CLOSED,1,1,0,NULLROOM,7);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1627,8 +1577,8 @@ public:
_shown[0] = true;
_shown[1] = true;
_objectState[0] = Object(_id, "Ausgang",Object::defaultDescription,NULLOBJECT,EXIT,255,255,0,STATION,22);
_objectState[1] = Object(_id, "Schlitz",Object::defaultDescription,STATION_SLOT,COMBINABLE,0,0,0);
_objectState[0] = Object(_id, kStringExit,kStringDefaultDescription,NULLOBJECT,EXIT,255,255,0,STATION,22);
_objectState[1] = Object(_id, kStringSlot,kStringDefaultDescription,STATION_SLOT,COMBINABLE,0,0,0);
}
virtual bool interact(Action verb, Object &obj1, Object &obj2);
@ -1636,29 +1586,7 @@ public:
class Outro : public Room {
public:
Outro(SupernovaEngine *vm, GameManager *gm) {
_vm = vm;
_gm = gm;
_fileNumber = -1;
_id = OUTRO;
_shown[0] = false;
outroText = "^ E#N#D#E ...########"
"# ... des ersten Teils!########"
"#########"
"^Aber:#"
"Das Abenteuer geht weiter, ...##"
"... wenn Sie sich für 30,- DM registrieren lassen!##"
"(Falls Sie das nicht schon längst getan haben.)##"
"In^ Teil 2 - Der Doppelgänger^ erwarten Sie:##"
"Knifflige Puzzles,##"
"noch mehr Grafik und Sound,##"
"ein perfekt geplanter Museumseinbruch,##"
"das Virtual-Reality-Spiel \"Indiana Joe\"##"
"und vieles mehr!##"
"°";
}
Outro(SupernovaEngine *vm, GameManager *gm);
virtual void onEntrance();
virtual void animation();

View File

@ -857,7 +857,7 @@ void GameManager::drawInventory() {
_guiInventory[i].width(),
_guiInventory[i].height(),
_guiInventory[i]._bgColor);
_vm->renderText(_inventory.get(i + _inventoryScroll)->_name.c_str(),
_vm->renderText(_inventory.get(i + _inventoryScroll)->_name,
_guiInventory[i]._textPosition.x,
_guiInventory[i]._textPosition.y,
_guiInventory[i]._textColor);
@ -1178,16 +1178,16 @@ void GameManager::drawStatus() {
_vm->renderText(_vm->getGameString(guiStatusCommands[index]), 1, 141, kColorDarkGreen);
if (Object::isNullObject(_inputObject[0])) {
_vm->renderText(_currentInputObject->_name.c_str());
_vm->renderText(_currentInputObject->_name);
} else {
_vm->renderText(_inputObject[0]->_name.c_str());
_vm->renderText(_inputObject[0]->_name);
if (_inputVerb == ACTION_GIVE) {
_vm->renderText(" an ");
} else if (_inputVerb == ACTION_USE) {
_vm->renderText(" mit ");
}
_vm->renderText(_currentInputObject->_name.c_str());
_vm->renderText(_currentInputObject->_name);
}
}
@ -1321,8 +1321,8 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
roomBrightness();
_vm->renderMessage("Hmm, irgendwie komme|ich mir verarscht vor.");
} else if ((verb == ACTION_LOOK) && (obj1._id == KEYCARD2)) {
_vm->renderMessage(obj1._description.c_str());
obj1._description = "Es ist die Keycard des Commanders.";
_vm->renderMessage(obj1._description);
obj1._description = kStringKeycard2Description2;
} else if ((verb == ACTION_LOOK) && (obj1._id == WATCH)) {
_vm->renderMessage(Common::String::format(
"Es ist eine Uhr mit extra|lautem Wecker. "
@ -1392,11 +1392,11 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
r = _rooms[CABIN_L3];
if (!r->getObject(8)->hasProperty(CARRIED)) {
if (r->isSectionVisible(26))
_vm->renderMessage(Object::takeMessage);
_vm->renderMessage(kStringTakeMessage);
else
return false;
} else {
r->getObject(8)->_name = "Leitung mit L\201sterklemme";
r->getObject(8)->_name = kStringWireAndClip;
r = _rooms[HOLD];
_inventory.remove(*r->getObject(2));
_state._terminalStripConnected = true;
@ -1406,7 +1406,7 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
} else if ((verb == ACTION_USE) && Object::combine(obj1, obj2, TERMINALSTRIP, SPOOL)) {
r = _rooms[CABIN_L2];
takeObject(*r->getObject(9));
r->getObject(9)->_name = "Kabelrolle mit L\201sterklemme";
r->getObject(9)->_name = kSringSpoolAndClip;
r = _rooms[HOLD];
_inventory.remove(*r->getObject(2));
_state._terminalStripConnected = true;
@ -1420,12 +1420,12 @@ bool GameManager::genericInteract(Action verb, Object &obj1, Object &obj2) {
return false;
} else {
if (!r->getObject(8)->hasProperty(CARRIED)) {
_vm->renderMessage(Object::takeMessage);
_vm->renderMessage(kStringTakeMessage);
} else {
r = _rooms[CABIN_L2];
takeObject(*r->getObject(9));
r = _rooms[CABIN_L3];
r->getObject(8)->_name = "langes Kabel mit Stecker";
r->getObject(8)->_name = kStringGeneratorWire;
r = _rooms[CABIN_L2];
_inventory.remove(*r->getObject(9));
_state._cableConnected = true;
@ -1537,7 +1537,7 @@ void GameManager::handleInput() {
if (!validCommand) {
switch (_inputVerb) {
case ACTION_LOOK:
_vm->renderMessage(_inputObject[0]->_description.c_str());
_vm->renderMessage(_inputObject[0]->_description);
break;
case ACTION_WALK:

View File

@ -70,8 +70,6 @@ const AudioInfo audioInfo[kAudioNumSamples] = {
{54, 31040, -1}
};
const char *const Object::defaultDescription = "Es ist nichts Besonderes daran.";
const char *const Object::takeMessage = "Das mußt du erst nehmen.";
const Object Object::nullObject = Object();
ObjectType operator|(ObjectType a, ObjectType b) {
@ -906,7 +904,8 @@ bool SupernovaEngine::loadGame(int slot) {
}
byte saveVersion = savefile->readByte();
if (saveVersion > SAVEGAME_VERSION) {
// Save version 1 was used during development and is no longer supported
if (saveVersion > SAVEGAME_VERSION || saveVersion == 1) {
warning("Save game version %i not supported", saveVersion);
delete savefile;
return Common::kUnknownError;

View File

@ -43,7 +43,7 @@
namespace Supernova {
#define SAVEGAME_HEADER MKTAG('M','S','N','1')
#define SAVEGAME_VERSION 1
#define SAVEGAME_VERSION 2
#define SUPERNOVA_DAT "supernova.dat"
#define SUPERNOVA_DAT_VERSION 1
@ -166,10 +166,16 @@ public:
if (!text.empty())
renderMessage(text.c_str(), position);
}
void renderText(StringID stringId, int x, int y, byte color) {
renderText(getGameString(stringId), x, y, color);
}
void renderText(const Common::String &text, int x, int y, byte color) {
if (!text.empty())
renderText(text.c_str(), x, y, color);
}
void renderText(StringID stringId) {
renderText(getGameString(stringId));
}
void renderText(const Common::String &text) {
if (!text.empty())
renderText(text.c_str());