diff options
author | Thierry Crozat | 2017-10-01 21:36:15 +0100 |
---|---|---|
committer | Thierry Crozat | 2018-01-23 02:15:33 +0000 |
commit | 7722fe99cde7ad38a79e8a95d1bf342cd7075a0b (patch) | |
tree | 19d2db9c74fc63fcbdbe87afdfa23f9a3c225044 | |
parent | be08dd3c57f8017346abae1659395d7d395d1440 (diff) | |
download | scummvm-rg350-7722fe99cde7ad38a79e8a95d1bf342cd7075a0b.tar.gz scummvm-rg350-7722fe99cde7ad38a79e8a95d1bf342cd7075a0b.tar.bz2 scummvm-rg350-7722fe99cde7ad38a79e8a95d1bf342cd7075a0b.zip |
SUPERNOVA: Move object name and description strings to engine data file
-rw-r--r-- | devtools/create_supernova/gametext.h | 465 | ||||
-rw-r--r-- | engines/supernova/msn_def.h | 93 | ||||
-rw-r--r-- | engines/supernova/rooms.cpp | 144 | ||||
-rw-r--r-- | engines/supernova/rooms.h | 692 | ||||
-rw-r--r-- | engines/supernova/state.cpp | 24 | ||||
-rw-r--r-- | engines/supernova/supernova.cpp | 5 | ||||
-rw-r--r-- | engines/supernova/supernova.h | 8 |
7 files changed, 822 insertions, 609 deletions
diff --git a/devtools/create_supernova/gametext.h b/devtools/create_supernova/gametext.h index 5183dfd034..83867d266f 100644 --- a/devtools/create_supernova/gametext.h +++ b/devtools/create_supernova/gametext.h @@ -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 "", // "", // "", // "", // - "", // - // 135 + // 285 "", // "", // "", // "", // "", // - // 140 + // 290 "", // "", // "", // "", // "", // - // 145 + // 295 "", // "", // "", // "", // "", // - // 150 + // 300 "", // "", // "", // "", // "", // - // 155 + // 305 "", // "", // "", // "", // "", // - // 160 + // 310 "", // "", // "", // "", // "", // - // 165 + // 315 "", // "", // "", // "", // "", // - // 170 + // 320 "", // "", // "", // "", // "", // - // 175 + // 325 "", // "", // "", // "", // "", // - // 180 + // 330 "", // "", // "", // "", // "", // - // 185 + // 335 "", // "", // "", // "", // "", // + NULL }; diff --git a/engines/supernova/msn_def.h b/engines/supernova/msn_def.h index 403ba147f8..84c08647cd 100644 --- a/engines/supernova/msn_def.h +++ b/engines/supernova/msn_def.h @@ -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; diff --git a/engines/supernova/rooms.cpp b/engines/supernova/rooms.cpp index f4a3084fb6..b326840b43 100644 --- a/engines/supernova/rooms.cpp +++ b/engines/supernova/rooms.cpp @@ -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() { } diff --git a/engines/supernova/rooms.h b/engines/supernova/rooms.h index 0ad7468b55..9b8b4e291d 100644 --- a/engines/supernova/rooms.h +++ b/engines/supernova/rooms.h @@ -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(); diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp index cbb740f1fa..6fa20aa790 100644 --- a/engines/supernova/state.cpp +++ b/engines/supernova/state.cpp @@ -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: diff --git a/engines/supernova/supernova.cpp b/engines/supernova/supernova.cpp index 67c6fdd96c..412470356a 100644 --- a/engines/supernova/supernova.cpp +++ b/engines/supernova/supernova.cpp @@ -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; diff --git a/engines/supernova/supernova.h b/engines/supernova/supernova.h index cc6cfbb479..756c846301 100644 --- a/engines/supernova/supernova.h +++ b/engines/supernova/supernova.h @@ -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()); |