From 8970909318c158b18eb5612f26db1d4db941160f Mon Sep 17 00:00:00 2001 From: Matthew Stewart Date: Fri, 27 Jul 2018 20:32:29 -0400 Subject: STARTREK: Reorganize includes in room.h This should avoid the costly rebuild of everything in the 'rooms/' folder, at least sometimes... --- engines/startrek/awaymission.h | 2 +- engines/startrek/room.cpp | 6 +- engines/startrek/room.h | 8 +- engines/startrek/rooms/demon0.cpp | 52 ++--- engines/startrek/rooms/demon1.cpp | 146 +++++++------- engines/startrek/rooms/demon2.cpp | 16 +- engines/startrek/rooms/demon3.cpp | 132 ++++++------ engines/startrek/rooms/demon4.cpp | 97 ++++----- engines/startrek/rooms/demon5.cpp | 44 ++-- engines/startrek/rooms/demon6.cpp | 61 +++--- engines/startrek/rooms/feather0.cpp | 8 +- engines/startrek/rooms/feather1.cpp | 98 ++++----- engines/startrek/rooms/feather3.cpp | 106 +++++----- engines/startrek/rooms/feather5.cpp | 58 +++--- engines/startrek/rooms/feather6.cpp | 26 +-- engines/startrek/rooms/feather7.cpp | 18 +- engines/startrek/rooms/love0.cpp | 44 ++-- engines/startrek/rooms/love1.cpp | 122 ++++++------ engines/startrek/rooms/love2.cpp | 174 ++++++++-------- engines/startrek/rooms/love3.cpp | 118 +++++------ engines/startrek/rooms/love4.cpp | 54 ++--- engines/startrek/rooms/love5.cpp | 94 ++++----- engines/startrek/rooms/lovea.cpp | 66 +++--- engines/startrek/rooms/mudd0.cpp | 70 +++---- engines/startrek/rooms/mudd1.cpp | 62 +++--- engines/startrek/rooms/mudd2.cpp | 128 ++++++------ engines/startrek/rooms/mudd3.cpp | 158 +++++++-------- engines/startrek/rooms/mudd4.cpp | 168 ++++++++-------- engines/startrek/rooms/mudd5.cpp | 54 ++--- engines/startrek/rooms/mudda.cpp | 36 ++-- engines/startrek/rooms/sins0.cpp | 30 +-- engines/startrek/rooms/sins1.cpp | 54 ++--- engines/startrek/rooms/trial0.cpp | 22 +- engines/startrek/rooms/trial1.cpp | 150 +++++++------- engines/startrek/rooms/trial2.cpp | 74 +++---- engines/startrek/rooms/trial3.cpp | 92 ++++----- engines/startrek/rooms/trial4.cpp | 4 +- engines/startrek/rooms/trial5.cpp | 60 +++--- engines/startrek/rooms/tug0.cpp | 138 ++++++------- engines/startrek/rooms/tug1.cpp | 68 +++---- engines/startrek/rooms/tug2.cpp | 386 ++++++++++++++++++------------------ engines/startrek/rooms/tug3.cpp | 220 ++++++++++---------- engines/startrek/sound.h | 61 +----- engines/startrek/soundeffects.h | 87 ++++++++ 44 files changed, 1856 insertions(+), 1816 deletions(-) create mode 100644 engines/startrek/soundeffects.h diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h index e1ecc1ff6e..ad3206f255 100644 --- a/engines/startrek/awaymission.h +++ b/engines/startrek/awaymission.h @@ -180,7 +180,7 @@ struct AwayMission { // 1: Decided to shoot them // 2: Talked, and they surrendered immediately - // 3: They deorbited the ship (and perhps surrendered after) + // 3: They deorbited the ship (and perhaps surrendered after) byte bridgeWinMethod; // 0x5e bool talkedToBrigCrewman; // 0x5f diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp index a8a4b490f4..59ed8fb115 100644 --- a/engines/startrek/room.cpp +++ b/engines/startrek/room.cpp @@ -45,7 +45,7 @@ namespace StarTrek { -Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm) { +Room::Room(StarTrekEngine *vm, const Common::String &name) : _vm(vm), _awayMission(&vm->_awayMission) { SharedPtr rdfFile = _vm->loadFile(name + ".RDF"); int size = rdfFile->size(); @@ -502,6 +502,10 @@ void Room::stopAllVocSounds() { _vm->_sound->stopAllVocSounds(); } +Common::String Room::getCrewmanAnimFilename(int object, const Common::String &str) { + return _vm->getCrewmanAnimFilename(object, str); +} + void Room::spockScan(int direction, TextRef text, bool changeDirection) { const char *dirs = "nsew"; Common::String anim = "sscan_"; diff --git a/engines/startrek/room.h b/engines/startrek/room.h index dff0bcaad1..53c0b07f04 100644 --- a/engines/startrek/room.h +++ b/engines/startrek/room.h @@ -27,8 +27,11 @@ #include "common/ptr.h" #include "common/str.h" +#include "startrek/action.h" +#include "startrek/awaymission.h" #include "startrek/fixedint.h" -#include "startrek/startrek.h" +#include "startrek/object.h" +#include "startrek/soundeffects.h" #include "startrek/text.h" using Common::SharedPtr; @@ -141,6 +144,7 @@ public: private: StarTrekEngine *_vm; + AwayMission *_awayMission; const RoomAction *_roomActionList; int _numRoomActions; @@ -252,6 +256,8 @@ private: // Helper functions for repetitive stuff. + Common::String getCrewmanAnimFilename(int object, const Common::String &str); + /** * If "changeDirection" is true, they remain facing that direction even after their * animation is finished. The game is inconsistent about doing this. diff --git a/engines/startrek/rooms/demon0.cpp b/engines/startrek/rooms/demon0.cpp index 189509a3cf..6dd3315c62 100644 --- a/engines/startrek/rooms/demon0.cpp +++ b/engines/startrek/rooms/demon0.cpp @@ -31,42 +31,42 @@ void Room::demon0Tick1() { } void Room::demon0Tick2() { - if (_vm->_awayMission.demon.talkedToPrelate) + if (_awayMission->demon.talkedToPrelate) return; loadActorAnim(8, "prel", 120, 190, 0); } void Room::demon0Tick60() { - if (_vm->_awayMission.demon.talkedToPrelate) + if (_awayMission->demon.talkedToPrelate) return; loadActorAnim2(8, "prelclap", 120, 190, 0); } void Room::demon0Tick100() { - if (_vm->_awayMission.demon.talkedToPrelate || _vm->_awayMission.demon.prelateWelcomedCrew) + if (_awayMission->demon.talkedToPrelate || _awayMission->demon.prelateWelcomedCrew) return; - _vm->_awayMission.demon.prelateWelcomedCrew = true; + _awayMission->demon.prelateWelcomedCrew = true; showText(TX_SPEAKER_ANGIVEN, TX_DEM0_036); } void Room::demon0Tick140() { - if (_vm->_awayMission.demon.mccoyMentionedFlora) + if (_awayMission->demon.mccoyMentionedFlora) return; showText(TX_SPEAKER_MCCOY, TX_DEM0_016); - _vm->_awayMission.demon.mccoyMentionedFlora = true; + _awayMission->demon.mccoyMentionedFlora = true; } void Room::demon0TouchedWarp0() { - _vm->_awayMission.demon.enteredFrom = 1; - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->demon.enteredFrom = 1; + _awayMission->rdfStillDoDefaultAction = true; } void Room::demon0WalkToBottomDoor() { - _vm->_awayMission.disableInput = 1; + _awayMission->disableInput = 1; _roomVar.demon.movingToBottomDoor = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 243, 158, 1); } @@ -84,9 +84,9 @@ void Room::demon0ReachedBottomDoor() { } void Room::demon0WalkToTopDoor() { - _vm->_awayMission.disableInput = 1; + _awayMission->disableInput = 1; _roomVar.demon.movingToTopDoor = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 157, 134, 2); } @@ -154,11 +154,11 @@ void Room::demon0TalkToPrelate() { TX_BLANK }; - if (_vm->_awayMission.demon.talkedToPrelate) + if (_awayMission->demon.talkedToPrelate) return; - _vm->_awayMission.demon.missionScore += 3; - _vm->_awayMission.demon.talkedToPrelate = true; + _awayMission->demon.missionScore += 3; + _awayMission->demon.talkedToPrelate = true; const int *response = nullptr; @@ -187,7 +187,7 @@ void Room::demon0TalkToPrelate() { showText(thirdResponse); - if (_vm->_awayMission.demon.wasRudeToPrelate) + if (_awayMission->demon.wasRudeToPrelate) showText(badConclusion); else showText(goodConclusion); @@ -209,7 +209,7 @@ void Room::demon0UsePhaserOnSign() { void Room::demon0UsePhaserOnShelter() { showText(TX_SPEAKER_MCCOY, TX_DEM0_015); showText(TX_SPEAKER_SPOCK, TX_DEM0_013); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_EVERTS, TX_DEM0_040); } @@ -274,15 +274,15 @@ void Room::demon0TalkToRedshirt() { } void Room::demon0TalkToMcCoy() { - if (_vm->_awayMission.demon.talkedToPrelate) { + if (_awayMission->demon.talkedToPrelate) { showText(TX_SPEAKER_KIRK, TX_DEM0_011); showText(TX_SPEAKER_MCCOY, TX_DEM0_023); showText(TX_SPEAKER_SPOCK, TX_DEM0_029); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_EVERTS, TX_DEM0_041); } else { showText(TX_SPEAKER_MCCOY, TX_DEM0_019); - if (!_vm->_awayMission.demon.askedPrelateAboutSightings) { + if (!_awayMission->demon.askedPrelateAboutSightings) { demon0AskPrelateAboutSightings(); } } @@ -291,7 +291,7 @@ void Room::demon0TalkToMcCoy() { void Room::demon0TalkToSpock() { showText(TX_SPEAKER_SPOCK, TX_DEM0_014); - if (!_vm->_awayMission.demon.talkedToPrelate && !_vm->_awayMission.demon.askedPrelateAboutSightings) + if (!_awayMission->demon.talkedToPrelate && !_awayMission->demon.askedPrelateAboutSightings) demon0AskPrelateAboutSightings(); } @@ -299,7 +299,7 @@ void Room::demon0AskPrelateAboutSightings() { showText(TX_SPEAKER_KIRK, TX_DEM0_001); showText(TX_SPEAKER_ANGIVEN, TX_DEM0_030); - _vm->_awayMission.demon.askedPrelateAboutSightings = true; + _awayMission->demon.askedPrelateAboutSightings = true; } void Room::demon0UseSTricorderAnywhere() { @@ -318,7 +318,7 @@ void Room::demon0UseMTricorderOnPrelate() { loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.talkedToPrelate) + if (_awayMission->demon.talkedToPrelate) showText(TX_SPEAKER_MCCOY, TX_DEM0_018); else showText(TX_SPEAKER_MCCOY, TX_DEM0_022); @@ -326,11 +326,11 @@ void Room::demon0UseMTricorderOnPrelate() { // Helper functions void Room::demon0BadResponse() { - if (_vm->_awayMission.demon.wasRudeToPrelate) + if (_awayMission->demon.wasRudeToPrelate) return; - _vm->_awayMission.demon.missionScore -= 3; - _vm->_awayMission.demon.wasRudeToPrelate = true; + _awayMission->demon.missionScore -= 3; + _awayMission->demon.wasRudeToPrelate = true; showText(TX_SPEAKER_ANGIVEN, TX_DEM0_033); } diff --git a/engines/startrek/rooms/demon1.cpp b/engines/startrek/rooms/demon1.cpp index c1519b79a2..92882abf4b 100644 --- a/engines/startrek/rooms/demon1.cpp +++ b/engines/startrek/rooms/demon1.cpp @@ -29,27 +29,27 @@ namespace StarTrek { void Room::demon1Tick1() { playVoc("DEM1LOOP"); - if (!_vm->_awayMission.demon.beatKlingons) + if (!_awayMission->demon.beatKlingons) playMidiMusicTracks(1, -1); - if (_vm->_awayMission.demon.enteredFrom == 1) { // Entered from south - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; - } else if (_vm->_awayMission.demon.enteredFrom == 2) { // Entered from north? - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; + if (_awayMission->demon.enteredFrom == 1) { // Entered from south + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; + } else if (_awayMission->demon.enteredFrom == 2) { // Entered from north? + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; } - if (!_vm->_awayMission.demon.beatKlingons) { - _vm->_awayMission.disableWalking = true; - _vm->_awayMission.timers[2] = 50; + if (!_awayMission->demon.beatKlingons) { + _awayMission->disableWalking = true; + _awayMission->timers[2] = 50; } else { loadActorAnim(8, "klg1d2", 0x120, 0x82, 0); - if (!_vm->_awayMission.demon.tookKlingonHand) + if (!_awayMission->demon.tookKlingonHand) loadActorAnim(13, "klghnd", 0x10b, 0x8e, 0); loadActorAnim(9, "klg2d2", 0xaa, 0x7c, 0); loadActorAnim(10, "klg3d2", 0, 0, 0); @@ -68,26 +68,26 @@ void Room::demon1WalkToCave() { } void Room::demon1TouchedTopWarp() { - if (_vm->_awayMission.demon.warpsDisabled) + if (_awayMission->demon.warpsDisabled) return; loadRoomIndex(2, 1); } void Room::demon1TouchedBottomWarp() { - if (_vm->_awayMission.demon.warpsDisabled) + if (_awayMission->demon.warpsDisabled) return; loadRoomIndex(0, 0); } void Room::demon1Timer2Expired() { - if (_vm->_awayMission.demon.beatKlingons) + if (_awayMission->demon.beatKlingons) return; - _vm->_awayMission.demon.field37 = 1; - _vm->_awayMission.demon.beatKlingons = true; - _vm->_awayMission.demon.warpsDisabled = true; - _vm->_awayMission.timers[0] = 5; - _vm->_awayMission.timers[3] = 2; - _vm->_awayMission.timers[1] = 100; + _awayMission->demon.field37 = 1; + _awayMission->demon.beatKlingons = true; + _awayMission->demon.warpsDisabled = true; + _awayMission->timers[0] = 5; + _awayMission->timers[3] = 2; + _awayMission->timers[1] = 100; loadActorAnim(8, "klg1u", 0x120, 0x82, 0); } @@ -189,11 +189,11 @@ void Room::demon1KlingonFinishedAimingWeapon() { crewman = OBJECT_KIRK; } - _vm->_awayMission.crewDirectionsAfterWalk[crewman] = DIR_N; - _vm->_awayMission.crewGetupTimers[crewman] = 650; - _vm->_awayMission.crewDownBitset |= (1 << crewman); + _awayMission->crewDirectionsAfterWalk[crewman] = DIR_N; + _awayMission->crewGetupTimers[crewman] = 650; + _awayMission->crewDownBitset |= (1 << crewman); - _vm->_awayMission.timers[1] = 100; + _awayMission->timers[1] = 100; } void Room::demon1KirkShot() { @@ -209,7 +209,7 @@ void Room::demon1UsePhaserOnAnything() { void Room::demon1UsePhaserOnKlingon1() { if (_roomVar.demon.klingonShot[0]) return; - _vm->_awayMission.disableInput = 1; + _awayMission->disableInput = 1; _roomVar.demon.klingonShot[0] = true; if (_roomVar.demon.kirkShooting) { @@ -223,11 +223,11 @@ void Room::demon1UsePhaserOnKlingon1() { void Room::demon1ShootKlingon1() { _roomVar.demon.numKlingonsKilled++; if (_roomVar.demon.numKlingonsKilled == 3) { - _vm->_awayMission.timers[1] = 0; - _vm->_awayMission.timers[5] = 180; - _vm->_awayMission.timers[6] = 1; - _vm->_awayMission.demon.warpsDisabled = false; - _vm->_awayMission.disableWalking = false; + _awayMission->timers[1] = 0; + _awayMission->timers[5] = 180; + _awayMission->timers[6] = 1; + _awayMission->demon.warpsDisabled = false; + _awayMission->disableWalking = false; } loadActorAnim(12, "s0ks1", 0, 0, 0); playSoundEffectIndex(0x06); @@ -237,11 +237,11 @@ void Room::demon1ShootKlingon1() { void Room::demon1KlingonDropsHand() { loadActorAnim(13, "klghnd", 0x10b, 0x8e, 0); - _vm->_awayMission.disableInput = 0; - _vm->_awayMission.timers[1] = 0; + _awayMission->disableInput = 0; + _awayMission->timers[1] = 0; showText(TX_DEM1N020); - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) + if (_awayMission->crewDownBitset & (1 << OBJECT_REDSHIRT)) return; showText(TX_SPEAKER_EVERTS, TX_DEM1_025); @@ -251,13 +251,13 @@ void Room::demon1KlingonDropsHand() { showText(TX_SPEAKER_KLINGON, TX_DEM1_F23); - _vm->_awayMission.timers[1] = 1; + _awayMission->timers[1] = 1; } void Room::demon1UsePhaserOnKlingon2() { if (_roomVar.demon.klingonShot[1]) return; - _vm->_awayMission.disableInput = 1; + _awayMission->disableInput = 1; _roomVar.demon.klingonShot[1] = true; if (_roomVar.demon.kirkShooting) { @@ -271,22 +271,22 @@ void Room::demon1UsePhaserOnKlingon2() { void Room::demon1ShootKlingon2() { _roomVar.demon.numKlingonsKilled++; if (_roomVar.demon.numKlingonsKilled == 3) { - _vm->_awayMission.timers[1] = 0; - _vm->_awayMission.timers[5] = 180; - _vm->_awayMission.timers[6] = 1; - _vm->_awayMission.demon.warpsDisabled = false; - _vm->_awayMission.disableWalking = false; + _awayMission->timers[1] = 0; + _awayMission->timers[5] = 180; + _awayMission->timers[6] = 1; + _awayMission->demon.warpsDisabled = false; + _awayMission->disableWalking = false; } loadActorAnim(12, "s0ks2", 0, 0, 0); playSoundEffectIndex(0x06); loadActorAnim2(9, "klg2d", 0xaa, 0x7c, 0); - _vm->_awayMission.disableInput = 0; + _awayMission->disableInput = 0; } void Room::demon1UsePhaserOnKlingon3() { if (_roomVar.demon.klingonShot[2]) return; - _vm->_awayMission.disableInput = 1; + _awayMission->disableInput = 1; _roomVar.demon.klingonShot[2] = true; if (_roomVar.demon.kirkShooting) { @@ -300,28 +300,28 @@ void Room::demon1UsePhaserOnKlingon3() { void Room::demon1ShootKlingon3() { _roomVar.demon.numKlingonsKilled++; if (_roomVar.demon.numKlingonsKilled == 3) { - _vm->_awayMission.timers[1] = 0; - _vm->_awayMission.timers[5] = 180; - _vm->_awayMission.timers[6] = 1; - _vm->_awayMission.demon.warpsDisabled = false; - _vm->_awayMission.disableWalking = false; + _awayMission->timers[1] = 0; + _awayMission->timers[5] = 180; + _awayMission->timers[6] = 1; + _awayMission->demon.warpsDisabled = false; + _awayMission->disableWalking = false; } loadActorAnim(12, "s0ks3", 0, 0, 0); playSoundEffectIndex(0x06); loadActorAnim2(10, "klg3d", 0, 0, 0); - _vm->_awayMission.disableInput = 0; + _awayMission->disableInput = 0; } // Timer 6 expired void Room::demon1AllKlingonsDead() { - _vm->_awayMission.crewGetupTimers[OBJECT_KIRK] = 45; - _vm->_awayMission.crewGetupTimers[OBJECT_SPOCK] = 45; - _vm->_awayMission.crewGetupTimers[OBJECT_MCCOY] = 45; - _vm->_awayMission.crewGetupTimers[OBJECT_REDSHIRT] = 45; + _awayMission->crewGetupTimers[OBJECT_KIRK] = 45; + _awayMission->crewGetupTimers[OBJECT_SPOCK] = 45; + _awayMission->crewGetupTimers[OBJECT_MCCOY] = 45; + _awayMission->crewGetupTimers[OBJECT_REDSHIRT] = 45; } void Room::demon1Timer5Expired() { - if (_vm->_awayMission.crewDownBitset != 0) + if (_awayMission->crewDownBitset != 0) return; showText(TX_SPEAKER_UHURA, TX_DEM1U077); @@ -377,7 +377,7 @@ void Room::demon1UseSTricorderOnKlingon1() { playSoundEffectIndex(0x04); - if (_roomVar.demon.numKlingonsKilled == 3 && !_vm->_awayMission.demon.tookKlingonHand && _rdfData[0xcf] != 1) { + if (_roomVar.demon.numKlingonsKilled == 3 && !_awayMission->demon.tookKlingonHand && _rdfData[0xcf] != 1) { showText(TX_SPEAKER_SPOCK, TX_DEM1_018); _rdfData[0xcf] = 1; } else { @@ -392,17 +392,17 @@ void Room::demon1UseSTricorderOnKlingon2Or3() { } void Room::demon1UseMTricorderOnKirk() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_KIRK)) demon1UseMTricorderOnCrewman(); } void Room::demon1UseMTricorderOnSpock() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_SPOCK)) demon1UseMTricorderOnCrewman(); } void Room::demon1UseMTricorderOnRedshirt() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) + if (_awayMission->crewDownBitset & (1 << OBJECT_REDSHIRT)) demon1UseMTricorderOnCrewman(); } @@ -424,18 +424,18 @@ void Room::demon1ReachedHand() { void Room::demon1PickedUpHand() { loadActorStandAnim(13); - _vm->_awayMission.demon.missionScore += 3; + _awayMission->demon.missionScore += 3; loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.timers[4] = 2; + _awayMission->timers[4] = 2; } // Timer 4 expired void Room::demon1FinishedGettingHand() { - if (_vm->_awayMission.demon.tookKlingonHand) + if (_awayMission->demon.tookKlingonHand) showText(TX_DEM1N005); else { - _vm->_awayMission.demon.tookKlingonHand = true; + _awayMission->demon.tookKlingonHand = true; giveItem(OBJECT_IHAND); showText(TX_DEM1N007); } @@ -481,42 +481,42 @@ void Room::demon1LookAnywhere() { } void Room::demon1LookAtKirk() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_KIRK)) showText(TX_DEM1N012); else showText(TX_DEM1N003); } void Room::demon1LookAtSpock() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_SPOCK)) showText(TX_DEM1N015); else showText(TX_DEM1N008); } void Room::demon1LookAtMcCoy() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_MCCOY)) + if (_awayMission->crewDownBitset & (1 << OBJECT_MCCOY)) showText(TX_DEM1N013); else showText(TX_DEM1N001); } void Room::demon1LookAtRedshirt() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) + if (_awayMission->crewDownBitset & (1 << OBJECT_REDSHIRT)) showText(TX_DEM1N014); else showText(TX_DEM1N002); } void Room::demon1TalkToKirk() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_KIRK)) demon1TalkToUnconsciousCrewman(); else if (_roomVar.demon.numKlingonsKilled == 3) showText(TX_SPEAKER_KIRK, TX_DEM1_001); } void Room::demon1TalkToSpock() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_SPOCK)) + if (_awayMission->crewDownBitset & (1 << OBJECT_SPOCK)) demon1TalkToUnconsciousCrewman(); else { showText(TX_SPEAKER_SPOCK, TX_DEM1_022); @@ -527,7 +527,7 @@ void Room::demon1TalkToSpock() { } void Room::demon1TalkToMcCoy() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_MCCOY)) + if (_awayMission->crewDownBitset & (1 << OBJECT_MCCOY)) demon1TalkToUnconsciousCrewman(); else { showText(TX_SPEAKER_MCCOY, TX_DEM1_015); @@ -536,7 +536,7 @@ void Room::demon1TalkToMcCoy() { } void Room::demon1TalkToRedshirt() { - if (_vm->_awayMission.crewDownBitset & (1 << OBJECT_REDSHIRT)) + if (_awayMission->crewDownBitset & (1 << OBJECT_REDSHIRT)) demon1TalkToUnconsciousCrewman(); else showText(TX_SPEAKER_EVERTS, TX_DEM1_026); diff --git a/engines/startrek/rooms/demon2.cpp b/engines/startrek/rooms/demon2.cpp index 4e8f8b248e..d31f417a44 100644 --- a/engines/startrek/rooms/demon2.cpp +++ b/engines/startrek/rooms/demon2.cpp @@ -37,8 +37,8 @@ void Room::demon2ReachedCave() { } void Room::demon2TouchedWarp1() { - _vm->_awayMission.demon.enteredFrom = 2; - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->demon.enteredFrom = 2; + _awayMission->rdfStillDoDefaultAction = true; } void Room::demon2LookAtCave() { @@ -141,18 +141,18 @@ void Room::demon2UseMTricorderOnBerries() { loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.curedChub) + if (_awayMission->demon.curedChub) showText(TX_SPEAKER_MCCOY, TX_DEM2_013); - else if (_vm->_awayMission.demon.madeHypoDytoxin) + else if (_awayMission->demon.madeHypoDytoxin) showText(TX_SPEAKER_MCCOY, TX_DEM2_009); - else if (_vm->_awayMission.demon.knowAboutHypoDytoxin) + else if (_awayMission->demon.knowAboutHypoDytoxin) showText(TX_SPEAKER_MCCOY, TX_DEM2_010); else showText(TX_SPEAKER_MCCOY, TX_DEM2_012); } void Room::demon2GetBerries() { - if (_vm->_awayMission.demon.gotBerries) + if (_awayMission->demon.gotBerries) showText(TX_SPEAKER_MCCOY, TX_DEM2_014); else walkCrewman(OBJECT_KIRK, 0xe8, 0x97, 1); @@ -166,8 +166,8 @@ void Room::demon2ReachedBerries() { void Room::demon2PickedUpBerries() { showText(TX_DEM2N013); giveItem(OBJECT_IBERRY); - _vm->_awayMission.demon.gotBerries = true; - _vm->_awayMission.demon.missionScore += 1; + _awayMission->demon.gotBerries = true; + _awayMission->demon.missionScore += 1; } } diff --git a/engines/startrek/rooms/demon3.cpp b/engines/startrek/rooms/demon3.cpp index f862838483..e30a5fc671 100644 --- a/engines/startrek/rooms/demon3.cpp +++ b/engines/startrek/rooms/demon3.cpp @@ -29,36 +29,36 @@ void Room::demon3Tick1() { loadActorAnim(8, "light", 0xab, 0x03, 0); _roomVar.demon.boulder1Shot = true; - if (!_vm->_awayMission.demon.boulder1Gone) { + if (!_awayMission->demon.boulder1Gone) { loadActorAnim(9, "bldr1", 0x26, 0, 0); _roomVar.demon.boulder1Shot = false; } - if (!_vm->_awayMission.demon.boulder2Gone) { + if (!_awayMission->demon.boulder2Gone) { loadActorAnim(10, "bldr2", 0x22, 0, 0); } - if (!_vm->_awayMission.demon.boulder3Gone) { + if (!_awayMission->demon.boulder3Gone) { loadActorAnim(11, "bldr3", 0x22, 0, 0); } - if (!_vm->_awayMission.demon.boulder4Gone) { + if (!_awayMission->demon.boulder4Gone) { loadActorAnim(12, "bldr4", 0x22, 0, 0); } - if (_vm->_awayMission.demon.doorOpened) { + if (_awayMission->demon.doorOpened) { loadActorAnim(14, "door2", 0x82, 0x0c, 0); } else { loadMapFile("demon3a"); } - if (!_vm->_awayMission.demon.healedMiner && _vm->_awayMission.demon.boulder4Gone) + if (!_awayMission->demon.healedMiner && _awayMission->demon.boulder4Gone) loadActorAnim(13, "miner", 0xda, 0x6c, 0); - if (_vm->_awayMission.redshirtDead && !_vm->_awayMission.demon.field45) + if (_awayMission->redshirtDead && !_awayMission->demon.field45) loadActorAnim(OBJECT_REDSHIRT, "deadre", 0x46, 0xa0, 0); - if (_vm->_awayMission.demon.field41 == 0) - _vm->_awayMission.demon.field41++; + if (_awayMission->demon.field41 == 0) + _awayMission->demon.field41++; - if (!_vm->_awayMission.demon.field56) { - _vm->_awayMission.demon.field56 = true; + if (!_awayMission->demon.field56) { + _awayMission->demon.field56 = true; playMidiMusicTracks(0, -1); } } @@ -67,10 +67,10 @@ void Room::demon3Tick1() { void Room::demon3Timer0Expired() { _roomVar.demon.boulder1Shot = true; loadActorAnim2(9, "drbldr", 0x26, 0, 0); - _vm->_awayMission.timers[1] = 13; - _vm->_awayMission.demon.boulder1Gone = true; - _vm->_awayMission.demon.numBouldersGone++; - _vm->_awayMission.disableInput = true; + _awayMission->timers[1] = 13; + _awayMission->demon.boulder1Gone = true; + _awayMission->demon.numBouldersGone++; + _awayMission->disableInput = true; playMidiMusicTracks(2, -1); playVoc("BOULDERK"); } @@ -84,12 +84,12 @@ void Room::demon3Timer1Expired() { // Door just opened void Room::demon3Timer3Expired() { - if (_vm->_awayMission.demon.repairedHand) { + if (_awayMission->demon.repairedHand) { showText(TX_DEM3N008); loadActorAnim(14, "door", 0x82, 0xc, 0); loadMapFile("demon3"); - _vm->_awayMission.demon.doorOpened = true; - _vm->_awayMission.demon.missionScore += 2; + _awayMission->demon.doorOpened = true; + _awayMission->demon.missionScore += 2; } else { showText(TX_DEM3N007); } @@ -101,7 +101,7 @@ void Room::demon3FinishedAnimation1() { loadActorStandAnim(OBJECT_SPOCK); walkCrewman(OBJECT_MCCOY, 0x9c, 0xb2, 5); _roomVar.demon.inFiringPosition = false; - _vm->_awayMission.redshirtDead = true; + _awayMission->redshirtDead = true; } // Just destroyed boulder 4 (revealing the miner) @@ -114,7 +114,7 @@ void Room::demon3FinishedWalking5() { playSoundEffectIndex(0x04); showText(TX_SPEAKER_MCCOY, TX_DEM3_019); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::demon3McCoyInFiringPosition() { @@ -142,7 +142,7 @@ void Room::demon3KirkInFiringPosition() { } void Room::demon3CrewmanInFiringPosition() { - if (_roomVar.demon.kirkInPosition && _roomVar.demon.spockInPosition && _roomVar.demon.mccoyInPosition && (_vm->_awayMission.redshirtDead || _roomVar.demon.redshirtInPosition)) + if (_roomVar.demon.kirkInPosition && _roomVar.demon.spockInPosition && _roomVar.demon.mccoyInPosition && (_awayMission->redshirtDead || _roomVar.demon.redshirtInPosition)) demon3PullOutPhaserAndFireAtBoulder(); } @@ -191,12 +191,12 @@ void Room::demon3FireAtBoulder() { loadActorAnim(17, _roomVar.demon.boulderAnim, 0, 0, 0); playSoundEffectIndex(0x06); if (!_roomVar.demon.boulder1Shot) - _vm->_awayMission.timers[0] = 1; - _vm->_awayMission.disableInput = false; + _awayMission->timers[0] = 1; + _awayMission->disableInput = false; } void Room::demon3UsePhaserOnRedshirt() { - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) return; showText(TX_SPEAKER_MCCOY, TX_DEM3_013); } @@ -206,10 +206,10 @@ void Room::demon3UseStunPhaserOnBoulder() { } void Room::demon3UsePhaserOnBoulder1() { - if (_roomVar.demon.shootingBoulder || _vm->_awayMission.demon.boulder1Gone) + if (_roomVar.demon.shootingBoulder || _awayMission->demon.boulder1Gone) return; - _vm->_awayMission.demon.boulder1Gone = true; - _vm->_awayMission.demon.numBouldersGone++; + _awayMission->demon.boulder1Gone = true; + _awayMission->demon.numBouldersGone++; _roomVar.demon.boulderBeingShot = 1; _roomVar.demon.boulder1Shot = true; strcpy(_roomVar.demon.boulderAnim, "s0r3s2"); @@ -217,21 +217,21 @@ void Room::demon3UsePhaserOnBoulder1() { } void Room::demon3UsePhaserOnBoulder2() { - if (_roomVar.demon.shootingBoulder || _vm->_awayMission.demon.boulder2Gone) + if (_roomVar.demon.shootingBoulder || _awayMission->demon.boulder2Gone) return; - _vm->_awayMission.demon.boulder2Gone = true; - _vm->_awayMission.demon.numBouldersGone++; + _awayMission->demon.boulder2Gone = true; + _awayMission->demon.numBouldersGone++; _roomVar.demon.boulderBeingShot = 2; strcpy(_roomVar.demon.boulderAnim, "s0r3s3"); demon3BoulderCommon(); } void Room::demon3UsePhaserOnBoulder3() { - if (_vm->_awayMission.demon.boulder1Gone) { - if (_roomVar.demon.shootingBoulder || _vm->_awayMission.demon.boulder3Gone) + if (_awayMission->demon.boulder1Gone) { + if (_roomVar.demon.shootingBoulder || _awayMission->demon.boulder3Gone) return; - _vm->_awayMission.demon.boulder3Gone = true; - _vm->_awayMission.demon.numBouldersGone++; + _awayMission->demon.boulder3Gone = true; + _awayMission->demon.numBouldersGone++; _roomVar.demon.boulderBeingShot = 3; strcpy(_roomVar.demon.boulderAnim, "s0r3s1"); demon3BoulderCommon(); @@ -241,14 +241,14 @@ void Room::demon3UsePhaserOnBoulder3() { } void Room::demon3UsePhaserOnBoulder4() { - if (_vm->_awayMission.demon.boulder2Gone) { - if (_roomVar.demon.shootingBoulder || _vm->_awayMission.demon.boulder4Gone) + if (_awayMission->demon.boulder2Gone) { + if (_roomVar.demon.shootingBoulder || _awayMission->demon.boulder4Gone) return; - _vm->_awayMission.demon.boulder4Gone = true; - _vm->_awayMission.demon.numBouldersGone++; + _awayMission->demon.boulder4Gone = true; + _awayMission->demon.numBouldersGone++; _roomVar.demon.boulderBeingShot = 4; strcpy(_roomVar.demon.boulderAnim, "s0r3s4"); - _vm->_awayMission.demon.foundMiner = true; + _awayMission->demon.foundMiner = true; demon3BoulderCommon(); } else { // BUGFIX: In the original, the audio didn't play, despite the file existing (and @@ -258,7 +258,7 @@ void Room::demon3UsePhaserOnBoulder4() { } void Room::demon3BoulderCommon() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; Common::Point pos = getActorPos(OBJECT_KIRK); if (!(pos.x == 0x79 && pos.y == 0xa0)) { _roomVar.demon.inFiringPosition = false; @@ -273,7 +273,7 @@ void Room::demon3BoulderCommon() { walkCrewman(OBJECT_KIRK, 0x79, 0xa0, 1); walkCrewman(OBJECT_SPOCK, 0xae, 0xb4, 2); walkCrewman(OBJECT_MCCOY, 0xd6, 0xb8, 3); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) walkCrewman(OBJECT_REDSHIRT, 0x46, 0xa0, 4); _roomVar.demon.shootingBoulder = true; @@ -294,7 +294,7 @@ void Room::demon3UseSTricorderOnPanel() { } void Room::demon3UseSTricorderOnBoulder() { - if (_vm->_awayMission.demon.foundMiner) + if (_awayMission->demon.foundMiner) return; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(0x04); @@ -302,7 +302,7 @@ void Room::demon3UseSTricorderOnBoulder() { } void Room::demon3UseMTricorderOnBoulder() { - if (_vm->_awayMission.demon.foundMiner) + if (_awayMission->demon.foundMiner) return; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); @@ -310,17 +310,17 @@ void Room::demon3UseMTricorderOnBoulder() { } void Room::demon3UseCrewmanOnPanel() { - if (_vm->_awayMission.demon.numBouldersGone != 4 || _vm->_awayMission.redshirtDead) + if (_awayMission->demon.numBouldersGone != 4 || _awayMission->redshirtDead) return; showText(TX_SPEAKER_EVERTS, TX_DEM3_031); demon3UseRedshirtOnPanel(); } void Room::demon3UseRedshirtOnPanel() { - if (_vm->_awayMission.redshirtDead) + if (_awayMission->redshirtDead) return; - if (_vm->_awayMission.demon.numBouldersGone != 4) + if (_awayMission->demon.numBouldersGone != 4) showText(TX_SPEAKER_EVERTS, TX_DEM3_030); else walkCrewman(OBJECT_REDSHIRT, 0xd8, 0x70, 8); @@ -331,18 +331,18 @@ void Room::demon3RedshirtReachedPanel() { } void Room::demon3RedshirtUsedPanel() { - if (!_vm->_awayMission.demon.foundMiner) + if (!_awayMission->demon.foundMiner) return; - _vm->_awayMission.demon.field41++; - if (_vm->_awayMission.demon.field41 == 5) { + _awayMission->demon.field41++; + if (_awayMission->demon.field41 == 5) { playVoc("EFX3"); showText(TX_SPEAKER_EVERTS, TX_DEM3_A32); loadActorAnim2(OBJECT_REDSHIRT, "rkille", -1, -1, 3); playSoundEffectIndex(0x06); - _vm->_awayMission.redshirtDead = true; - _vm->_awayMission.demon.field45 = true; + _awayMission->redshirtDead = true; + _awayMission->demon.field45 = true; } else { const int textTable[] = { TX_DEM3N005, @@ -356,7 +356,7 @@ void Room::demon3RedshirtUsedPanel() { TX_NULL, TX_BLANK }; - text[1] = textTable[_vm->_awayMission.demon.field41 - 1]; + text[1] = textTable[_awayMission->demon.field41 - 1]; showText(text); walkCrewman(OBJECT_REDSHIRT, 0xbe, 0x9b, 0); } @@ -394,8 +394,8 @@ void Room::demon3UsePhaserOnDoor() { } void Room::demon3UseHandOnPanel() { - if (_vm->_awayMission.demon.numBouldersGone == 4) { - if (_vm->_awayMission.demon.doorOpened) + if (_awayMission->demon.numBouldersGone == 4) { + if (_awayMission->demon.doorOpened) return; walkCrewman(OBJECT_KIRK, 0xd8, 0x70, 7); } else { @@ -405,13 +405,13 @@ void Room::demon3UseHandOnPanel() { void Room::demon3KirkReachedHandPanel() { loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 6); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; playVoc("MUR4E1"); } void Room::demon3KirkUsedHandPanel() { loadActorAnim(15, "panel", 0xd6, 0x3d, 0); - _vm->_awayMission.timers[3] = 10; + _awayMission->timers[3] = 10; playVoc("SE0FORCE"); } @@ -419,7 +419,7 @@ void Room::demon3UseMTricorderOnMiner() { loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.minerDead) { + if (_awayMission->demon.minerDead) { showText(TX_SPEAKER_MCCOY, TX_DEM3_022); } else { showText(TX_SPEAKER_MCCOY, TX_DEM3_023); @@ -427,7 +427,7 @@ void Room::demon3UseMTricorderOnMiner() { } void Room::demon3UseMedkitOnMiner() { - if (_vm->_awayMission.demon.healedMiner) { + if (_awayMission->demon.healedMiner) { showText(TX_SPEAKER_MCCOY, TX_DEM3_015); } else { walkCrewman(OBJECT_MCCOY, 0xe6, 0x7b, 6); @@ -441,13 +441,13 @@ void Room::demon3McCoyReachedMiner() { } void Room::demon3McCoyFinishedHealingMiner() { - if (_vm->_awayMission.demon.minerDead) { + if (_awayMission->demon.minerDead) { showText(TX_SPEAKER_MCCOY, TX_DEM3_022); } else { showText(TX_SPEAKER_MCCOY, TX_DEM3_021); - _vm->_awayMission.demon.healedMiner = true; + _awayMission->demon.healedMiner = true; loadActorAnim2(13, "drmine", 0xda, 0x6c, 0); - _vm->_awayMission.demon.missionScore += 2; + _awayMission->demon.missionScore += 2; walkCrewman(OBJECT_MCCOY, 0x104, 0x96, 0); } } @@ -457,7 +457,7 @@ void Room::demon3GetMiner() { } void Room::demon3TalkToMiner() { - if (!_vm->_awayMission.demon.healedMiner) + if (!_awayMission->demon.healedMiner) return; showText(TX_SPEAKER_KANDREY, TX_DEM3_F21); } @@ -473,7 +473,7 @@ void Room::demon3TalkToSpock() { } void Room::demon3TalkToMccoy() { - if (_vm->_awayMission.redshirtDead) { + if (_awayMission->redshirtDead) { showText(TX_SPEAKER_MCCOY, TX_DEM3_014); } else { showText(TX_SPEAKER_MCCOY, TX_DEM3_025); @@ -503,7 +503,7 @@ void Room::demon3LookAtMccoy() { } void Room::demon3LookAtRedshirt() { - if (_vm->_awayMission.redshirtDead) { + if (_awayMission->redshirtDead) { showText(TX_DEM3N017); // NOTE: there's an alternate string that isn't used? (TX_DEM3N018) } else { @@ -516,7 +516,7 @@ void Room::demon3LookAnywhere() { } void Room::demon3LookAtMiner() { - if (_vm->_awayMission.demon.healedMiner) { + if (_awayMission->demon.healedMiner) { showText(TX_DEM3N000); } else { showText(TX_DEM3N006); @@ -544,7 +544,7 @@ void Room::demon3LookAtStructure() { } void Room::demon3LookAtDoor() { - if (_vm->_awayMission.demon.doorOpened) { + if (_awayMission->demon.doorOpened) { showText(TX_DEM3N014); } else { showText(TX_DEM3N012); diff --git a/engines/startrek/rooms/demon4.cpp b/engines/startrek/rooms/demon4.cpp index 7a8d95f911..615a19a811 100644 --- a/engines/startrek/rooms/demon4.cpp +++ b/engines/startrek/rooms/demon4.cpp @@ -21,6 +21,7 @@ */ #include "startrek/room.h" +#include "startrek/startrek.h" namespace StarTrek { @@ -30,20 +31,20 @@ namespace StarTrek { void Room::demon4Tick1() { playVoc("DEM4LOOP"); - if (!_vm->_awayMission.demon.healedMiner) - _vm->_awayMission.demon.minerDead = true; + if (!_awayMission->demon.healedMiner) + _awayMission->demon.minerDead = true; - if (_vm->_awayMission.demon.solvedSunPuzzle) { + if (_awayMission->demon.solvedSunPuzzle) { loadActorAnim(10, "bxrise2", 0x122, 0x91, 0); loadActorAnim(8, "stpout2", 0x107, 0x92, 0); _roomVar.demon.nauianEmerged = true; - if ((_vm->_awayMission.demon.itemsTakenFromCase & 0x10) && !_vm->_awayMission.demon.gaveSkullToNauian) - _vm->_awayMission.timers[6] = 20; + if ((_awayMission->demon.itemsTakenFromCase & 0x10) && !_awayMission->demon.gaveSkullToNauian) + _awayMission->timers[6] = 20; } - if (!_vm->_awayMission.demon.foundAlienRoom) { - _vm->_awayMission.demon.foundAlienRoom = true; + if (!_awayMission->demon.foundAlienRoom) { + _awayMission->demon.foundAlienRoom = true; playMidiMusicTracks(1, -1); } } @@ -52,8 +53,8 @@ void Room::demon4Tick1() { void Room::demon4FinishedAnimation1() { loadActorAnim(8, "stpout", 0x107, 0x92, 5); _roomVar.demon.nauianEmerged = true; - if (_vm->_awayMission.demon.itemsTakenFromCase & 0x10) - _vm->_awayMission.timers[6] = 45; + if (_awayMission->demon.itemsTakenFromCase & 0x10) + _awayMission->timers[6] = 45; } void Room::demon4FinishedAnimation2() { @@ -67,7 +68,7 @@ void Room::demon4FinishedAnimation2() { // WORKAROUND: original game has the below line; however, it's never executed anyway // since the game over menu manipulates the stack. Here, the menu could delete this // room object, so it should be the last statement... - //_vm->_awayMission.disableInput = false; + //_awayMission->disableInput = false; } void Room::demon4FinishedAnimation3() { @@ -76,15 +77,15 @@ void Room::demon4FinishedAnimation3() { showText(TX_SPEAKER_NAUIAN, TX_DEM4_035); showText(TX_SPEAKER_SPOCK, TX_DEM4_030); - _vm->_awayMission.disableInput = true; - _vm->_awayMission.demon.missionScore += 5; - _vm->_awayMission.timers[1] = 20; + _awayMission->disableInput = true; + _awayMission->demon.missionScore += 5; + _awayMission->timers[1] = 20; } // Just solved sun puzzle void Room::demon4Timer0Expired() { loadActorAnim(10, "bxrise", 0x122, 0x91, 1); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; loadActorStandAnim(OBJECT_KIRK); playVoc("SE2POWER"); } @@ -97,7 +98,7 @@ void Room::demon4Timer1Expired() { walkCrewman(OBJECT_SPOCK, 0xb4, 0x9b, 4); walkCrewman(OBJECT_MCCOY, 0xc8, 0x9b, 4); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) walkCrewman(OBJECT_REDSHIRT, 0xc1, 0x91, 4); else _roomVar.demon.crewReadyToBeamOut++; @@ -108,12 +109,12 @@ void Room::demon4CrewmanReachedBeamoutPosition() { if (_roomVar.demon.crewReadyToBeamOut != 4) return; - if (!_vm->_awayMission.demon.insultedStephen) - _vm->_awayMission.demon.missionScore += 3; - if (!_vm->_awayMission.redshirtDead) - _vm->_awayMission.demon.missionScore += 2; + if (!_awayMission->demon.insultedStephen) + _awayMission->demon.missionScore += 3; + if (!_awayMission->redshirtDead) + _awayMission->demon.missionScore += 2; - endMission(_vm->_awayMission.demon.missionScore, 0x24, 0); + endMission(_awayMission->demon.missionScore, 0x24, 0); } void Room::demon4Timer2Expired() { @@ -144,16 +145,16 @@ void Room::demon4UsePhaserOnNauian() { showText(TX_SPEAKER_NAUIAN, TX_DEM4_032); loadActorAnim2(10, "bxfire", 0, 0, 2); playVoc("V0SPOCKT"); - _vm->_awayMission.disableInput = true; - _vm->_awayMission.timers[2] = 7; - _vm->_awayMission.timers[3] = 8; - _vm->_awayMission.timers[4] = 7; - _vm->_awayMission.timers[5] = 8; + _awayMission->disableInput = true; + _awayMission->timers[2] = 7; + _awayMission->timers[3] = 8; + _awayMission->timers[4] = 7; + _awayMission->timers[5] = 8; } } void Room::demon4UseMetalOnSecurityEquipment() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xf5, 0x90, 5); } @@ -162,20 +163,20 @@ void Room::demon4KirkReachedSecurityEquipment() { } void Room::demon4KirkFinishedUsingSecurityEquipment() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_DEM4N014); } void Room::demon4UseMetalOnNauian() { walkCrewman(OBJECT_KIRK, 0xe9, 0x90, 1); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; } void Room::demon4KirkReachedNauian() { loadActorAnim2(8, "usekey", 0x107, 0x8e, 3); loseItem(OBJECT_IMETAL); - _vm->_awayMission.demon.missionScore += 2; - _vm->_awayMission.demon.itemsTakenFromCase &= ~1; + _awayMission->demon.missionScore += 2; + _awayMission->demon.itemsTakenFromCase &= ~1; } void Room::demon4UseSkullOnNauian() { @@ -190,11 +191,11 @@ void Room::demon4KirkReachedNauianWithSkull() { switch (choice) { case 0: - _vm->_awayMission.demon.missionScore++; + _awayMission->demon.missionScore++; loadActorAnim2(8, "takesk", 0x107, 0x8e, 0); loseItem(OBJECT_ISKULL); - _vm->_awayMission.demon.itemsTakenFromCase &= ~16; // BUG: skull reappears in case? Can abuse for infinite ponits? - _vm->_awayMission.demon.gaveSkullToNauian = true; + _awayMission->demon.itemsTakenFromCase &= ~16; // BUG: skull reappears in case? Can abuse for infinite ponits? + _awayMission->demon.gaveSkullToNauian = true; break; case 1: @@ -220,10 +221,10 @@ void Room::demon4UsePhaserOnMccoy() { } void Room::demon4TalkToNauian() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; - if (!_vm->_awayMission.demon.metNauian) { - _vm->_awayMission.demon.metNauian = true; + if (!_awayMission->demon.metNauian) { + _awayMission->demon.metNauian = true; showText(TX_SPEAKER_NAUIAN, TX_DEM4_044); const int choices[] = { TX_SPEAKER_KIRK, TX_DEM4_002, TX_DEM4_004, TX_DEM4_009, TX_BLANK }; @@ -231,7 +232,7 @@ void Room::demon4TalkToNauian() { switch (choice) { case 0: - _vm->_awayMission.demon.field2d = true; + _awayMission->demon.field2d = true; showText(TX_SPEAKER_NAUIAN, TX_DEM4_042); break; @@ -254,7 +255,7 @@ void Room::demon4TalkToNauian() { switch (choice) { case 0: - _vm->_awayMission.demon.field2d = true; + _awayMission->demon.field2d = true; showText(TX_SPEAKER_NAUIAN, TX_DEM4_041); break; case 1: @@ -275,9 +276,9 @@ void Room::demon4TalkToNauian() { showText(TX_SPEAKER_NAUIAN, TX_DEM4_035); showText(TX_SPEAKER_SPOCK, TX_DEM4_030); - _vm->_awayMission.disableInput = true; - _vm->_awayMission.demon.missionScore += 5; - _vm->_awayMission.timers[1] = 20; + _awayMission->disableInput = true; + _awayMission->demon.missionScore += 5; + _awayMission->timers[1] = 20; } else { showText(TX_SPEAKER_NAUIAN, TX_DEM4_038); } @@ -351,24 +352,24 @@ void Room::demon4UseRedshirtOnPanel() { } void Room::demon4UseCrewmanOnPanel() { - if (_vm->_awayMission.demon.solvedSunPuzzle) + if (_awayMission->demon.solvedSunPuzzle) return; walkCrewman(_roomVar.demon.crewmanUsingPanel, 0xda, 0x83, 3); - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.demon.crewmanUsingPanel] = DIR_N; - _vm->_awayMission.disableInput = true; + _awayMission->crewDirectionsAfterWalk[_roomVar.demon.crewmanUsingPanel] = DIR_N; + _awayMission->disableInput = true; } void Room::demon4CrewmanReachedPanel() { if (demon4ShowSunPuzzle()) { - _vm->_awayMission.demon.solvedSunPuzzle = true; + _awayMission->demon.solvedSunPuzzle = true; loadActorAnim(9, "ctrl", 0, 0, 0); - _vm->_awayMission.demon.missionScore += 3; - _vm->_awayMission.timers[0] = 10; + _awayMission->demon.missionScore += 3; + _awayMission->timers[0] = 10; } else showText(TX_DEM4N013); walkCrewman(_roomVar.demon.crewmanUsingPanel, 0xae, 0x93, 0); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } bool Room::demon4ShowSunPuzzle() { diff --git a/engines/startrek/rooms/demon5.cpp b/engines/startrek/rooms/demon5.cpp index 8af51febc5..5a3738c9f1 100644 --- a/engines/startrek/rooms/demon5.cpp +++ b/engines/startrek/rooms/demon5.cpp @@ -27,7 +27,7 @@ namespace StarTrek { void Room::demon5Tick1() { playVoc("DEM5LOOP"); - if (!_vm->_awayMission.demon.curedChub || _vm->_awayMission.demon.field37 != 1) + if (!_awayMission->demon.curedChub || _awayMission->demon.field37 != 1) loadActorAnim(11, "oldman", 0x7a, 0xb0, 0); loadActorAnim(8, "brorob", 0xc9, 0xa8, 0); loadActorAnim(9, "crip", 0xe3, 0xa8, 0); @@ -36,7 +36,7 @@ void Room::demon5Tick1() { } void Room::demon5WalkToDoor() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.demon.movingToDoor = true; walkCrewman(OBJECT_KIRK, 0xa0, 0x94, 1); } @@ -68,14 +68,14 @@ void Room::demon5UsePhaserOnAnything() { } void Room::demon5UseHandOnStephen() { - if (_vm->_awayMission.demon.repairedHand) + if (_awayMission->demon.repairedHand) showText(TX_SPEAKER_STEPHEN, TX_DEM5_036); else showText(TX_SPEAKER_STEPHEN, TX_DEM5_039); } void Room::demon5UseBerryOnStephen() { - if (_vm->_awayMission.demon.knowAboutHypoDytoxin) + if (_awayMission->demon.knowAboutHypoDytoxin) showText(TX_SPEAKER_STEPHEN, TX_DEM5_033); else showText(TX_SPEAKER_STEPHEN, TX_DEM5_037); @@ -91,11 +91,11 @@ void Room::demon5MccoyReachedChub() { void Room::demon5MccoyHealedChub() { walkCrewman(OBJECT_MCCOY, 0xc8, 0xba, 0); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; showText(TX_SPEAKER_CHUB, TX_DEM5L027); loseItem(OBJECT_IDETOXIN); - _vm->_awayMission.demon.curedChub = true; - _vm->_awayMission.demon.missionScore += 2; + _awayMission->demon.curedChub = true; + _awayMission->demon.missionScore += 2; } void Room::demon5UseHypoDytoxinOnAnything() { @@ -151,7 +151,7 @@ void Room::demon5LookAtChub() { } void Room::demon5TalkToRoberts() { - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { showText(TX_SPEAKER_ROBERTS, TX_DEM5_030); if (!_roomVar.demon.talkedToRoberts) { _roomVar.demon.talkedToRoberts = true; @@ -164,7 +164,7 @@ void Room::demon5TalkToRoberts() { } void Room::demon5TalkToChub() { - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { showText(TX_SPEAKER_CHUB, TX_DEM5L029); showText(TX_SPEAKER_KIRK, TX_DEM5_002); showText(TX_SPEAKER_CHUB, TX_DEM5L030); @@ -182,7 +182,7 @@ void Room::demon5TalkToChub() { } void Room::demon5TalkToGrisnash() { - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { showText(TX_SPEAKER_GRISNASH, TX_DEM5_028); showText(TX_SPEAKER_SPOCK, TX_DEM5_024); showText(TX_SPEAKER_GRISNASH, TX_DEM5_029); @@ -199,7 +199,7 @@ void Room::demon5TalkToGrisnash() { } void Room::demon5TalkToStephen() { - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { showText(TX_SPEAKER_STEPHEN, TX_DEM5_041); showText(TX_SPEAKER_MCCOY, TX_DEM5_022); showText(TX_SPEAKER_STEPHEN, TX_DEM5_043); @@ -211,14 +211,14 @@ void Room::demon5TalkToStephen() { _roomVar.demon.numTalkedTo++; demon5CheckCompletedStudy(); } - } else if (!_vm->_awayMission.demon.knowAboutHypoDytoxin) { + } else if (!_awayMission->demon.knowAboutHypoDytoxin) { showText(TX_SPEAKER_ROBERTS, TX_DEM5_034); - } else if (_vm->_awayMission.demon.madeHypoDytoxin) { + } else if (_awayMission->demon.madeHypoDytoxin) { showText(TX_SPEAKER_ROBERTS, TX_DEM5_035); - } else if (_vm->_awayMission.demon.gotBerries) { + } else if (_awayMission->demon.gotBerries) { showText(TX_SPEAKER_ROBERTS, TX_DEM5_032); - _vm->_awayMission.demon.field3e = false; - } else if (_vm->_awayMission.demon.field3e) { + _awayMission->demon.field3e = false; + } else if (_awayMission->demon.field3e) { showText(TX_SPEAKER_ROBERTS, TX_DEM5_038); } else { showText(TX_SPEAKER_ROBERTS, TX_DEM5_034); @@ -241,10 +241,10 @@ void Room::demon5TalkToRedshirt() { } void Room::demon5TalkToMccoy() { - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { showText(TX_SPEAKER_MCCOY, TX_DEM5_023); showText(TX_SPEAKER_KIRK, TX_DEM5_004); - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_EVERTS, TX_DEM5_044); showText(TX_SPEAKER_MCCOY, TX_DEM5_020); showText(TX_SPEAKER_SPOCK, TX_DEM5_026); @@ -271,7 +271,7 @@ void Room::demon5UseMTricorderOnChub() { loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.curedChub) { + if (_awayMission->demon.curedChub) { if (_roomVar.demon.scannedChub) return; showText(TX_SPEAKER_MCCOY, TX_DEM5_016); @@ -279,13 +279,13 @@ void Room::demon5UseMTricorderOnChub() { _roomVar.demon.numScanned++; demon5CheckCompletedStudy(); } else { - if (_vm->_awayMission.demon.field3e) + if (_awayMission->demon.field3e) showText(TX_SPEAKER_MCCOY, TX_DEM5_010); else { showText(TX_SPEAKER_MCCOY, TX_DEM5_012); showText(TX_SPEAKER_STEPHEN, TX_DEM5_040); - _vm->_awayMission.demon.knowAboutHypoDytoxin = true; - _vm->_awayMission.demon.field3e = true; + _awayMission->demon.knowAboutHypoDytoxin = true; + _awayMission->demon.field3e = true; } } } diff --git a/engines/startrek/rooms/demon6.cpp b/engines/startrek/rooms/demon6.cpp index 19c6d07bbb..488683eb28 100644 --- a/engines/startrek/rooms/demon6.cpp +++ b/engines/startrek/rooms/demon6.cpp @@ -21,12 +21,13 @@ */ #include "startrek/room.h" +#include "startrek/startrek.h" namespace StarTrek { void Room::demon6Tick1() { playVoc("DEM6LOOP"); - if (_vm->_awayMission.demon.gotBerries || (!_vm->_awayMission.demon.field3e && _vm->_awayMission.demon.field37)) { + if (_awayMission->demon.gotBerries || (!_awayMission->demon.field3e && _awayMission->demon.field37)) { loadActorAnim(8, "oldman", 0x5f, 0xb1, 0); _roomVar.demon.stephenInRoom = true; } @@ -35,17 +36,17 @@ void Room::demon6Tick1() { } void Room::demon6Tick30() { - if (!_vm->_awayMission.demon.gotBerries) + if (!_awayMission->demon.gotBerries) return; - if (_vm->_awayMission.demon.field3e) + if (_awayMission->demon.field3e) return; - if (!_vm->_awayMission.demon.field37) + if (!_awayMission->demon.field37) return; - if (_vm->_awayMission.demon.stephenWelcomedToStudy) + if (_awayMission->demon.stephenWelcomedToStudy) return; showText(TX_SPEAKER_STEPHEN, TX_DEM6_042); - _vm->_awayMission.demon.stephenWelcomedToStudy = true; + _awayMission->demon.stephenWelcomedToStudy = true; } void Room::demon6SpockReachedComputer() { @@ -53,7 +54,7 @@ void Room::demon6SpockReachedComputer() { } void Room::demon6WalkToDoor() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.demon.movingToDoor = true; walkCrewman(OBJECT_KIRK, 0xa0, 0x94, 4); } @@ -137,9 +138,9 @@ void Room::demon6LookAtRedshirt() { void Room::demon6LookAtComputer() { showText(TX_DEM6N006); - if (!_vm->_awayMission.demon.lookedAtComputer) { - _vm->_awayMission.demon.lookedAtComputer = true; - _vm->_awayMission.demon.missionScore++; + if (!_awayMission->demon.lookedAtComputer) { + _awayMission->demon.lookedAtComputer = true; + _awayMission->demon.missionScore++; } } @@ -172,7 +173,7 @@ void Room::demon6TalkToStephen() { } void Room::demon6UseBerryOnStephen() { - if (_vm->_awayMission.demon.knowAboutHypoDytoxin) { + if (_awayMission->demon.knowAboutHypoDytoxin) { showText(TX_SPEAKER_STEPHEN, TX_DEM6_027); } else { showText(TX_SPEAKER_STEPHEN, TX_DEM6_026); @@ -180,7 +181,7 @@ void Room::demon6UseBerryOnStephen() { } void Room::demon6UseBerryOnSynthesizer() { - if (!_vm->_awayMission.demon.knowAboutHypoDytoxin) + if (!_awayMission->demon.knowAboutHypoDytoxin) return; walkCrewman(OBJECT_MCCOY, 0x104, 0xa5, 1); } @@ -196,20 +197,20 @@ void Room::demon6FinishedMakingHypoDytoxin() { showText(TX_SPEAKER_MCCOY, TX_DEM6_018); giveItem(OBJECT_IDETOXIN); - _vm->_awayMission.demon.madeHypoDytoxin = true; + _awayMission->demon.madeHypoDytoxin = true; loseItem(OBJECT_IBERRY); - if (!_vm->_awayMission.demon.gavePointsForDytoxin) { - _vm->_awayMission.demon.gavePointsForDytoxin = true; - _vm->_awayMission.demon.missionScore++; + if (!_awayMission->demon.gavePointsForDytoxin) { + _awayMission->demon.gavePointsForDytoxin = true; + _awayMission->demon.missionScore++; } } void Room::demon6UseHandOnWorkspace() { - if (_vm->_awayMission.demon.repairedHand) { + if (_awayMission->demon.repairedHand) { showText(TX_SPEAKER_SPOCK, TX_DEM6N018); // FIXME } else { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; showText(TX_SPEAKER_KIRK, TX_DEM6_005); walkCrewman(OBJECT_SPOCK, 0xb3, 0xbb, 2); } @@ -221,10 +222,10 @@ void Room::demon6SpockReachedWorkspace() { void Room::demon6SpockFinishedRepairingHand() { showText(TX_SPEAKER_SPOCK, TX_DEM6_024); - _vm->_awayMission.demon.repairedHand = true; - _vm->_awayMission.demon.missionScore += 2; + _awayMission->demon.repairedHand = true; + _awayMission->demon.missionScore += 2; loadActorStandAnim(OBJECT_SPOCK); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } // FIXME: doesn't work @@ -244,7 +245,7 @@ void Room::demon6UseCrewmanOnCase() { insult: showText(TX_SPEAKER_STEPHEN, TX_DEM6_030); _roomVar.demon.insultedStephenRecently = true; - _vm->_awayMission.demon.insultedStephen = true; + _awayMission->demon.insultedStephen = true; } else if (choice == 1) { showText(TX_SPEAKER_STEPHEN, TX_DEM6_034); explain: @@ -316,27 +317,27 @@ void Room::demon6UseSpockOnComputer() { } void Room::demon6UseMineralOnStephen() { - _vm->_awayMission.demon.itemsTakenFromCase &= ~8; + _awayMission->demon.itemsTakenFromCase &= ~8; demon6ReturnItemToStephen(OBJECT_IMINERAL); } void Room::demon6UseShellsOnStephen() { - _vm->_awayMission.demon.itemsTakenFromCase &= ~2; + _awayMission->demon.itemsTakenFromCase &= ~2; demon6ReturnItemToStephen(OBJECT_ISHELLS); } void Room::demon6UseMeteorOnStephen() { - _vm->_awayMission.demon.itemsTakenFromCase &= ~4; + _awayMission->demon.itemsTakenFromCase &= ~4; demon6ReturnItemToStephen(OBJECT_IMETEOR); } void Room::demon6UseSkullOnStephen() { - _vm->_awayMission.demon.itemsTakenFromCase &= ~16; + _awayMission->demon.itemsTakenFromCase &= ~16; demon6ReturnItemToStephen(OBJECT_ISKULL); } void Room::demon6UseMetalOnStephen() { - _vm->_awayMission.demon.itemsTakenFromCase &= ~1; + _awayMission->demon.itemsTakenFromCase &= ~1; demon6ReturnItemToStephen(OBJECT_IMETAL); } @@ -347,7 +348,7 @@ void Room::demon6ReturnItemToStephen(int item) { } void Room::demon6UseHandOnStephen() { - if (_vm->_awayMission.demon.repairedHand) + if (_awayMission->demon.repairedHand) showText(TX_SPEAKER_STEPHEN, TX_DEM6_037); else showText(TX_SPEAKER_STEPHEN, TX_DEM6_043); @@ -422,8 +423,8 @@ void Room::demon6GetCase() { void Room::demon6KirkReachedCase() { const int items[] = { OBJECT_IMETAL, OBJECT_ISHELLS, OBJECT_IMETEOR, OBJECT_IMINERAL, OBJECT_ISKULL }; - byte ret = 0x1f ^ demon6ShowCase(_vm->_awayMission.demon.itemsTakenFromCase ^ 0x1f); - _vm->_awayMission.demon.itemsTakenFromCase = ret; + byte ret = 0x1f ^ demon6ShowCase(_awayMission->demon.itemsTakenFromCase ^ 0x1f); + _awayMission->demon.itemsTakenFromCase = ret; const int *i = items; while (ret != 0) { diff --git a/engines/startrek/rooms/feather0.cpp b/engines/startrek/rooms/feather0.cpp index a533af05bd..820614b62f 100644 --- a/engines/startrek/rooms/feather0.cpp +++ b/engines/startrek/rooms/feather0.cpp @@ -122,11 +122,11 @@ void Room::feather0TalkToQuetzecoatl() { } // Quetzecoatl ultimately warps the crew away no matter what - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnim(OBJECT_QUETZECOATL, "s5r0qt"); playMidiMusicTracks(1); - _vm->_awayMission.timers[0] = 50; - _vm->_awayMission.timers[1] = 64; + _awayMission->timers[0] = 50; + _awayMission->timers[1] = 64; } void Room::feather0Timer0Expired() { @@ -139,7 +139,7 @@ void Room::feather0Timer0Expired() { } void Room::feather0Timer1Expired() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadRoomIndex(1, 5); } diff --git a/engines/startrek/rooms/feather1.cpp b/engines/startrek/rooms/feather1.cpp index 667608a7ff..1621ecabbd 100644 --- a/engines/startrek/rooms/feather1.cpp +++ b/engines/startrek/rooms/feather1.cpp @@ -148,12 +148,12 @@ void Room::feather1Tick1() { playVoc("FEA1LOOP"); playMidiMusicTracks(27); - if (_vm->_awayMission.feather.vineState == 0) - _vm->_awayMission.disableInput = true; + if (_awayMission->feather.vineState == 0) + _awayMission->disableInput = true; - if (!_vm->_awayMission.feather.gotSnake) + if (!_awayMission->feather.gotSnake) loadActorAnim(OBJECT_SNAKE, "s5r1so", 0x9c, 0xc1); - if (_vm->_awayMission.feather.vineState == 0) + if (_awayMission->feather.vineState == 0) loadActorAnim(OBJECT_LEFT_VINE, "s5r1v0", 0xa0, 0x23); else { _roomVar.feather.crewEscaped[OBJECT_KIRK] = true; @@ -165,26 +165,26 @@ void Room::feather1Tick1() { } void Room::feather1Tick45() { - if (_vm->_awayMission.feather.vineState == 0) { + if (_awayMission->feather.vineState == 0) { playVoc("LD3MAGAP"); loadActorAnim(OBJECT_QUETZECOATL, "s5r1qa", 0xb4, 0x32); } } void Room::feather1Tick85() { - if (_vm->_awayMission.feather.vineState == 0) + if (_awayMission->feather.vineState == 0) showText(TX_SPEAKER_QUETZECOATL, TX_FEA1_057); } void Room::feather1Tick95() { - if (_vm->_awayMission.feather.vineState == 0) { + if (_awayMission->feather.vineState == 0) { playVoc("LD3MAGDI"); loadActorAnimC(OBJECT_QUETZECOATL, "s5r1qd", -1, -1, &Room::feather1QuetzecoatlDisappeared); } } void Room::feather1QuetzecoatlDisappeared() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::feather1GetRightVine() { @@ -192,7 +192,7 @@ void Room::feather1GetRightVine() { } void Room::feather1GetLeftVine() { - if (_vm->_awayMission.feather.vineState == 0) + if (_awayMission->feather.vineState == 0) showText(TX_FEA1N009); else showText(TX_FEA1N008); @@ -201,11 +201,11 @@ void Room::feather1GetLeftVine() { void Room::feather1GetRocks() { if (_roomVar.feather.crewEscaped[OBJECT_KIRK]) showText(TX_FEA1N021); - else if (_vm->_awayMission.feather.gotRock) + else if (_awayMission->feather.gotRock) showText(TX_FEA1N019); else { walkCrewmanC(OBJECT_KIRK, 0x90, 0xb6, &Room::feather1ReachedRocks); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } } @@ -214,20 +214,20 @@ void Room::feather1ReachedRocks() { } void Room::feather1PickedUpRocks() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); giveItem(OBJECT_IROCK); showText(TX_FEA1N022); - _vm->_awayMission.feather.gotRock = true; + _awayMission->feather.gotRock = true; } void Room::feather1GetSnake() { // BUG: Infinite score mechanism. Just keep trying and failing to get the snake. - _vm->_awayMission.feather.missionScore++; + _awayMission->feather.missionScore++; if (!_roomVar.feather.crewEscaped[OBJECT_KIRK]) { walkCrewmanC(OBJECT_KIRK, 0x90, 0xbe, &Room::feather1ReachedSnake); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } else showText(TX_FEA1N021); } @@ -238,26 +238,26 @@ void Room::feather1ReachedSnake() { // TX_FEA1N018: "With nowhere for the snake to go, you capture it" loadActorAnimC(OBJECT_KIRK, "s5r1kg", -1, -1, &Room::feather1PickedUpSnake); - if (_vm->_awayMission.feather.holeBlocked) - _vm->_awayMission.timers[1] = 20; + if (_awayMission->feather.holeBlocked) + _awayMission->timers[1] = 20; else - _vm->_awayMission.timers[2] = 6; + _awayMission->timers[2] = 6; } void Room::feather1Timer1Expired() { giveItem(OBJECT_ISNAKE); loadActorStandAnim(OBJECT_SNAKE); - _vm->_awayMission.feather.gotSnake = true; + _awayMission->feather.gotSnake = true; } void Room::feather1Timer2Expired() { // Snake retreats into hole loadActorAnim2(OBJECT_SNAKE, "s5r1si"); - _vm->_awayMission.timers[0] = 80; + _awayMission->timers[0] = 80; _roomVar.feather.snakeInHole = true; } void Room::feather1PickedUpSnake() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); } @@ -273,29 +273,29 @@ void Room::feather1UseCommunicator() { void Room::feather1UseRockOnHole() { if (_roomVar.feather.crewEscaped[OBJECT_KIRK]) showText(TX_FEA1N021); - else if (_vm->_awayMission.feather.holeBlocked) + else if (_awayMission->feather.holeBlocked) showText(TX_FEA1N005); else { - _vm->_awayMission.feather.missionScore++; + _awayMission->feather.missionScore++; walkCrewmanC(OBJECT_KIRK, 0xa3, 0xb6, &Room::feather1ReachedHole); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; if (_roomVar.feather.snakeInHole) - _vm->_awayMission.timers[0] = 12; + _awayMission->timers[0] = 12; } } void Room::feather1ReachedHole() { loadActorAnimC(OBJECT_KIRK, "s5r1kg", -1, -1, &Room::feather1PutRockInHole); - _vm->_awayMission.timers[3] = 18; + _awayMission->timers[3] = 18; } void Room::feather1Timer3Expired() { loadActorAnim(OBJECT_ROCK_IN_HOLE, "s5r1rk", 0xad, 0xba); - _vm->_awayMission.feather.holeBlocked = true; + _awayMission->feather.holeBlocked = true; } void Room::feather1PutRockInHole() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); } @@ -322,9 +322,9 @@ void Room::feather1UseSnakeOnRedshirt() { } void Room::feather1UseRockOnSnake() { - if (!_vm->_awayMission.feather.gotSnake) { + if (!_awayMission->feather.gotSnake) { loadActorAnim2(OBJECT_SNAKE, "s5r1si"); - _vm->_awayMission.timers[0] = 80; + _awayMission->timers[0] = 80; _roomVar.feather.snakeInHole = true; showText(TX_SPEAKER_SPOCK, TX_FEA1_034); // BUGFIX: speaker is Spock, not Stragey } @@ -392,13 +392,13 @@ void Room::feather1UseRedshirtOnMoss() { } void Room::feather1UseRockOnLeftVine() { - if (_vm->_awayMission.feather.vineState == 0) { - _vm->_awayMission.feather.vineState++; - _vm->_awayMission.disableInput = true; + if (_awayMission->feather.vineState == 0) { + _awayMission->feather.vineState++; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0x7a, 0xb6, &Room::feather1ReadyToThrowRock1); - } else if (_vm->_awayMission.feather.vineState == 1) { - _vm->_awayMission.feather.vineState++; - _vm->_awayMission.disableInput = true; + } else if (_awayMission->feather.vineState == 1) { + _awayMission->feather.vineState++; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xa2, 0xb9, &Room::feather1ReadyToThrowRock2); } } @@ -411,7 +411,7 @@ void Room::feather1ReadyToThrowRock1() { } void Room::feather1ThrewRock1() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_SPEAKER_SPOCK, TX_FEA1_042); @@ -427,9 +427,9 @@ void Room::feather1ReadyToThrowRock2() { } void Room::feather1ThrewRock2() { - _vm->_awayMission.feather.missionScore += 6; + _awayMission->feather.missionScore += 6; loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_SPOCK, TX_FEA1_043); showText(TX_SPEAKER_MCCOY, TX_FEA1_021); @@ -438,7 +438,7 @@ void Room::feather1ThrewRock2() { void Room::feather1UseSpockOnVine() { - if (_vm->_awayMission.feather.vineState == 2) { + if (_awayMission->feather.vineState == 2) { _roomVar.feather.crewmanClimbingVine = OBJECT_SPOCK; feather1CrewmanClimbVine(); } else @@ -446,7 +446,7 @@ void Room::feather1UseSpockOnVine() { } void Room::feather1UseMccoyOnVine() { - if (_vm->_awayMission.feather.vineState == 2) { + if (_awayMission->feather.vineState == 2) { _roomVar.feather.crewmanClimbingVine = OBJECT_MCCOY; feather1CrewmanClimbVine(); } else @@ -454,7 +454,7 @@ void Room::feather1UseMccoyOnVine() { } void Room::feather1UseRedshirtOnVine() { - if (_vm->_awayMission.feather.vineState == 2) { + if (_awayMission->feather.vineState == 2) { _roomVar.feather.crewmanClimbingVine = OBJECT_REDSHIRT; feather1CrewmanClimbVine(); } else @@ -462,7 +462,7 @@ void Room::feather1UseRedshirtOnVine() { } void Room::feather1UseKirkOnVine() { - if (_vm->_awayMission.feather.vineState == 2) { + if (_awayMission->feather.vineState == 2) { _roomVar.feather.crewmanClimbingVine = OBJECT_KIRK; feather1CrewmanClimbVine(); } else @@ -472,7 +472,7 @@ void Room::feather1UseKirkOnVine() { // This was refactored, due to the similarity of the code for each crewman. Originally, the // following 5 vine-climbing functions were repeated for each crewman. void Room::feather1CrewmanClimbVine() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; if (_roomVar.feather.crewEscaped[_roomVar.feather.crewmanClimbingVine]) walkCrewmanC(_roomVar.feather.crewmanClimbingVine, VINE_TOP_X, VINE_TOP_Y, &Room::feather1ReachedVineToClimbDown); @@ -489,10 +489,10 @@ void Room::feather1ReachedVineToClimbUp() { } void Room::feather1ClimbedUpVine() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; _roomVar.feather.crewEscaped[_roomVar.feather.crewmanClimbingVine] = true; - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.feather.crewmanClimbingVine, "stndw"); + Common::String anim = getCrewmanAnimFilename(_roomVar.feather.crewmanClimbingVine, "stndw"); loadActorAnim2(_roomVar.feather.crewmanClimbingVine, anim, VINE_TOP_X, VINE_TOP_Y); switch (_roomVar.feather.crewmanClimbingVine) { @@ -519,10 +519,10 @@ void Room::feather1ReachedVineToClimbDown() { } void Room::feather1ClimbedDownVine() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; _roomVar.feather.crewEscaped[_roomVar.feather.crewmanClimbingVine] = false; - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.feather.crewmanClimbingVine, "stndw"); + Common::String anim = getCrewmanAnimFilename(_roomVar.feather.crewmanClimbingVine, "stndw"); loadActorAnim2(_roomVar.feather.crewmanClimbingVine, anim, VINE_BOT_X, VINE_BOT_Y); switch (_roomVar.feather.crewmanClimbingVine) { @@ -667,7 +667,7 @@ void Room::feather1LookAtRedshirt() { } void Room::feather1LookAtLeftVine() { - if (_vm->_awayMission.feather.vineState == 0) + if (_awayMission->feather.vineState == 0) showText(TX_FEA1N012); else showText(TX_FEA1N015); diff --git a/engines/startrek/rooms/feather3.cpp b/engines/startrek/rooms/feather3.cpp index ebdf48abf7..0b3a1ce537 100644 --- a/engines/startrek/rooms/feather3.cpp +++ b/engines/startrek/rooms/feather3.cpp @@ -97,20 +97,20 @@ void Room::feather3Tick1() { playVoc("FEA3LOOP"); playMidiMusicTracks(27); - if (!_vm->_awayMission.feather.tlaoxacTestPassed) { + if (!_awayMission->feather.tlaoxacTestPassed) { loadActorAnim(OBJECT_TLAOXAC, "s5r3as", 0x2e, 0xab); loadMapFile("feath3b"); - } else if (!_vm->_awayMission.feather.tookKnife) + } else if (!_awayMission->feather.tookKnife) loadActorAnim(OBJECT_KNIFE, "s5r3nf", 0x64, 0xb4); } void Room::feather3Tick40() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed) + if (!_awayMission->feather.tlaoxacTestPassed) showText(TX_SPEAKER_TLAOXAC, TX_FEA3_036); } void Room::feather3TouchedHotspot0() { // Tlaoxac prevents you from passing this point - if (!_vm->_awayMission.feather.tlaoxacTestPassed) + if (!_awayMission->feather.tlaoxacTestPassed) showText(TX_SPEAKER_TLAOXAC, TX_FEA3_035); } @@ -128,12 +128,12 @@ void Room::feather3UseMccoyOnTlaoxac() { } void Room::feather3UseRedshirtOnTlaoxac() { - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_STRAGEY, TX_FEA3_029); } void Room::feather3UseCrewmanOnLeftExit() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed) + if (!_awayMission->feather.tlaoxacTestPassed) showText(TX_SPEAKER_TLAOXAC, TX_FEA3_041); } @@ -142,14 +142,14 @@ void Room::feather3UseCommunicator() { } void Room::feather3UseSnakeOnKirk() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed && !_vm->_awayMission.redshirtDead) { - if (_roomVar.feather.showedSnakeToTlaoxac && _vm->_awayMission.feather.numRocksThrownAtTlaoxac == 0) { + if (!_awayMission->feather.tlaoxacTestPassed && !_awayMission->redshirtDead) { + if (_roomVar.feather.showedSnakeToTlaoxac && _awayMission->feather.numRocksThrownAtTlaoxac == 0) { showText(TX_SPEAKER_TLAOXAC, TX_FEA3_043); - _vm->_awayMission.feather.tlaoxacTestPassed = true; - _vm->_awayMission.feather.missionScore += 2; + _awayMission->feather.tlaoxacTestPassed = true; + _awayMission->feather.missionScore += 2; loadMapFile("feather3"); loadActorAnim(OBJECT_KNIFE, "s5r3nf", KNIFE_X, KNIFE_Y); - _vm->_awayMission.feather.field2e = true; + _awayMission->feather.field2e = true; } else showText(TX_FEA3N004); } @@ -163,26 +163,26 @@ void Room::feather3UseSnakeOnSpock() { } void Room::feather3UseSnakeOnRedshirt() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed && !_vm->_awayMission.redshirtDead) { - if (_roomVar.feather.showedSnakeToTlaoxac && _vm->_awayMission.feather.numRocksThrownAtTlaoxac == 0) { + if (!_awayMission->feather.tlaoxacTestPassed && !_awayMission->redshirtDead) { + if (_roomVar.feather.showedSnakeToTlaoxac && _awayMission->feather.numRocksThrownAtTlaoxac == 0) { walkCrewmanC(OBJECT_KIRK, 0x7c, 0xbc, &Room::feather3KirkReachedRedshirtWithSnake); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } else showText(TX_SPEAKER_STRAGEY, TX_FEA3_031); } } void Room::feather3KirkReachedRedshirtWithSnake() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_STRAGEY, TX_FEA3_034); showText(TX_SPEAKER_TLAOXAC, TX_FEA3_044); - _vm->_awayMission.feather.tlaoxacTestPassed = true; - _vm->_awayMission.feather.missionScore += 1; + _awayMission->feather.tlaoxacTestPassed = true; + _awayMission->feather.missionScore += 1; loadMapFile("feather3"); loadActorAnim(OBJECT_KNIFE, "s5r3nf", KNIFE_X, KNIFE_Y); - _vm->_awayMission.feather.field2e = true; + _awayMission->feather.field2e = true; } void Room::feather3UseSnakeOnMccoy() { @@ -190,12 +190,12 @@ void Room::feather3UseSnakeOnMccoy() { } void Room::feather3UseSnakeOnTlaoxac() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed && _vm->_awayMission.feather.numRocksThrownAtTlaoxac == 0) { + if (!_awayMission->feather.tlaoxacTestPassed && _awayMission->feather.numRocksThrownAtTlaoxac == 0) { showText(TX_SPEAKER_TLAOXAC, TX_FEA3_039); _roomVar.feather.showedSnakeToTlaoxac = true; - if (!_vm->_awayMission.feather.showedSnakeToTlaoxac) { - _vm->_awayMission.feather.showedSnakeToTlaoxac = true; - _vm->_awayMission.feather.missionScore += 1; + if (!_awayMission->feather.showedSnakeToTlaoxac) { + _awayMission->feather.showedSnakeToTlaoxac = true; + _awayMission->feather.missionScore += 1; } } } @@ -209,7 +209,7 @@ void Room::feather3UseKnifeOnMccoy() { } void Room::feather3UseKnifeOnRedshirt() { - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_STRAGEY, TX_FEA3_033); // BUGFIX: Speaker is Stragey, not Spock. } @@ -217,28 +217,28 @@ void Room::feather3UseRockOnTlaoxac() { if (_roomVar.feather.tlaoxacUnconscious) showText(TX_SPEAKER_MCCOY, TX_FEA3_009); else { - _vm->_awayMission.feather.numRocksThrownAtTlaoxac++; - _vm->_awayMission.disableInput = true; + _awayMission->feather.numRocksThrownAtTlaoxac++; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xac, 0xb4, &Room::feather3KirkReachedPositionToThrowRock); } } void Room::feather3KirkReachedPositionToThrowRock() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; loadActorAnim2(OBJECT_KIRK, "s5r3kt"); loadActorAnim(OBJECT_ROCK, "s5r3rt", 0x80, 0x7e); - _vm->_awayMission.timers[4] = 21; + _awayMission->timers[4] = 21; - if (_vm->_awayMission.feather.numRocksThrownAtTlaoxac == 2) { - _vm->_awayMission.feather.knockedOutTlaoxac = true; - _vm->_awayMission.feather.missionScore -= 2; + if (_awayMission->feather.numRocksThrownAtTlaoxac == 2) { + _awayMission->feather.knockedOutTlaoxac = true; + _awayMission->feather.missionScore -= 2; loadActorAnimC(OBJECT_TLAOXAC, "s5r3ad", -1, -1, &Room::feather3TlaoxacKnockedOutFromRockThrow); playVoc("ROCKFACE"); - _vm->_awayMission.timers[2] = 24; + _awayMission->timers[2] = 24; } else { loadActorAnim2(OBJECT_TLAOXAC, "s5r3ah"); playVoc("ROCKFACE"); - _vm->_awayMission.timers[3] = 97; + _awayMission->timers[3] = 97; } } @@ -247,24 +247,24 @@ void Room::feather3Timer4Expired() { } void Room::feather3Timer2Expired() { - if (!_vm->_awayMission.feather.tookKnife) + if (!_awayMission->feather.tookKnife) loadActorAnim(OBJECT_KNIFE, "s5r3nf", KNIFE_X, KNIFE_Y); } void Room::feather3Timer3Expired() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); } void Room::feather3TlaoxacKnockedOutFromRockThrow() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_FEA3N006); - if (!_vm->_awayMission.feather.tookKnife && !_vm->_awayMission.feather.field2e) + if (!_awayMission->feather.tookKnife && !_awayMission->feather.field2e) showText(TX_SPEAKER_MCCOY, TX_FEA3_008); - _vm->_awayMission.feather.tlaoxacTestPassed = true; + _awayMission->feather.tlaoxacTestPassed = true; _roomVar.feather.tlaoxacUnconscious = true; loadMapFile("feather3"); } @@ -282,15 +282,15 @@ void Room::feather3TalkToSpock() { } void Room::feather3TalkToRedshirt() { - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_STRAGEY, TX_FEA3_032); } void Room::feather3TalkToTlaoxac() { - if (!_vm->_awayMission.feather.tlaoxacTestPassed && !_vm->_awayMission.redshirtDead && !_roomVar.feather.tlaoxacUnconscious) { + if (!_awayMission->feather.tlaoxacTestPassed && !_awayMission->redshirtDead && !_roomVar.feather.tlaoxacUnconscious) { if (!_roomVar.feather.showedSnakeToTlaoxac) showText(TX_SPEAKER_TLAOXAC, TX_FEA3_038); - else if (_vm->_awayMission.feather.numRocksThrownAtTlaoxac != 0) + else if (_awayMission->feather.numRocksThrownAtTlaoxac != 0) showText(TX_SPEAKER_TLAOXAC, TX_FEA3_038); else { const TextRef choices[] = { @@ -306,11 +306,11 @@ void Room::feather3TalkToTlaoxac() { showText(TX_SPEAKER_TLAOXAC, TX_FEA3_042); else if (choice == 2) { // Accidentally insulted Quetzecoatl showText(TX_SPEAKER_TLAOXAC, TX_FEA3_040); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnimC(OBJECT_TLAOXAC, "s5r3aj", -1, -1, &Room::feather3TlaoxacKilledRedshirt); playMidiMusicTracks(2); loadActorAnim(OBJECT_REDSHIRT, "s5r3rd"); - _vm->_awayMission.redshirtDead = true; + _awayMission->redshirtDead = true; } else showText(TX_DIALOG_ERROR); } @@ -318,7 +318,7 @@ void Room::feather3TalkToTlaoxac() { } void Room::feather3TlaoxacKilledRedshirt() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::feather3UseMTricorderOnTlaoxac() { @@ -329,12 +329,12 @@ void Room::feather3UseMTricorderOnTlaoxac() { } void Room::feather3UseMedkitOnTlaoxac() { - if (_vm->_awayMission.feather.knockedOutTlaoxac) + if (_awayMission->feather.knockedOutTlaoxac) showText(TX_SPEAKER_MCCOY, TX_FEA3_012); } void Room::feather3UseMedkitOnRedshirt() { - if (_vm->_awayMission.redshirtDead) { + if (_awayMission->redshirtDead) { // BUGFIX: Original voice clip (TX_FEA3_030) is someone who's clearly not Kelley // saying "he's dead, Jim". He recorded the line a few other times, so use one of // those instead. @@ -359,14 +359,14 @@ void Room::feather3UseSTricorderAnywhere() { } void Room::feather3GetKnife() { - _vm->_awayMission.feather.missionScore += 1; + _awayMission->feather.missionScore += 1; walkCrewmanC(OBJECT_KIRK, 0x57, 0xb4, &Room::feather3ReachedKnife); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::feather3ReachedKnife() { loadActorAnimC(OBJECT_KIRK, "s5r1kg", -1, -1, &Room::feather3PickedUpKnife); - _vm->_awayMission.timers[1] = 20; + _awayMission->timers[1] = 20; } void Room::feather3Timer1Expired() { @@ -375,27 +375,27 @@ void Room::feather3Timer1Expired() { } void Room::feather3PickedUpKnife() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_FEA3N010); } void Room::feather3LookAtSpock() { - if (!_vm->_awayMission.feather.knockedOutTlaoxac && !_vm->_awayMission.feather.tlaoxacTestPassed) + if (!_awayMission->feather.knockedOutTlaoxac && !_awayMission->feather.tlaoxacTestPassed) showText(TX_FEA3N002); else // ENHANCEMENT: Originally did nothing here. Fall back to default behaviour in the engine. - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->rdfStillDoDefaultAction = true; } void Room::feather3LookAtRedshirt() { - if (_vm->_awayMission.redshirtDead) + if (_awayMission->redshirtDead) showText(TX_FEA3N005); else showText(TX_FEA3N012); } void Room::feather3LookAtTlaoxac() { - if (_vm->_awayMission.feather.knockedOutTlaoxac) + if (_awayMission->feather.knockedOutTlaoxac) showText(TX_FEA3N003); else showText(TX_FEA3N007); diff --git a/engines/startrek/rooms/feather5.cpp b/engines/startrek/rooms/feather5.cpp index a8ca002aa2..f1da4633f3 100644 --- a/engines/startrek/rooms/feather5.cpp +++ b/engines/startrek/rooms/feather5.cpp @@ -118,16 +118,16 @@ void Room::feather5Tick1() { playVoc("FEA5LOOP"); playMidiMusicTracks(29); - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) loadActorAnim(OBJECT_MONSTER, "s5r5os", 0x4e, 0xa4); else loadMapFile("feath5b"); } void Room::feather5TouchedHotspot0() { // Approached the log - if (!_vm->_awayMission.feather.waterMonsterRetreated) { + if (!_awayMission->feather.waterMonsterRetreated) { showText(TX_SPEAKER_SPOCK, TX_FEA5_005); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_STRAGEY, TX_FEA5_033); } } @@ -145,9 +145,9 @@ void Room::feather5UseRedshirtOnFern() { } void Room::feather5UseRedshirtOnLeftExit() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) { + if (!_awayMission->feather.waterMonsterRetreated) { showText(TX_SPEAKER_STRAGEY, TX_FEA5_034); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadMapFile("feath5b"); walkCrewmanC(OBJECT_REDSHIRT, 0x8f, 0x64, &Room::feather5RedshirtReachedLog); } @@ -158,22 +158,22 @@ void Room::feather5RedshirtReachedLog() { playVoc("TENTICL2"); loadActorAnim(OBJECT_MONSTER, "s5r5oh", 0x4e, 0xa4); loadActorAnimC(OBJECT_REDSHIRT, "s5r5ol", 0x8f, 0x64, &Room::feather5RedshirtDeathFinished); - _vm->_awayMission.feather.waterMonsterRetreated = true; - _vm->_awayMission.redshirtDead = true; + _awayMission->feather.waterMonsterRetreated = true; + _awayMission->redshirtDead = true; } void Room::feather5RedshirtDeathFinished() { loadActorStandAnim(OBJECT_REDSHIRT); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::feather5UseSpockOnLeftExit() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) showText(TX_SPEAKER_SPOCK, TX_FEA5_002); } void Room::feather5UseMccoyOnLeftExit() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) showText(TX_SPEAKER_MCCOY, TX_FEA5_015); } @@ -231,11 +231,11 @@ void Room::feather5GetFern() { } void Room::feather5UseKnifeOnFern() { - if (_vm->_awayMission.feather.gotFern) + if (_awayMission->feather.gotFern) showText(TX_FEA5N015); else { walkCrewmanC(OBJECT_KIRK, 0x106, 0x8a, &Room::feather5ReachedFern); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } } @@ -244,18 +244,18 @@ void Room::feather5ReachedFern() { } void Room::feather5PickedUpFern() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); giveItem(OBJECT_IFERN); - _vm->_awayMission.feather.gotFern = true; + _awayMission->feather.gotFern = true; } void Room::feather5UseFernOnMonster() { // BUG: Infinite score mechanism. Just keep throwing ferns into the water. - _vm->_awayMission.feather.missionScore += 2; + _awayMission->feather.missionScore += 2; walkCrewmanC(OBJECT_KIRK, 0x106, 0x8a, &Room::feather5ReachedPositionToUseFern); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::feather5ReachedPositionToUseFern() { @@ -264,16 +264,16 @@ void Room::feather5ReachedPositionToUseFern() { } void Room::feather5DoneThrowingFern() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); loseItem(OBJECT_IFERN); - _vm->_awayMission.feather.gotFern = false; + _awayMission->feather.gotFern = false; } void Room::feather5FernFellIntoWater() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) { - _vm->_awayMission.feather.waterMonsterRetreated = true; - _vm->_awayMission.timers[1] = 20; + if (!_awayMission->feather.waterMonsterRetreated) { + _awayMission->feather.waterMonsterRetreated = true; + _awayMission->timers[1] = 20; loadActorStandAnim(OBJECT_MONSTER); loadMapFile("feath5b"); } @@ -351,24 +351,24 @@ void Room::feather5LookAtSpock() { } void Room::feather5LookAtKirk() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) showText(TX_FEA5N001); else // ENHANCEMENT: Fall back to default behaviour instead of doing nothing - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->rdfStillDoDefaultAction = true; } void Room::feather5LookAtMccoy() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) showText(TX_FEA5N002); else // ENHANCEMENT: Fall back to default behaviour instead of doing nothing - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->rdfStillDoDefaultAction = true; } void Room::feather5LookAtRedshirt() { - if (!_vm->_awayMission.feather.waterMonsterRetreated) + if (!_awayMission->feather.waterMonsterRetreated) showText(TX_FEA5N004); else // ENHANCEMENT: Fall back to default behaviour instead of doing nothing - _vm->_awayMission.rdfStillDoDefaultAction = true; + _awayMission->rdfStillDoDefaultAction = true; } void Room::feather5TalkToMccoy() { @@ -384,7 +384,7 @@ void Room::feather5TalkToRedshirt() { } void Room::feather5UseMTricorderOnWater() { - if (_vm->_awayMission.feather.waterMonsterRetreated) + if (_awayMission->feather.waterMonsterRetreated) mccoyScan(DIR_W, TX_FEA5_011); else mccoyScan(DIR_W, TX_FEA5_014); @@ -403,7 +403,7 @@ void Room::feather5UseSTricorderAnywhere() { } void Room::feather5UseSTricorderOnWater() { - if (_vm->_awayMission.feather.waterMonsterRetreated) + if (_awayMission->feather.waterMonsterRetreated) spockScan(DIR_W, TX_FEA5_031); else spockScan(DIR_W, TX_FEA5_030); diff --git a/engines/startrek/rooms/feather6.cpp b/engines/startrek/rooms/feather6.cpp index 204d349459..8ae54d1353 100644 --- a/engines/startrek/rooms/feather6.cpp +++ b/engines/startrek/rooms/feather6.cpp @@ -126,7 +126,7 @@ void Room::feather6UseRedshirtOnCrystals() { void Room::feather6UseRockOnStalactites() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0x94, 0x97, &Room::feather6ReachedPositionToThrowRock); } @@ -143,21 +143,21 @@ void Room::feather6DoneThrowingRock() { } void Room::feather6KirkDiedFromStalactites() { - _vm->_awayMission.feather.missionScore -= 3; - _vm->_awayMission.feather.diedFromStalactites = true; - _vm->_awayMission.disableInput = false; + _awayMission->feather.missionScore -= 3; + _awayMission->feather.diedFromStalactites = true; + _awayMission->disableInput = false; showText(TX_FEA6N000); showText(TX_FEA6N004); loadRoomIndex(7, 5); } void Room::feather6UseRockOnCrystals() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0x9a, 0x97, &Room::feather6ReachedCrystalsWithRock); } void Room::feather6ReachedCrystalsWithRock() { - _vm->_awayMission.timers[2] = 174; + _awayMission->timers[2] = 174; loadActorAnim2(OBJECT_STALACTITES, "s5r6tm"); if (!_roomVar.feather.usedRockOnCrystalsOnce) { _roomVar.feather.usedRockOnCrystalsOnce = true; @@ -167,12 +167,12 @@ void Room::feather6ReachedCrystalsWithRock() { } void Room::feather6Tick() { - if (_vm->_awayMission.timers[2] == 55 || _vm->_awayMission.timers[2] == 89 || _vm->_awayMission.timers[2] == 119) + if (_awayMission->timers[2] == 55 || _awayMission->timers[2] == 89 || _awayMission->timers[2] == 119) playSoundEffectIndex(SND_BLANK_0b); } void Room::feather6HitCrystalsWithRockFirstTime() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_SPEAKER_KIRK, TX_FEA6_001); } @@ -302,7 +302,7 @@ void Room::feather6TalkToRedshirt() { } void Room::feather6TalkToSpock() { - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_SPOCK, TX_FEA6_035); else { showText(TX_SPEAKER_SPOCK, TX_FEA6_038); @@ -361,19 +361,19 @@ void Room::feather6GetCrystals() { } void Room::feather6UseKnifeOnCrystals() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0x9a, 0x97, &Room::feather6ReachedCrystalsWithKnife); } void Room::feather6ReachedCrystalsWithKnife() { loadActorAnimC(OBJECT_KIRK, "s5r6kp", -1, -1, &Room::feather6DoneCuttingCrystals); - _vm->_awayMission.timers[4] = 122; + _awayMission->timers[4] = 122; } void Room::feather6DoneCuttingCrystals() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.feather.missionScore += 1; + _awayMission->feather.missionScore += 1; giveItem(OBJECT_ICRYSTAL); showText(TX_FEA6N017); } diff --git a/engines/startrek/rooms/feather7.cpp b/engines/startrek/rooms/feather7.cpp index 3527014cda..1641ddfc1e 100644 --- a/engines/startrek/rooms/feather7.cpp +++ b/engines/startrek/rooms/feather7.cpp @@ -43,22 +43,22 @@ extern const int feather7NumActions = sizeof(feather7ActionList) / sizeof(RoomAc void Room::feather7Tick1() { playVoc("FEA7LOOP"); playMidiMusicTracks(33); - _vm->_awayMission.disableInput = 2; + _awayMission->disableInput = 2; loadActorAnim(OBJECT_QUETZECOATL, "s5r7qn", 0x106, 0x98); } void Room::feather7Tick40() { - if (_vm->_awayMission.feather.diedFromStalactites) + if (_awayMission->feather.diedFromStalactites) showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_017); showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_022); - if (_vm->_awayMission.redshirtDead) + if (_awayMission->redshirtDead) showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_021); // BUGFIX: Show this even if redshirt isn't dead (he wishes you wouldn't have knocked // out Tlaoxac) - if (_vm->_awayMission.feather.knockedOutTlaoxac) + if (_awayMission->feather.knockedOutTlaoxac) showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_023); showText(TX_SPEAKER_QUETZECOATL, TX_FEA7_027); @@ -146,19 +146,19 @@ void Room::feather7KirkSatDown() { } void Room::feather7ReadyToBeamOut() { - if (_vm->_awayMission.redshirtDead) + if (_awayMission->redshirtDead) showText(TX_SPEAKER_KIRK, TX_FEA7_002); else { - _vm->_awayMission.feather.missionScore += 1; + _awayMission->feather.missionScore += 1; showText(TX_SPEAKER_KIRK, TX_FEA7_001); } if (!_roomVar.feather.insultedQuetzecoatl) - _vm->_awayMission.feather.missionScore += 2; - _vm->_awayMission.feather.missionScore += 4; + _awayMission->feather.missionScore += 2; + _awayMission->feather.missionScore += 4; loadActorAnim2(OBJECT_QUETZECOATL, "s5r7qt"); - endMission(_vm->_awayMission.feather.missionScore, 0x13, 0); + endMission(_awayMission->feather.missionScore, 0x13, 0); } } diff --git a/engines/startrek/rooms/love0.cpp b/engines/startrek/rooms/love0.cpp index 49ba136b60..1ad949bacc 100644 --- a/engines/startrek/rooms/love0.cpp +++ b/engines/startrek/rooms/love0.cpp @@ -36,17 +36,17 @@ void Room::love0Tick1() { // BUGFIX: moved this out of the if statement below. playVoc("LOV0LOOP"); - if (!_vm->_awayMission.love.alreadyStartedMission) { - _vm->_awayMission.love.canister1 = CANTYPE_O2; - _vm->_awayMission.love.canister2 = CANTYPE_H2; - _vm->_awayMission.love.alreadyStartedMission = true; + if (!_awayMission->love.alreadyStartedMission) { + _awayMission->love.canister1 = CANTYPE_O2; + _awayMission->love.canister2 = CANTYPE_H2; + _awayMission->love.alreadyStartedMission = true; } - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; loadActorAnim(OBJECT_DOOR2, "s3r0d2a", 0xe6, 0x80, 0); loadActorAnim(OBJECT_DOOR1, "s3r0d1a", 0x123, 0x8d, 0); @@ -59,10 +59,10 @@ void Room::love0Tick10() { } void Room::love0WalkToDoor2() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = 2; walkCrewman(OBJECT_KIRK, 0xe6, 0x81, 4); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love0OpenDoor2() { @@ -79,7 +79,7 @@ void Room::love0ReachedDoor2() { } void Room::love0WalkToDoor1() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = 1; walkCrewman(OBJECT_KIRK, 0x125, 0x8d, 5); } @@ -150,7 +150,7 @@ void Room::love0TalkToRedshirt() { } void Room::love0UseMTricorderAnywhere() { - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) mccoyScan(DIR_N, TX_LOV0_008, false); else mccoyScan(DIR_N, TX_LOV0_006, false); @@ -180,9 +180,9 @@ void Room::love0UseSpockOnConsole() { strcpy(_roomVar.love.consoleAnimation, "susemn"); walkCrewman(_roomVar.love.consoleCrewman, 0x9a, 0x9a, 2); - if (!_vm->_awayMission.love.spockAccessedConsole) { - _vm->_awayMission.love.spockAccessedConsole = true; - _vm->_awayMission.love.missionScore += 4; + if (!_awayMission->love.spockAccessedConsole) { + _awayMission->love.spockAccessedConsole = true; + _awayMission->love.missionScore += 4; } } @@ -192,7 +192,7 @@ void Room::love0SpockReachedConsole() { void Room::love0SpockAccessedConsole() { playVoc("V6KIRKTY"); - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) love0InteractWithConsole(); else { showText(TX_SPEAKER_COMPUTER, TX_COMPU188); @@ -211,12 +211,12 @@ void Room::love0MccoyReachedConsole() { void Room::love0MccoyAccessedConsole() { playVoc("V6KIRKTY"); - if (!_vm->_awayMission.love.mccoyAccessedConsole) { - _vm->_awayMission.love.mccoyAccessedConsole = true; - _vm->_awayMission.love.missionScore += 2; + if (!_awayMission->love.mccoyAccessedConsole) { + _awayMission->love.mccoyAccessedConsole = true; + _awayMission->love.missionScore += 2; } - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) love0InteractWithConsole(); else { if (!_roomVar.love.heardSummaryOfVirus) { @@ -228,7 +228,7 @@ void Room::love0MccoyAccessedConsole() { showText(TX_SPEAKER_MCCOY, TX_LOV0_023); showText(TX_SPEAKER_KIRK, TX_LOV0_004); showText(TX_SPEAKER_MCCOY, TX_LOV0_009); - _vm->_awayMission.love.knowAboutVirus = true; + _awayMission->love.knowAboutVirus = true; } } diff --git a/engines/startrek/rooms/love1.cpp b/engines/startrek/rooms/love1.cpp index 612cd8cd8c..be7ffc97b6 100644 --- a/engines/startrek/rooms/love1.cpp +++ b/engines/startrek/rooms/love1.cpp @@ -46,18 +46,18 @@ namespace StarTrek { void Room::love1Tick1() { playVoc("LOV1LOOP"); - if (_vm->_awayMission.love.freezerOpen) + if (_awayMission->love.freezerOpen) loadActorAnim(OBJECT_FREEZER, "s3r2d4o", 0x67, 0x8d, 0); - if (_vm->_awayMission.love.chamberHasDish) + if (_awayMission->love.chamberHasDish) loadActorAnim(OBJECT_CHAMBER, "s3r2d5o", 0xb4, 0x75, 0); else loadActorAnim(OBJECT_CHAMBER, "s3r2d5c", 0xb4, 0x75, 0); - if (_vm->_awayMission.love.chamberHasDish) + if (_awayMission->love.chamberHasDish) loadActorAnim(OBJECT_DISH_IN_CHAMBER, "dishes", 0xb4, 0x71, 0); - switch (_vm->_awayMission.love.bottleInNozzle) { + switch (_awayMission->love.bottleInNozzle) { case BOTTLETYPE_N2O: strcpy(_roomVar.love.bottleAnimation, "btle1"); _roomVar.love.itemInNozzle = OBJECT_IN2O; @@ -83,11 +83,11 @@ common: break; } - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; loadActorAnim(OBJECT_DOOR3, "s3r2d3a", 0xdb, 0x7e, 0); loadActorAnim(OBJECT_DOOR1, "s3r2d1a", 0, 0, 0); @@ -98,7 +98,7 @@ common: } void Room::love1WalkToDoor3() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = true; walkCrewman(OBJECT_KIRK, 0xd9, 0x81, 15); } @@ -118,7 +118,7 @@ void Room::love1ReachedDoor3() { } void Room::love1WalkToDoor1() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = true; walkCrewman(OBJECT_KIRK, 0x42, 0x97, 16); } @@ -138,7 +138,7 @@ void Room::love1ReachedDoor1() { } void Room::love1WalkToDoor2() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = true; walkCrewman(OBJECT_KIRK, 0x79, 0x85, 17); } @@ -202,7 +202,7 @@ void Room::love1LookAtDistillator() { } void Room::love1LookAtChamber() { - if (_vm->_awayMission.love.chamberHasCure) + if (_awayMission->love.chamberHasCure) showText(TX_LOV1N013); else showText(TX_LOV1N014); @@ -213,7 +213,7 @@ void Room::love1LookAtReplicator() { } void Room::love1LookAtFreezer() { - if (_vm->_awayMission.love.freezerOpen) + if (_awayMission->love.freezerOpen) showText(TX_LOV1N023); else showText(TX_LOV1N018); @@ -245,7 +245,7 @@ void Room::love1UseMTricorderOnDishes() { } void Room::love1UseMTricorderAnywhere() { - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) mccoyScan(DIR_S, TX_LOV1_009, false); else mccoyScan(DIR_S, TX_LOV1_010, false); @@ -281,7 +281,7 @@ void Room::love1GetFreezer() { } void Room::love1KirkReachedFreezer() { - if (_vm->_awayMission.love.freezerOpen) + if (_awayMission->love.freezerOpen) loadActorAnim2(OBJECT_KIRK, "kusehw", -1, -1, 9); else showText(TX_LOV1N010); @@ -293,7 +293,7 @@ void Room::love1KirkGotVirusCulture() { } void Room::love1GetFromChamber() { - if (!_vm->_awayMission.love.chamberHasDish) + if (!_awayMission->love.chamberHasDish) showText(TX_LOV1N009); else walkCrewman(OBJECT_KIRK, 0xb5, 0x8c, 8); @@ -304,13 +304,13 @@ void Room::love1KirkReachedChamber() { } void Room::love1KirkGotCureSample() { - if (_vm->_awayMission.love.chamberHasCure) { + if (_awayMission->love.chamberHasCure) { giveItem(OBJECT_ISAMPLE); showText(TX_LOV1N035); // BUGFIX: after removing the cure, unset this variable. // Otherwise, any normal dish inserted afterward automagically becomes a cure. - _vm->_awayMission.love.chamberHasCure = false; + _awayMission->love.chamberHasCure = false; } else { giveItem(OBJECT_IDISHES); showText(TX_LOV1N006); @@ -319,7 +319,7 @@ void Room::love1KirkGotCureSample() { loadActorStandAnim(OBJECT_DISH_IN_CHAMBER); loadActorAnim2(OBJECT_CHAMBER, "s3r2d6", 0xb4, 0x75, 0); playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.love.chamberHasDish = false; + _awayMission->love.chamberHasDish = false; } void Room::love1GetFromNozzle() { @@ -327,14 +327,14 @@ void Room::love1GetFromNozzle() { } void Room::love1KirkReachedNozzleToGet() { - if (_vm->_awayMission.love.bottleInNozzle == 0) + if (_awayMission->love.bottleInNozzle == 0) showText(TX_LOV1N011); else loadActorAnim2(OBJECT_KIRK, "kusemn", -1, -1, 11); } void Room::love1KirkGotBottleFromNozzle() { - switch (_vm->_awayMission.love.bottleInNozzle) { + switch (_awayMission->love.bottleInNozzle) { case BOTTLETYPE_N2O: giveItem(OBJECT_IN2O); break; @@ -352,44 +352,44 @@ void Room::love1KirkGotBottleFromNozzle() { break; } - _vm->_awayMission.love.bottleInNozzle = BOTTLETYPE_NONE; + _awayMission->love.bottleInNozzle = BOTTLETYPE_NONE; loadActorStandAnim(OBJECT_BOTTLE); showText(TX_LOV1N007); _roomVar.love.itemInNozzle = 0; } void Room::love1UseN2OOnNozzle() { - if (_vm->_awayMission.love.bottleInNozzle == BOTTLETYPE_NONE) { + if (_awayMission->love.bottleInNozzle == BOTTLETYPE_NONE) { _roomVar.love.itemInNozzle = OBJECT_IN2O; strcpy(_roomVar.love.bottleAnimation, "btle1"); - _vm->_awayMission.love.bottleInNozzle = BOTTLETYPE_N2O; + _awayMission->love.bottleInNozzle = BOTTLETYPE_N2O; walkCrewman(OBJECT_KIRK, 0xa6, 0x90, 3); } } void Room::love1UseH2OOnNozzle() { - if (_vm->_awayMission.love.bottleInNozzle == BOTTLETYPE_NONE) { + if (_awayMission->love.bottleInNozzle == BOTTLETYPE_NONE) { _roomVar.love.itemInNozzle = OBJECT_IH2O; strcpy(_roomVar.love.bottleAnimation, "btle3"); - _vm->_awayMission.love.bottleInNozzle = BOTTLETYPE_H2O; + _awayMission->love.bottleInNozzle = BOTTLETYPE_H2O; walkCrewman(OBJECT_KIRK, 0xa6, 0x90, 3); } } void Room::love1UseNH3OnNozzle() { - if (_vm->_awayMission.love.bottleInNozzle == BOTTLETYPE_NONE) { + if (_awayMission->love.bottleInNozzle == BOTTLETYPE_NONE) { _roomVar.love.itemInNozzle = OBJECT_INH3; strcpy(_roomVar.love.bottleAnimation, "btle2"); - _vm->_awayMission.love.bottleInNozzle = BOTTLETYPE_NH3; + _awayMission->love.bottleInNozzle = BOTTLETYPE_NH3; walkCrewman(OBJECT_KIRK, 0xa6, 0x90, 3); } } void Room::love1UseRLGOnNozzle() { - if (_vm->_awayMission.love.bottleInNozzle == BOTTLETYPE_NONE) { + if (_awayMission->love.bottleInNozzle == BOTTLETYPE_NONE) { _roomVar.love.itemInNozzle = OBJECT_IRLG; strcpy(_roomVar.love.bottleAnimation, "btle4"); - _vm->_awayMission.love.bottleInNozzle = BOTTLETYPE_RLG; + _awayMission->love.bottleInNozzle = BOTTLETYPE_RLG; walkCrewman(OBJECT_KIRK, 0xa6, 0x90, 3); } } @@ -420,10 +420,10 @@ void Room::love1UseMccoyOnReplicator() { } void Room::love1MccoyReachedReplicator() { - if (_vm->_awayMission.love.bottleInNozzle == BOTTLETYPE_NONE) { + if (_awayMission->love.bottleInNozzle == BOTTLETYPE_NONE) { showText(TX_SPEAKER_MCCOY, TX_LOV1_021); walkCrewman(OBJECT_MCCOY, 0xbf, 0x98, 0); - } else if (!_vm->_awayMission.love.chamberHasDish) { + } else if (!_awayMission->love.chamberHasDish) { showText(TX_SPEAKER_MCCOY, TX_LOV1_015); walkCrewman(OBJECT_MCCOY, 0xbf, 0x98, 0); } else @@ -450,7 +450,7 @@ void Room::love1ChamberClosed() { void Room::love1ChamberOpened() { loadActorAnim(OBJECT_DISH_IN_CHAMBER, "dishes", 0xb4, 0x71, 0); showText(TX_SPEAKER_MCCOY, TX_LOV1_018); - _vm->_awayMission.love.chamberHasCure = true; + _awayMission->love.chamberHasCure = true; } void Room::love1UseAnythingOnChamber() { @@ -462,7 +462,7 @@ void Room::love1UseDishesOnChamber() { } void Room::love1KirkReachedChamberToPut() { - if (_vm->_awayMission.love.chamberHasDish) + if (_awayMission->love.chamberHasDish) showText(TX_SPEAKER_MCCOY, TX_LOV1_014); // TODO: test else { loadActorAnim(OBJECT_CHAMBER, "s3r2d5", 0xb4, 0x75, 1); @@ -477,7 +477,7 @@ void Room::love1ChamberOpenedForDish() { void Room::love1KirkPutDishInChamber() { loadActorAnim(OBJECT_DISH_IN_CHAMBER, "dishes", 0xb4, 0x71, 0); loseItem(OBJECT_IDISHES); - _vm->_awayMission.love.chamberHasDish = true; + _awayMission->love.chamberHasDish = true; } void Room::love1UseInsulationOnDistillator() { @@ -492,9 +492,9 @@ void Room::love1KirkReachedDistillator() { void Room::love1KirkGotPolyberylcarbonate() { // Result of using insulation on distillator showText(TX_LOV1N034); - if (!_vm->_awayMission.love.gotPolyberylcarbonate) { - _vm->_awayMission.love.gotPolyberylcarbonate = true; - _vm->_awayMission.love.missionScore++; + if (!_awayMission->love.gotPolyberylcarbonate) { + _awayMission->love.gotPolyberylcarbonate = true; + _awayMission->love.missionScore++; } giveItem(OBJECT_IPBC); @@ -506,7 +506,7 @@ void Room::love1UseKirkOnFreezer() { _roomVar.love.crewmanUsingFreezerRetX = 0x96; _roomVar.love.crewmanUsingDevice = OBJECT_KIRK; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x71, 0x8e, 7); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseRedshirtOnFreezer() { @@ -514,7 +514,7 @@ void Room::love1UseRedshirtOnFreezer() { _roomVar.love.crewmanUsingFreezerRetX = 0x95; _roomVar.love.crewmanUsingDevice = OBJECT_REDSHIRT; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x71, 0x8e, 7); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseSpockOnFreezer() { @@ -522,7 +522,7 @@ void Room::love1UseSpockOnFreezer() { _roomVar.love.crewmanUsingFreezerRetX = 0x61; _roomVar.love.crewmanUsingDevice = OBJECT_SPOCK; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x71, 0x8e, 7); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseMccoyOnFreezer() { @@ -530,26 +530,26 @@ void Room::love1UseMccoyOnFreezer() { _roomVar.love.crewmanUsingFreezerRetX = 0xbf; _roomVar.love.crewmanUsingDevice = OBJECT_MCCOY; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x71, 0x8e, 7); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1CrewmanReachedFreezer() { - Common::String useAnim = _vm->getCrewmanAnimFilename(_roomVar.love.crewmanUsingDevice, "usehw"); + Common::String useAnim = getCrewmanAnimFilename(_roomVar.love.crewmanUsingDevice, "usehw"); loadActorAnim2(_roomVar.love.crewmanUsingDevice, useAnim, -1, -1, 16); } void Room::love1CrewmanOpenedOrClosedFreezer() { - if (_vm->_awayMission.love.freezerOpen) + if (_awayMission->love.freezerOpen) loadActorAnim(OBJECT_FREEZER, "s3r2d4a", 0x67, 0x8d, 0); else loadActorAnim(OBJECT_FREEZER, "s3r2d4", 0x67, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.love.freezerOpen = !_vm->_awayMission.love.freezerOpen; + _awayMission->love.freezerOpen = !_awayMission->love.freezerOpen; walkCrewman(_roomVar.love.crewmanUsingDevice, _roomVar.love.crewmanUsingFreezerRetX, _roomVar.love.crewmanUsingFreezerRetY, 0); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::love1UseAnythingOnFreezer() { @@ -590,30 +590,30 @@ void Room::love1FinishedUsingArbitraryItemOnDistillator() { void Room::love1UseKirkOnLadder() { _roomVar.love.crewmanUsingDevice = OBJECT_KIRK; - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; + _awayMission->crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x102, 0x89, 1); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseSpockOnLadder() { _roomVar.love.crewmanUsingDevice = OBJECT_SPOCK; - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; + _awayMission->crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x102, 0x89, 1); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseMccoyOnLadder() { _roomVar.love.crewmanUsingDevice = OBJECT_MCCOY; - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; + _awayMission->crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x102, 0x89, 1); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1UseRedshirtOnLadder() { _roomVar.love.crewmanUsingDevice = OBJECT_REDSHIRT; - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; + _awayMission->crewDirectionsAfterWalk[_roomVar.love.crewmanUsingDevice] = DIR_N; walkCrewman(_roomVar.love.crewmanUsingDevice, 0x102, 0x89, 1); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love1CrewmanReachedLadder() { @@ -624,13 +624,13 @@ void Room::love1CrewmanReachedLadder() { TX_SPEAKER_FERRIS }; - if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas || _vm->_awayMission.love.romulansUnconsciousFromVirus) // Romulans unconscious + if (_awayMission->love.romulansUnconsciousFromLaughingGas || _awayMission->love.romulansUnconsciousFromVirus) // Romulans unconscious loadRoomIndex(4, 3); else { // Romulans still conscious, they shoot you loadActorAnim(OBJECT_PHASERSHOT, "s3r2s2", 0xf3, 0x89, 0); playSoundEffectIndex(SND_PHASSHOT); - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.love.crewmanUsingDevice, "killw"); + Common::String anim = getCrewmanAnimFilename(_roomVar.love.crewmanUsingDevice, "killw"); loadActorAnim(_roomVar.love.crewmanUsingDevice, anim, 0x102, 0x89, 6); _roomVar.love.dyingSpeaker = speakers[_roomVar.love.crewmanUsingDevice]; } @@ -638,9 +638,9 @@ void Room::love1CrewmanReachedLadder() { void Room::love1CrewmanDiedFromPhaser() { if (_roomVar.love.crewmanUsingDevice == OBJECT_REDSHIRT) { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_FERRIS, TX_LOV1_024); - _vm->_awayMission.redshirtDead = true; + _awayMission->redshirtDead = true; } else { showText(_roomVar.love.dyingSpeaker, TX_LOV1_025); showGameOverMenu(); @@ -649,11 +649,11 @@ void Room::love1CrewmanDiedFromPhaser() { // Romulans fire a "warning shot" when you go to the right part of the room. void Room::love1TouchedHotspot0() { - if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas || _vm->_awayMission.love.romulansUnconsciousFromVirus) + if (_awayMission->love.romulansUnconsciousFromLaughingGas || _awayMission->love.romulansUnconsciousFromVirus) return; loadActorAnim(OBJECT_PHASERSHOT, "s3r2s1", 0xf3, 0x89, 0); playSoundEffectIndex(SND_PHASSHOT); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_FERRIS, TX_LOV1_028); } diff --git a/engines/startrek/rooms/love2.cpp b/engines/startrek/rooms/love2.cpp index 61feac9921..5a0d802b0d 100644 --- a/engines/startrek/rooms/love2.cpp +++ b/engines/startrek/rooms/love2.cpp @@ -49,7 +49,7 @@ void Room::love2Tick1() { char canName[10]; - switch (_vm->_awayMission.love.canister1) { + switch (_awayMission->love.canister1) { case CANTYPE_O2: strcpy(canName, "o2can"); break; @@ -63,10 +63,10 @@ void Room::love2Tick1() { break; } - if (_vm->_awayMission.love.canister1 >= 1 && _vm->_awayMission.love.canister1 <= 3) + if (_awayMission->love.canister1 >= 1 && _awayMission->love.canister1 <= 3) loadActorAnim(OBJECT_CAN1, canName, 0xa7, 0xae, 0); - switch (_vm->_awayMission.love.canister2) { + switch (_awayMission->love.canister2) { case CANTYPE_O2: strcpy(canName, "o2can"); break; @@ -80,30 +80,30 @@ void Room::love2Tick1() { break; } - if (_vm->_awayMission.love.canister2 >= 1 && _vm->_awayMission.love.canister2 <= 3) + if (_awayMission->love.canister2 >= 1 && _awayMission->love.canister2 <= 3) loadActorAnim(OBJECT_CAN2, canName, 0xb1, 0xaf, 0); - if (_vm->_awayMission.love.gasFeedOn) + if (_awayMission->love.gasFeedOn) loadActorAnim(OBJECT_GAS_FEED, "s3r3vo", 0xac, 0x75, 0); else loadActorAnim(OBJECT_GAS_FEED, "s3r3vc", 0xac, 0x75, 0); - if (_vm->_awayMission.love.cabinetOpen) + if (_awayMission->love.cabinetOpen) loadActorAnim(OBJECT_CABINET, "s3r3d1o", 0x1e, 0xaf, 0); else loadActorAnim(OBJECT_CABINET, "s3r3d1c", 0x1e, 0xaf, 0); - if (_vm->_awayMission.love.cabinetOpen && !haveItem(OBJECT_IANTIGRA)) + if (_awayMission->love.cabinetOpen && !haveItem(OBJECT_IANTIGRA)) loadActorAnim(OBJECT_ANTIGRAV, "antigr", 0x1f, 0xa7, 0); - if (_vm->_awayMission.love.synthesizerContents != 0) + if (_awayMission->love.synthesizerContents != 0) loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2o", 0x8a, 0x8d, 0); else loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2c", 0x8a, 0x8d, 0); bool valid = true; - switch (_vm->_awayMission.love.synthesizerContents) { + switch (_awayMission->love.synthesizerContents) { case SYNTHITEM_PBC: strcpy(_roomVar.love.chamberInputAnim, "pbcanm"); _roomVar.love.chamberObject = OBJECT_POLYBERYLCARBONATE; @@ -117,7 +117,7 @@ void Room::love2Tick1() { _roomVar.love.chamberObject = OBJECT_CURESAMPLE; break; case SYNTHITEM_BOTTLE: - switch (_vm->_awayMission.love.synthesizerBottleIndex) { + switch (_awayMission->love.synthesizerBottleIndex) { case 1: strcpy(_roomVar.love.chamberOutputAnim, "btle1"); _roomVar.love.chamberObject = OBJECT_SYNTHESIZER_OUTPUT; @@ -146,17 +146,17 @@ void Room::love2Tick1() { } if (valid) { - if (_vm->_awayMission.love.synthesizerContents == 9) + if (_awayMission->love.synthesizerContents == 9) loadActorAnim2(_roomVar.love.chamberObject, _roomVar.love.chamberOutputAnim, 0x8a, 0x8b, 0); else loadActorAnim2(_roomVar.love.chamberObject, _roomVar.love.chamberInputAnim, 0x8a, 0x8b, 0); } - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; loadActorAnim(OBJECT_DOOR, "s3r3d3a", 0x12a, 0xb5, 0); @@ -165,9 +165,9 @@ void Room::love2Tick1() { } void Room::love2TouchedWarp1() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.timers[3] = 10; + _awayMission->timers[3] = 10; } void Room::love2Timer3Expired() { @@ -175,7 +175,7 @@ void Room::love2Timer3Expired() { } void Room::love2WalkToDoor() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = true; walkCrewman(OBJECT_KIRK, 0x127, 0xba, 14); } @@ -244,7 +244,7 @@ void Room::love2LookAtChamber() { } void Room::love2LookAtCan1() { - switch (_vm->_awayMission.love.canister1) { + switch (_awayMission->love.canister1) { case CANTYPE_O2: showText(TX_LOV2N004); break; @@ -259,7 +259,7 @@ void Room::love2LookAtCan1() { } void Room::love2LookAtCan2() { - switch (_vm->_awayMission.love.canister2) { + switch (_awayMission->love.canister2) { case CANTYPE_O2: showText(TX_LOV2N004); break; @@ -290,7 +290,7 @@ void Room::love2TalkToRedshirt() { } void Room::love2UseMTricorderAnywhere() { - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) mccoyScan(DIR_S, TX_LOV2_008, false); else // BUGFIX: should be TX_LOV2_012, but the audio file is missing. Using equivalent @@ -323,26 +323,26 @@ void Room::love2UseRedshirtOnCabinet() { } void Room::love2CrewmanReachedCabinet() { - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.love.chamberObject, "usehw"); + Common::String anim = getCrewmanAnimFilename(_roomVar.love.chamberObject, "usehw"); loadActorAnim2(_roomVar.love.chamberObject, anim, -1, -1, 11); } void Room::love2CrewmanAccessedCabinet() { - if (_vm->_awayMission.love.cabinetOpen) + if (_awayMission->love.cabinetOpen) loadActorAnim2(OBJECT_CABINET, "s3r3d4", 0x1e, 0xaf, 2); else loadActorAnim2(OBJECT_CABINET, "s3r3d1", 0x1e, 0xaf, 2); playSoundEffectIndex(SND_DOOR1); - if (_vm->_awayMission.love.cabinetOpen) + if (_awayMission->love.cabinetOpen) loadActorStandAnim(OBJECT_ANTIGRAV); - _vm->_awayMission.love.cabinetOpen = !_vm->_awayMission.love.cabinetOpen; + _awayMission->love.cabinetOpen = !_awayMission->love.cabinetOpen; } void Room::love2CrewmanOpenedOrClosedCabinet() { - if (_vm->_awayMission.love.cabinetOpen && !haveItem(OBJECT_IANTIGRA)) + if (_awayMission->love.cabinetOpen && !haveItem(OBJECT_IANTIGRA)) loadActorAnim(OBJECT_ANTIGRAV, "antigr", 0x1f, 0xa7, 0); } @@ -356,12 +356,12 @@ void Room::love2ReachedGasFeed() { } void Room::love2ChangedGasFeed() { - if (_vm->_awayMission.love.gasFeedOn) { - _vm->_awayMission.love.gasFeedOn = false; + if (_awayMission->love.gasFeedOn) { + _awayMission->love.gasFeedOn = false; loadActorAnim2(OBJECT_GAS_FEED, "s3r3v2", 0xac, 0x75, 0); showText(TX_LOV2N007); } else { - _vm->_awayMission.love.gasFeedOn = true; + _awayMission->love.gasFeedOn = true; loadActorAnim2(OBJECT_GAS_FEED, "s3r3v1", 0xac, 0x75, 0); showText(TX_LOV2N008); } @@ -389,12 +389,12 @@ void Room::love2UseN2GasOnCanisterSlot() { } void Room::love2ReachedCanisterSlot() { - if (_vm->_awayMission.love.gasFeedOn) + if (_awayMission->love.gasFeedOn) showText(TX_SPEAKER_SPOCK, TX_LOV2_026); else { - if (_vm->_awayMission.love.canister1 == CANTYPE_NONE) + if (_awayMission->love.canister1 == CANTYPE_NONE) loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 13); - else if (_vm->_awayMission.love.canister2 == CANTYPE_NONE) + else if (_awayMission->love.canister2 == CANTYPE_NONE) loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 14); else showText(TX_LOV2N024); @@ -404,7 +404,7 @@ void Room::love2ReachedCanisterSlot() { void Room::love2PutCanisterInSlot1() { playVoc("SE6FOOD"); loadActorAnim(OBJECT_CAN1, _roomVar.love.canisterAnim, 0xa7, 0xae, 0); - _vm->_awayMission.love.canister1 = _roomVar.love.canisterType; + _awayMission->love.canister1 = _roomVar.love.canisterType; showText(TX_LOV2N034); loseItem(_roomVar.love.canisterItem); } @@ -412,7 +412,7 @@ void Room::love2PutCanisterInSlot1() { void Room::love2PutCanisterInSlot2() { playVoc("SE6FOOD"); loadActorAnim(OBJECT_CAN2, _roomVar.love.canisterAnim, 0xb1, 0xaf, 0); - _vm->_awayMission.love.canister2 = _roomVar.love.canisterType; + _awayMission->love.canister2 = _roomVar.love.canisterType; showText(TX_LOV2N035); loseItem(_roomVar.love.canisterItem); } @@ -422,7 +422,7 @@ void Room::love2UseAntigravOnCanister1() { } void Room::love2ReachedCanisterSlot1ToGet() { - if (_vm->_awayMission.love.gasFeedOn) + if (_awayMission->love.gasFeedOn) showText(TX_SPEAKER_SPOCK, TX_LOV2_025); else { loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 15); @@ -435,7 +435,7 @@ void Room::love2TookCanister1() { showText(TX_LOV2N030); loadActorStandAnim(OBJECT_CAN1); - switch (_vm->_awayMission.love.canister1) { + switch (_awayMission->love.canister1) { case CANTYPE_O2: giveItem(OBJECT_IO2GAS); break; @@ -448,7 +448,7 @@ void Room::love2TookCanister1() { break; } - _vm->_awayMission.love.canister1 = CANTYPE_NONE; + _awayMission->love.canister1 = CANTYPE_NONE; } void Room::love2UseAntigravOnCanister2() { @@ -456,7 +456,7 @@ void Room::love2UseAntigravOnCanister2() { } void Room::love2ReachedCanisterSlot2ToGet() { - if (_vm->_awayMission.love.gasFeedOn) + if (_awayMission->love.gasFeedOn) showText(TX_SPEAKER_SPOCK, TX_LOV2_025); else { loadActorAnim2(OBJECT_KIRK, "kusehn", -1, -1, 16); @@ -468,7 +468,7 @@ void Room::love2TookCanister2() { showText(TX_LOV2N031); loadActorStandAnim(OBJECT_CAN2); - switch (_vm->_awayMission.love.canister2) { + switch (_awayMission->love.canister2) { case CANTYPE_O2: giveItem(OBJECT_IO2GAS); break; @@ -481,7 +481,7 @@ void Room::love2TookCanister2() { break; } - _vm->_awayMission.love.canister2 = CANTYPE_NONE; + _awayMission->love.canister2 = CANTYPE_NONE; } void Room::love2UseKirkOnSynthesizer() { @@ -505,12 +505,12 @@ void Room::love2UseRedshirtOnSynthesizer() { } void Room::love2CrewmanReachedSynthesizer() { - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.love.chamberObject, "usemn"); + Common::String anim = getCrewmanAnimFilename(_roomVar.love.chamberObject, "usemn"); loadActorAnim2(_roomVar.love.chamberObject, anim, -1, -1, 17); } void Room::love2CrewmanUsedSynthesizer() { - if (_vm->_awayMission.love.gasFeedOn) { + if (_awayMission->love.gasFeedOn) { love2UseSynthesizer(); } else { if (_roomVar.love.cb == 3) { @@ -532,7 +532,7 @@ void Room::love2SpockReachedGasFeeds() { } void Room::love2SpockEnabledGasFeeds() { - _vm->_awayMission.love.gasFeedOn = true; + _awayMission->love.gasFeedOn = true; loadActorAnim2(OBJECT_GAS_FEED, "s3r3v1", 0xac, 0x75, 0); showText(TX_LOV2N008); @@ -543,10 +543,10 @@ void Room::love2SpockEnabledGasFeeds() { // Synthesizer takes the input and produces some output void Room::love2UseSynthesizer() { - if (_vm->_awayMission.love.canister1 != 0) { - if (_vm->_awayMission.love.canister2 != 0) { - int c1 = _vm->_awayMission.love.canister1; - int c2 = _vm->_awayMission.love.canister2; + if (_awayMission->love.canister1 != 0) { + if (_awayMission->love.canister2 != 0) { + int c1 = _awayMission->love.canister1; + int c2 = _awayMission->love.canister2; if (c1 > c2) { int tmp = c1; c1 = c2; @@ -554,7 +554,7 @@ void Room::love2UseSynthesizer() { } if (c1 == CANTYPE_O2 && c2 == CANTYPE_H2) { - switch (_vm->_awayMission.love.synthesizerContents) { + switch (_awayMission->love.synthesizerContents) { case SYNTHITEM_PBC: // Romulan Laughing Gas loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", -1, -1, 27); // -> love2ClosedSynthesizerDoorMakingRLG playSoundEffectIndex(SND_DOOR1); @@ -581,7 +581,7 @@ bottleFailure: case SYNTHITEM_NONE: // Water default: - _vm->_awayMission.love.synthesizerBottleIndex = BOTTLETYPE_H2O; + _awayMission->love.synthesizerBottleIndex = BOTTLETYPE_H2O; strcpy(_roomVar.love.chamberOutputAnim, "btle3"); produceBottle: loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed @@ -591,11 +591,11 @@ produceBottle: closeSynthesizerDoor: loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.love.synthesizerContents = 0; + _awayMission->love.synthesizerContents = 0; break; } } else if (c1 == CANTYPE_H2 && c2 == CANTYPE_N2) { - switch (_vm->_awayMission.love.synthesizerContents) { + switch (_awayMission->love.synthesizerContents) { case SYNTHITEM_PBC: // Inert matter inertMatterFailure: showText(TX_LOV2N049); @@ -621,12 +621,12 @@ inertMatterFailure: case SYNTHITEM_NONE: // Ammonia default: - _vm->_awayMission.love.synthesizerBottleIndex = BOTTLETYPE_NH3; + _awayMission->love.synthesizerBottleIndex = BOTTLETYPE_NH3; strcpy(_roomVar.love.chamberOutputAnim, "btle2"); goto produceBottle; } } else if (c1 == CANTYPE_O2 && c2 == CANTYPE_N2) { - switch (_vm->_awayMission.love.synthesizerContents) { + switch (_awayMission->love.synthesizerContents) { case SYNTHITEM_PBC: // Inert matter goto inertMatterFailure; @@ -644,7 +644,7 @@ inertMatterFailure: case SYNTHITEM_NONE: // Laughing gas default: - _vm->_awayMission.love.synthesizerBottleIndex = BOTTLETYPE_N2O; + _awayMission->love.synthesizerBottleIndex = BOTTLETYPE_N2O; strcpy(_roomVar.love.chamberOutputAnim, "btle1"); goto produceBottle; } @@ -664,12 +664,12 @@ inertMatterFailure: void Room::love2SynthesizerDoorClosed() { playVoc("LD1SCAN"); loadActorAnim(OBJECT_SYNTHESIZER_OUTPUT, _roomVar.love.chamberOutputAnim, 0x8a, 0x8d, 4); // -> love2SynthesizerFinished - _vm->_awayMission.love.synthesizerContents = SYNTHITEM_BOTTLE; + _awayMission->love.synthesizerContents = SYNTHITEM_BOTTLE; } // Final product of synthesizer is produced void Room::love2SynthesizerFinished() { - switch (_vm->_awayMission.love.synthesizerBottleIndex) { + switch (_awayMission->love.synthesizerBottleIndex) { case BOTTLETYPE_N2O: showText(TX_LOV2N017); showText(TX_SPEAKER_SPOCK, TX_LOV2_032); @@ -679,7 +679,7 @@ void Room::love2SynthesizerFinished() { case BOTTLETYPE_NH3: showText(TX_LOV2N016); - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_FERRIS, TX_LOV2_043); showText(TX_SPEAKER_KIRK, TX_LOV2_003); } @@ -703,7 +703,7 @@ void Room::love2SynthesizerFinished() { } void Room::love2ClosedSynthesizerDoorMakingRLG() { - _vm->_awayMission.love.synthesizerBottleIndex = BOTTLETYPE_RLG; + _awayMission->love.synthesizerBottleIndex = BOTTLETYPE_RLG; strcpy(_roomVar.love.chamberOutputAnim, "btle4"); loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 3); // -> love2SynthesizerDoorClosed playSoundEffectIndex(SND_DOOR1); @@ -727,11 +727,11 @@ void Room::love2CureSynthesized() { // Put polycarbonate in synthesizer void Room::love2UsePolyberylcarbonateOnSynthesizerDoor() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 6); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2KirkReachedSynthesizerWithPolyberylcarbonate() { - if (_vm->_awayMission.love.synthesizerContents != 0) + if (_awayMission->love.synthesizerContents != 0) showText(TX_LOV2N025); else { loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 5); @@ -746,18 +746,18 @@ void Room::love2SynthesizerDoorOpenedWithPolyberylcarbonate() { void Room::love2PutPolyberylcarbonateInSynthesizer() { loadActorAnim(OBJECT_POLYBERYLCARBONATE, "pbcanm", 0x8a, 0x8b, 0); loseItem(OBJECT_IPBC); - _vm->_awayMission.love.synthesizerContents = SYNTHITEM_PBC; + _awayMission->love.synthesizerContents = SYNTHITEM_PBC; } // Put dish (virus sample) in synthesizer void Room::love2UseVirusSampleOnSynthesizerDoor() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 7); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2KirkReachedSynthesizerWithVirusSample() { - if (_vm->_awayMission.love.synthesizerContents != 0) + if (_awayMission->love.synthesizerContents != 0) showText(TX_LOV2N025); else { loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 6); @@ -772,18 +772,18 @@ void Room::love2SynthesizerDoorOpenedWithVirusSample() { void Room::love2PutVirusSampleInSynthesizer() { loadActorAnim(OBJECT_VIRUSSAMPLE, "dishes", 0x8a, 0x8b, 0); loseItem(OBJECT_IDISHES); - _vm->_awayMission.love.synthesizerContents = SYNTHITEM_VIRUS_SAMPLE; + _awayMission->love.synthesizerContents = SYNTHITEM_VIRUS_SAMPLE; } // Put cure sample in synthesizer void Room::love2UseCureSampleOnSynthesizerDoor() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 8); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2KirkReachedSynthesizerWithCureSample() { - if (_vm->_awayMission.love.synthesizerContents != 0) + if (_awayMission->love.synthesizerContents != 0) showText(TX_LOV2N025); // BUGFIX: original didn't play audio else { loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d2", 0x8a, 0x8d, 7); @@ -798,7 +798,7 @@ void Room::love2SynthesizerDoorOpenedWithCureSample() { void Room::love2PutCureSampleInSynthesizer() { loadActorAnim(OBJECT_CURESAMPLE, "dishes", 0x8a, 0x8b, 0); loseItem(OBJECT_ISAMPLE); - _vm->_awayMission.love.synthesizerContents = SYNTHITEM_CURE_SAMPLE; + _awayMission->love.synthesizerContents = SYNTHITEM_CURE_SAMPLE; } @@ -812,7 +812,7 @@ void Room::love2UseAnythingOnSynthesizer() { } void Room::love2GetCanister() { - if (_vm->_awayMission.redshirtDead) + if (_awayMission->redshirtDead) showText(TX_SPEAKER_MCCOY, TX_LOV2_011); else showText(TX_SPEAKER_FERRIS, TX_LOV2_040); @@ -838,7 +838,7 @@ void Room::love2GotAntigrav() { // Get polyberylcarbonate from synthesizer void Room::love2GetPolyberylcarbonate() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 18); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2ReachedPolyberylcarbonate() { @@ -849,7 +849,7 @@ void Room::love2GotPolyberylcarbonate() { loadActorStandAnim(OBJECT_POLYBERYLCARBONATE); showText(TX_LOV2N044); giveItem(OBJECT_IPBC); - _vm->_awayMission.love.synthesizerContents = 0; + _awayMission->love.synthesizerContents = 0; loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); } @@ -858,7 +858,7 @@ void Room::love2GotPolyberylcarbonate() { // Get virus sample from synthesizer void Room::love2GetDishes() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 17); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2ReachedDishes() { @@ -869,7 +869,7 @@ void Room::love2GotDishes() { loadActorStandAnim(OBJECT_VIRUSSAMPLE); showText(TX_LOV2N036); // FIXME: text doesn't match audio giveItem(OBJECT_IDISHES); - _vm->_awayMission.love.synthesizerContents = 0; + _awayMission->love.synthesizerContents = 0; loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); } @@ -878,7 +878,7 @@ void Room::love2GotDishes() { // Get cure sample from synthesizer void Room::love2GetSample() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 19); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2ReachedSample() { @@ -889,7 +889,7 @@ void Room::love2GotSample() { loadActorStandAnim(OBJECT_CURESAMPLE); showText(TX_LOV2N037); giveItem(OBJECT_ISAMPLE); - _vm->_awayMission.love.synthesizerContents = 0; + _awayMission->love.synthesizerContents = 0; loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); } @@ -898,7 +898,7 @@ void Room::love2GotSample() { // Get synthesizer output void Room::love2GetSynthesizerOutput() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 10); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2ReachedSynthesizerOutput() { @@ -906,7 +906,7 @@ void Room::love2ReachedSynthesizerOutput() { } void Room::love2GotSynthesizerOutput() { - switch (_vm->_awayMission.love.synthesizerBottleIndex) { + switch (_awayMission->love.synthesizerBottleIndex) { case BOTTLETYPE_N2O: showText(TX_LOV2N040); giveItem(OBJECT_IN2O); @@ -925,9 +925,9 @@ void Room::love2GotSynthesizerOutput() { case BOTTLETYPE_RLG: default: showText(TX_LOV2N038); - if (!_vm->_awayMission.love.gotTLDH) { - _vm->_awayMission.love.gotTLDH = true; - _vm->_awayMission.love.missionScore += 4; + if (!_awayMission->love.gotTLDH) { + _awayMission->love.gotTLDH = true; + _awayMission->love.missionScore += 4; } giveItem(OBJECT_IRLG); break; @@ -937,14 +937,14 @@ void Room::love2GotSynthesizerOutput() { loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.love.synthesizerContents = 0; - _vm->_awayMission.love.synthesizerBottleIndex = 0; + _awayMission->love.synthesizerContents = 0; + _awayMission->love.synthesizerBottleIndex = 0; } // Get the cure void Room::love2GetCure() { walkCrewman(OBJECT_KIRK, 0x85, 0xad, 11); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love2ReachedCure() { @@ -952,9 +952,9 @@ void Room::love2ReachedCure() { } void Room::love2GotCure() { - if (!_vm->_awayMission.love.gotCure) { - _vm->_awayMission.love.gotCure = true; - _vm->_awayMission.love.missionScore += 5; + if (!_awayMission->love.gotCure) { + _awayMission->love.gotCure = true; + _awayMission->love.missionScore += 5; } giveItem(OBJECT_ICURE); @@ -963,7 +963,7 @@ void Room::love2GotCure() { loadActorAnim(OBJECT_SYNTHESIZER_DOOR, "s3r3d5", 0x8a, 0x8d, 0); playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.love.synthesizerContents = 0; + _awayMission->love.synthesizerContents = 0; } } diff --git a/engines/startrek/rooms/love3.cpp b/engines/startrek/rooms/love3.cpp index 03ae5840b7..48d93f2cf5 100644 --- a/engines/startrek/rooms/love3.cpp +++ b/engines/startrek/rooms/love3.cpp @@ -38,46 +38,46 @@ namespace StarTrek { void Room::love3Tick1() { playVoc("LOV3LOOP"); - if (!_vm->_awayMission.love.wrenchTaken) + if (!_awayMission->love.wrenchTaken) loadActorAnim(OBJECT_WRENCH, "wrench", 0x10a, 0xb6, 0); - if (_vm->_awayMission.love.grateRemoved) + if (_awayMission->love.grateRemoved) loadActorAnim(OBJECT_GRATE, "s3r4g3", 0, 0, 0); else loadActorAnim(OBJECT_GRATE, "s3r4g1", 0x116, 0x8f, 0); - if (_vm->_awayMission.love.insulationOnGround) + if (_awayMission->love.insulationOnGround) loadActorAnim(OBJECT_INSULATION, "s3r4p2", 0, 0, 0); - if (!_vm->_awayMission.love.tookN2TankFromServicePanel) + if (!_awayMission->love.tookN2TankFromServicePanel) loadActorAnim(OBJECT_GAS_TANK, "r4n2", 0, 0, 0); - if (_vm->_awayMission.love.servicePanelOpen) + if (_awayMission->love.servicePanelOpen) loadActorAnim(OBJECT_SERVICE_PANEL, "s3r4d1a", 1, 0, 0); else loadActorAnim(OBJECT_SERVICE_PANEL, "s3r4d2", 1, 0, 0); - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; _roomVar.love.cmnXPosToCureSpock = 0xb4; _roomVar.love.cmnYPosToCureSpock = 0xb7; } void Room::love3Tick80() { - if (!_vm->_awayMission.love.visitedRoomWithRomulans && haveItem(OBJECT_IRLG)) { + if (!_awayMission->love.visitedRoomWithRomulans && haveItem(OBJECT_IRLG)) { showText(TX_SPEAKER_MCCOY, TX_LOV3_010); showText(TX_SPEAKER_SPOCK, TX_LOV3_020); } } void Room::love3TouchedWarp1() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.timers[3] = 10; + _awayMission->timers[3] = 10; } void Room::love3Timer3Expired() { @@ -125,7 +125,7 @@ void Room::love3LookAtGrate() { } void Room::love3LookAtPanel() { - if (_vm->_awayMission.love.insulationOnGround) + if (_awayMission->love.insulationOnGround) showText(TX_LOV3N017); else showText(TX_LOV3NA22); @@ -139,7 +139,7 @@ void Room::love3LookAtTurbines() { showText(TX_LOV3N026); showText(TX_SPEAKER_MCCOY, TX_LOV3_009); showText(TX_SPEAKER_SPOCK, TX_LOV3_019); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_FERRIS, TX_LOV3_026); } @@ -148,9 +148,9 @@ void Room::love3TalkToKirk() { } void Room::love3TalkToSpock() { - if (_vm->_awayMission.love.visitedRoomWithRomulans) + if (_awayMission->love.visitedRoomWithRomulans) showText(TX_SPEAKER_SPOCK, TX_LOV3_003); - else if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas) + else if (_awayMission->love.romulansUnconsciousFromLaughingGas) showText(TX_SPEAKER_SPOCK, TX_LOV3_017); else if (haveItem(OBJECT_IRLG)) showText(TX_SPEAKER_SPOCK, TX_LOV3_004); @@ -167,7 +167,7 @@ void Room::love3TalkToRedshirt() { } void Room::love3UseMTricorderAnywhere() { - if (_vm->_awayMission.love.knowAboutVirus) + if (_awayMission->love.knowAboutVirus) mccoyScan(DIR_S, TX_LOV3_005, false); else mccoyScan(DIR_S, TX_LOV3_006, false); @@ -178,7 +178,7 @@ void Room::love3UseSTricorderOnTurbines() { } void Room::love3UseSTricorderOnInsulation() { - if (_vm->_awayMission.love.insulationOnGround) + if (_awayMission->love.insulationOnGround) spockScan(DIR_W, TX_LOV3_002, false); } @@ -207,21 +207,21 @@ void Room::love3UseRedshirtOnServicePanel() { } void Room::love3CrewmanReachedServicePanel() { - Common::String anim = _vm->getCrewmanAnimFilename(_roomVar.love.activeCrewman, "usehe"); + Common::String anim = getCrewmanAnimFilename(_roomVar.love.activeCrewman, "usehe"); loadActorAnim2(_roomVar.love.activeCrewman, anim, -1, -1, 1); } void Room::love3OpenedOrClosedServicePanel() { - if (_vm->_awayMission.love.servicePanelOpen) + if (_awayMission->love.servicePanelOpen) loadActorAnim2(OBJECT_SERVICE_PANEL, "s3r4d1b", 1, 0, 0); else loadActorAnim2(OBJECT_SERVICE_PANEL, "s3r4d1", 1, 0, 0); playVoc("SMADOOR1"); - _vm->_awayMission.love.servicePanelOpen = !_vm->_awayMission.love.servicePanelOpen; + _awayMission->love.servicePanelOpen = !_awayMission->love.servicePanelOpen; - if (_vm->_awayMission.love.servicePanelOpen) { - if (_vm->_awayMission.love.tookN2TankFromServicePanel) + if (_awayMission->love.servicePanelOpen) { + if (_awayMission->love.tookN2TankFromServicePanel) showText(TX_LOV3N023); else showText(TX_LOV3N022); @@ -240,14 +240,14 @@ void Room::love3ReachedGasTankToUnscrew() { } void Room::love3ScrewedOrUnscrewedGasTank() { - if (!_vm->_awayMission.love.gasTankUnscrewed) { + if (!_awayMission->love.gasTankUnscrewed) { showText(TX_LOV3N012); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_FERRIS, TX_LOV3_022); - _vm->_awayMission.love.gasTankUnscrewed = true; + _awayMission->love.gasTankUnscrewed = true; } else { showText(TX_LOV3N015); - _vm->_awayMission.love.gasTankUnscrewed = false; + _awayMission->love.gasTankUnscrewed = false; } } @@ -269,7 +269,7 @@ void Room::love3ReachedGasTankToPutDown() { void Room::love3PutN2TankBack() { showText(TX_LOV3N013); - _vm->_awayMission.love.tookN2TankFromServicePanel = false; + _awayMission->love.tookN2TankFromServicePanel = false; loseItem(OBJECT_IN2GAS); loadActorAnim(OBJECT_GAS_TANK, "r4n2", 0, 0, 0); } @@ -286,10 +286,10 @@ void Room::love3ReachedEngineeringPanel() { } void Room::love3OpenedEngineeringPanel() { - if (!_vm->_awayMission.love.insulationOnGround) { + if (!_awayMission->love.insulationOnGround) { playVoc("MADR4E4A"); loadActorAnim(OBJECT_INSULATION, "s3r4p1", 0, 0, 0); - _vm->_awayMission.love.insulationOnGround = true; + _awayMission->love.insulationOnGround = true; } showText(TX_LOV3N021); } @@ -325,11 +325,11 @@ void Room::love3UseCrewmanOnEngineeringPanelOrGrate() { void Room::love3UseWrenchOnGrate() { walkCrewmanC(OBJECT_KIRK, 0xf6, 0xaa, &Room::love3ReachedGateWithWrench); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::love3ReachedGateWithWrench() { - if (_vm->_awayMission.love.grateRemoved) + if (_awayMission->love.grateRemoved) loadActorAnimC(OBJECT_KIRK, "s3r4g2a", -1, -1, &Room::love3OpenedOrClosedGrate); else loadActorAnimC(OBJECT_KIRK, "s3r4g2", -1, -1, &Room::love3OpenedOrClosedGrate); @@ -338,20 +338,20 @@ void Room::love3ReachedGateWithWrench() { } void Room::love3OpenedOrClosedGrate() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); - if (!_vm->_awayMission.love.grateRemoved) { - _vm->_awayMission.love.grateRemoved = true; + if (!_awayMission->love.grateRemoved) { + _awayMission->love.grateRemoved = true; loadActorAnim(OBJECT_GRATE, "s3r4g3", 0, 0, 0); showText(TX_LOV3N016); - if (!_vm->_awayMission.love.gotPointsForOpeningGrate) { - _vm->_awayMission.love.gotPointsForOpeningGrate = true; - _vm->_awayMission.love.missionScore++; + if (!_awayMission->love.gotPointsForOpeningGrate) { + _awayMission->love.gotPointsForOpeningGrate = true; + _awayMission->love.missionScore++; } } else { loadActorAnim(OBJECT_GRATE, "s3r4g1", 0x116, 0x8f, 0); - _vm->_awayMission.love.grateRemoved = false; + _awayMission->love.grateRemoved = false; showText(TX_LOV3N032); } } @@ -367,7 +367,7 @@ void Room::love3UseWaterOnShaft() { } void Room::love3ReachedShaftUsingWater() { - if (!_vm->_awayMission.love.grateRemoved) + if (!_awayMission->love.grateRemoved) showText(TX_LOV3N025); else loadActorAnimC(OBJECT_KIRK, "kuseme", -1, -1, &Room::love3PouredWaterDownShaft); @@ -384,7 +384,7 @@ void Room::love3UseNitrousOxideOnShaft() { } void Room::love3ReachedShaftUsingNitrousOxide() { - if (!_vm->_awayMission.love.grateRemoved) + if (!_awayMission->love.grateRemoved) showText(TX_LOV3N025); else loadActorAnimC(OBJECT_KIRK, "kuseme", -1, -1, &Room::love3PouredNitrousOxideDownShaft); @@ -402,16 +402,16 @@ void Room::love3UseAmmoniaOnShaft() { } void Room::love3ReachedShaftUsingAmmonia() { - if (!_vm->_awayMission.love.grateRemoved) + if (!_awayMission->love.grateRemoved) showText(TX_LOV3N025); else loadActorAnimC(OBJECT_KIRK, "kuseme", -1, -1, &Room::love3PouredAmmoniaDownShaft); } void Room::love3PouredAmmoniaDownShaft() { - if (!_vm->_awayMission.love.romulansUnconsciousFromVirus) { + if (!_awayMission->love.romulansUnconsciousFromVirus) { showText(TX_LOV3N001); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_FERRIS, TX_LOV3_023); } @@ -420,13 +420,13 @@ void Room::love3PouredAmmoniaDownShaft() { void Room::love3UseRomulanLaughingGasOnShaft() { - if (_vm->_awayMission.love.gotPointsForGassingRomulans) { + if (_awayMission->love.gotPointsForGassingRomulans) { // BUG-ish: you could get the points for this by starting the action, then // canceling it before Kirk reaches the shaft. - _vm->_awayMission.love.gotPointsForGassingRomulans = true; - _vm->_awayMission.love.missionScore += 6; + _awayMission->love.gotPointsForGassingRomulans = true; + _awayMission->love.missionScore += 6; } - if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas) + if (_awayMission->love.romulansUnconsciousFromLaughingGas) showText(TX_SPEAKER_SPOCK, TX_LOV3_011); else { walkCrewmanC(OBJECT_KIRK, 0xf6, 0xa4, &Room::love3ReachedShaftUsingRomulanLaughingGas); @@ -434,7 +434,7 @@ void Room::love3UseRomulanLaughingGasOnShaft() { } void Room::love3ReachedShaftUsingRomulanLaughingGas() { - if (!_vm->_awayMission.love.grateRemoved) + if (!_awayMission->love.grateRemoved) showText(TX_LOV3N025); else { loadActorAnimC(OBJECT_KIRK, "kuseme", -1, -1, &Room::love3PouredRomulanLaughingGasDownShaft); @@ -444,11 +444,11 @@ void Room::love3ReachedShaftUsingRomulanLaughingGas() { void Room::love3PouredRomulanLaughingGasDownShaft() { loseItem(OBJECT_IRLG); - _vm->_awayMission.love.romulansUnconsciousFromLaughingGas = true; + _awayMission->love.romulansUnconsciousFromLaughingGas = true; - if (_vm->_awayMission.love.romulansUnconsciousFromVirus) { + if (_awayMission->love.romulansUnconsciousFromVirus) { showText(TX_LOV3NA08); - _vm->_awayMission.love.romulansUnconsciousFromLaughingGas = false; + _awayMission->love.romulansUnconsciousFromLaughingGas = false; } else { showText(TX_LOV3NA09); playVoc("ROMULANL"); @@ -469,7 +469,7 @@ void Room::love3PickedUpWrench() { loadActorStandAnim(OBJECT_KIRK); giveItem(OBJECT_IWRENCH); loadActorStandAnim(OBJECT_WRENCH); - _vm->_awayMission.love.wrenchTaken = true; + _awayMission->love.wrenchTaken = true; showText(TX_LOV3N031); } @@ -480,7 +480,7 @@ void Room::love3GetGasTank() { } void Room::love3ReachedGasTankToGet() { - if (_vm->_awayMission.love.gasTankUnscrewed) + if (_awayMission->love.gasTankUnscrewed) showText(TX_LOV3N007); else showText(TX_LOV3N014); @@ -493,7 +493,7 @@ void Room::love3UseAntigravOnGasTank() { } void Room::love3ReachedGasTankUsingAntigrav() { - if (_vm->_awayMission.love.gasTankUnscrewed) { + if (_awayMission->love.gasTankUnscrewed) { loadActorAnimC(OBJECT_KIRK, "kusehe", -1, -1, &Room::love3PickedUpGasTank); playVoc("SE3PLBAT"); } else { @@ -505,10 +505,10 @@ void Room::love3ReachedGasTankUsingAntigrav() { void Room::love3PickedUpGasTank() { giveItem(OBJECT_IN2GAS); loadActorStandAnim(OBJECT_GAS_TANK); - _vm->_awayMission.love.tookN2TankFromServicePanel = true; + _awayMission->love.tookN2TankFromServicePanel = true; showText(TX_LOV3NJ32); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) showText(TX_SPEAKER_FERRIS, TX_LOV3_025); } @@ -517,7 +517,7 @@ void Room::love3GetInsulation() { } void Room::love3ReachedInsulationToGet() { - if (!_vm->_awayMission.love.field3c) + if (!_awayMission->love.field3c) loadActorAnimC(OBJECT_KIRK, "s5r1kg", -1, -1, &Room::love3PickedUpInsulation); } diff --git a/engines/startrek/rooms/love4.cpp b/engines/startrek/rooms/love4.cpp index 447f763928..6eeef1050a 100644 --- a/engines/startrek/rooms/love4.cpp +++ b/engines/startrek/rooms/love4.cpp @@ -36,7 +36,7 @@ namespace StarTrek { void Room::love4Tick1() { playVoc("LOV4LOOP"); - if (_vm->_awayMission.love.romulansCured) { + if (_awayMission->love.romulansCured) { loadActorAnim2(OBJECT_ROMULAN_1, "s3r5r1b", 0x36, 0xb3, 0); loadActorAnim2(OBJECT_ROMULAN_2, "s3r5r2b", 0xb9, 0xbb, 0); loadActorAnim2(OBJECT_ROMULAN_3, "s3r5r3b", 0xef, 0xc4, 0); @@ -48,11 +48,11 @@ void Room::love4Tick1() { loadActorAnim2(OBJECT_ROMULAN_4, "s3r5r4a", 0x12a, 0xaa, 0); } - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; loadActorAnim(OBJECT_DOOR, "s3r5d1a", 0x90, 0x99, 0); @@ -61,14 +61,14 @@ void Room::love4Tick1() { } void Room::love4Tick10() { - if (!_vm->_awayMission.love.visitedRoomWithRomulans) { + if (!_awayMission->love.visitedRoomWithRomulans) { playMidiMusicTracks(1, -1); - _vm->_awayMission.love.visitedRoomWithRomulans = true; + _awayMission->love.visitedRoomWithRomulans = true; } } void Room::love4WalkToDoor() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; _roomVar.love.walkingToDoor = true; walkCrewmanC(OBJECT_KIRK, 0x91, 0x9c, &Room::love4DoorOpenedOrReached); } @@ -133,7 +133,7 @@ void Room::love4LookAtRedshirt() { } void Room::love4LookAtRomulan() { - if (!_vm->_awayMission.love.romulansCured) + if (!_awayMission->love.romulansCured) showText(TX_LOV4N006); else showText(TX_LOV4N011); @@ -146,7 +146,7 @@ void Room::love4TalkToKirk() { } void Room::love4TalkToMccoy() { - if (_vm->_awayMission.love.romulansCured) + if (_awayMission->love.romulansCured) showText(TX_SPEAKER_MCCOY, TX_LOV4_022); else showText(TX_SPEAKER_MCCOY, TX_LOV4_010); @@ -162,21 +162,21 @@ void Room::love4TalkToSpock() { } void Room::love4TalkToRomulan() { - if (_vm->_awayMission.love.romulansCured) + if (_awayMission->love.romulansCured) showText(TX_LOV4N007); // BUGFIX: original didn't play audio } void Room::love4UseMTricorderOnRomulan() { - if (_vm->_awayMission.love.romulansCured) + if (_awayMission->love.romulansCured) mccoyScan(DIR_S, TX_LOV4_018, false); else mccoyScan(DIR_S, TX_LOV4_015, false); } void Room::love4UseMTricorderAnywhere() { - if (_vm->_awayMission.love.romulansCured) + if (_awayMission->love.romulansCured) mccoyScan(DIR_S, TX_LOV4_019, false); - else if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas) + else if (_awayMission->love.romulansUnconsciousFromLaughingGas) mccoyScan(DIR_S, TX_LOV4_020, false); else mccoyScan(DIR_S, TX_LOV4_021, false); @@ -189,12 +189,12 @@ void Room::love4UseSTricorderAnywhere() { // Mccoy walks around to all romulans, giving each the cure void Room::love4UseCureOnRomulan() { - if (_vm->_awayMission.love.romulansCured) + if (_awayMission->love.romulansCured) showText(TX_SPEAKER_MCCOY, TX_LOV4_013); else { - _vm->_awayMission.love.missionScore += 2; - _vm->_awayMission.love.romulansCured = true; - _vm->_awayMission.disableInput = true; + _awayMission->love.missionScore += 2; + _awayMission->love.romulansCured = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_MCCOY, 0x10e, 0xb1, &Room::love4MccoyReachedRomulan4); } } @@ -237,7 +237,7 @@ void Room::love4MccoyCuredRomulan1() { if (!_roomVar.love.gaveWaterToRomulans) showText(TX_SPEAKER_MCCOY, TX_LOV4_023); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } @@ -245,17 +245,17 @@ void Room::love4UseWaterOnRomulan() { // BUGFIX: If the romulans are unconscious, you can't use water on them. // In the original, you could use water on them, but there would be no corresponding // narration, you'd get no points for it, and you'd lose the water anyway. - if (!_vm->_awayMission.love.romulansCured) + if (!_awayMission->love.romulansCured) showText(TX_SPEAKER_MCCOY, TX_LOV4_009); else { _roomVar.love.gaveWaterToRomulans = true; - if (_vm->_awayMission.love.romulansCured) { + if (_awayMission->love.romulansCured) { showText(TX_LOV4N013); showText(TX_SPEAKER_MCCOY, TX_LOV4_026); showText(TX_SPEAKER_KIRK, TX_LOV4_001); - if (!_vm->_awayMission.love.gotPointsForHydratingRomulans) { - _vm->_awayMission.love.gotPointsForHydratingRomulans = true; - _vm->_awayMission.love.missionScore += 2; + if (!_awayMission->love.gotPointsForHydratingRomulans) { + _awayMission->love.gotPointsForHydratingRomulans = true; + _awayMission->love.missionScore += 2; } } @@ -270,11 +270,11 @@ void Room::love4UseWaterOnRomulan() { // These events don't make too much sense, probably cut in the original release, but // they did get voice acted anyway. if (false) { - if (_vm->_awayMission.love.romulansUnconsciousFromVirus) + if (_awayMission->love.romulansUnconsciousFromVirus) showText(TX_SPEAKER_MCCOY, TX_LOV4_009); else { showText(TX_LOV4N004); - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_FERRIS, TX_LOV4_029); showText(TX_SPEAKER_KIRK, TX_LOV4_004); } diff --git a/engines/startrek/rooms/love5.cpp b/engines/startrek/rooms/love5.cpp index fdad4a3a8b..370f06336a 100644 --- a/engines/startrek/rooms/love5.cpp +++ b/engines/startrek/rooms/love5.cpp @@ -37,7 +37,7 @@ void Room::love5Tick1() { loadActorAnim(OBJECT_8, "s3r6c1", 0x27, 0xa9); - if (_vm->_awayMission.love.freedMarcusAndCheever) { + if (_awayMission->love.freedMarcusAndCheever) { loadActorAnim(OBJECT_MARCUS, "marcusst", 0x28, 0xa6); loadActorAnim(OBJECT_CHEEVER, "s3gtupst", 0x49, 0xac); } else { @@ -45,25 +45,25 @@ void Room::love5Tick1() { loadActorAnim(OBJECT_CHEEVER, "s3gtup2", 0x49, 0xac); } - if (_vm->_awayMission.love.preaxCured) + if (_awayMission->love.preaxCured) loadActorAnim(OBJECT_PREAX, "s3r6r3", 0x116, 0xba); else loadActorAnim(OBJECT_PREAX, "s3r6r2", 0x116, 0xba); - if (_vm->_awayMission.love.releasedHumanLaughingGas) - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); - if (_vm->_awayMission.love.releasedRomulanLaughingGas) - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); - _vm->_awayMission.timers[2] = 200; + if (_awayMission->love.releasedHumanLaughingGas) + _awayMission->timers[0] = getRandomWordInRange(200, 400); + if (_awayMission->love.releasedRomulanLaughingGas) + _awayMission->timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[2] = 200; _roomVar.love.cmnXPosToCureSpock = 0x89; _roomVar.love.cmnXPosToCureSpock = 0xb9; } void Room::love5TouchedWarp1() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playSoundEffectIndex(SND_DOOR1); - _vm->_awayMission.timers[4] = 10; + _awayMission->timers[4] = 10; } void Room::love5Timer4Expired() { @@ -121,7 +121,7 @@ void Room::love5LookAtConsole() { } void Room::love5LookAtDrMarcus() { - if (_vm->_awayMission.love.freedMarcusAndCheever) + if (_awayMission->love.freedMarcusAndCheever) showText(TX_LOV5N001); else { // BUGFIX: originally played audio "LOV5N001", which is only the first sentence of @@ -133,12 +133,12 @@ void Room::love5LookAtDrMarcus() { } void Room::love5LookAtDrCheever() { - if (_vm->_awayMission.love.freedMarcusAndCheever) + if (_awayMission->love.freedMarcusAndCheever) showText(TX_LOV5N000); else { showText(TX_LOV5N014); showText(TX_SPEAKER_CHEEVER, TX_LOV5_057); - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_FERRIS, TX_LOV5_054); showText(TX_SPEAKER_CHEEVER, TX_LOV5_058); } @@ -146,15 +146,15 @@ void Room::love5LookAtDrCheever() { } void Room::love5LookAtPreax() { - if (_vm->_awayMission.love.preaxCured) + if (_awayMission->love.preaxCured) showText(TX_LOV5N011); else showText(TX_LOV5N012); } void Room::love5TalkToPreax() { - if (_vm->_awayMission.love.preaxCured) { - if (!_vm->_awayMission.love.freedMarcusAndCheever) + if (_awayMission->love.preaxCured) { + if (!_awayMission->love.freedMarcusAndCheever) showText(TX_LOV5N006); else { const int choices[] = { @@ -193,9 +193,9 @@ void Room::love5TalkToPreax() { showText(TX_SPEAKER_KIRK, TX_LOV5_002); showText(TX_SPEAKER_MARCUS, TX_LOV5_045); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; - if (!_vm->_awayMission.love.spockCured) { + if (!_awayMission->love.spockCured) { showText(TX_SPEAKER_MCCOY, TX_LOV5_021); walkCrewmanC(OBJECT_MCCOY, 0x87, 0xc3, &Room::love5MccoyReachedSpockToCure); } else @@ -221,17 +221,17 @@ void Room::love5MccoyCuredSpock() { void Room::love5EndMission() { showText(TX_SPEAKER_KIRK, TX_LOV5_001); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; walkCrewmanC(OBJECT_KIRK, 0x64, 0xc2, &Room::love5CrewmanReachedBeamoutPosition); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; walkCrewmanC(OBJECT_SPOCK, 0x5a, 0xb8, &Room::love5CrewmanReachedBeamoutPosition); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; walkCrewmanC(OBJECT_MCCOY, 0x6e, 0xb8, &Room::love5CrewmanReachedBeamoutPosition); - if (!_vm->_awayMission.redshirtDead) { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; + if (!_awayMission->redshirtDead) { + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; walkCrewmanC(OBJECT_REDSHIRT, 0x69, 0xae, &Room::love5CrewmanReachedBeamoutPosition); _roomVar.love.numCrewmenReadyToBeamOut--; } @@ -240,13 +240,13 @@ void Room::love5EndMission() { void Room::love5CrewmanReachedBeamoutPosition() { _roomVar.love.numCrewmenReadyToBeamOut++; if (_roomVar.love.numCrewmenReadyToBeamOut == 3) { - _vm->_awayMission.love.missionScore += 17; - endMission(_vm->_awayMission.love.missionScore, 0x2c, 0); + _awayMission->love.missionScore += 17; + endMission(_awayMission->love.missionScore, 0x2c, 0); } } void Room::love5TalkToDrMarcus() { - if (!_vm->_awayMission.love.freedMarcusAndCheever) + if (!_awayMission->love.freedMarcusAndCheever) showText(TX_SPEAKER_MARCUS, TX_LOV5_040); else { if (!haveItem(OBJECT_ICURE)) @@ -257,7 +257,7 @@ void Room::love5TalkToDrMarcus() { } void Room::love5TalkToDrCheever() { - if (!_vm->_awayMission.love.freedMarcusAndCheever) + if (!_awayMission->love.freedMarcusAndCheever) showText(TX_SPEAKER_CHEEVER, TX_LOV5_055); else showText(TX_SPEAKER_CHEEVER, TX_LOV5_056); @@ -277,7 +277,7 @@ void Room::love5TalkToSpock() { } void Room::love5TalkToMccoy() { - if (!_vm->_awayMission.love.preaxCured) + if (!_awayMission->love.preaxCured) showText(TX_SPEAKER_MCCOY, TX_LOV5_014); } @@ -299,8 +299,8 @@ void Room::love5UseMTricorderOnMarcusOrCheever() { } void Room::love5UseMTricorderOnPreax() { - if (!_vm->_awayMission.love.preaxCured) { - if (_vm->_awayMission.love.romulansUnconsciousFromLaughingGas) + if (!_awayMission->love.preaxCured) { + if (_awayMission->love.romulansUnconsciousFromLaughingGas) mccoyScan(DIR_E, TX_LOV5_024, false); else mccoyScan(DIR_E, TX_LOV5_016, false); @@ -308,30 +308,30 @@ void Room::love5UseMTricorderOnPreax() { } void Room::love5UseMedkitOnPreax() { - if (_vm->_awayMission.love.preaxCured) + if (_awayMission->love.preaxCured) showText(TX_SPEAKER_MCCOY, TX_LOV5_015); else showText(TX_SPEAKER_MCCOY, TX_LOV5_019); } void Room::love5UseWaterOnPreax() { - if (_vm->_awayMission.love.preaxCured) { + if (_awayMission->love.preaxCured) { showText(TX_LOV5N018); showText(TX_SPEAKER_MCCOY, TX_LOV5_029); showText(TX_SPEAKER_KIRK, TX_LOV5_007); - if (!_vm->_awayMission.love.gotPointsForHydratingPreax) { - _vm->_awayMission.love.gotPointsForHydratingPreax = true; - _vm->_awayMission.love.missionScore++; + if (!_awayMission->love.gotPointsForHydratingPreax) { + _awayMission->love.gotPointsForHydratingPreax = true; + _awayMission->love.missionScore++; } loseItem(OBJECT_IH2O); } else { - if (_vm->_awayMission.love.romulansUnconsciousFromVirus) { + if (_awayMission->love.romulansUnconsciousFromVirus) { showText(TX_SPEAKER_MCCOY, TX_LOV5_013); // BUGFIX: original didn't have correct speaker. Also, you shouldn't lose your // water since it's not actually used here, so a "loseItem" line was removed. } else { showText(TX_LOV5N017); - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_FERRIS, TX_LOV5_053); showText(TX_SPEAKER_KIRK, TX_LOV5_005); } @@ -340,9 +340,9 @@ void Room::love5UseWaterOnPreax() { // BUGFIX: give a point for hydrating the Preax. It's inconsistent to only // give points if he's already cured. - if (!_vm->_awayMission.love.gotPointsForHydratingPreax) { - _vm->_awayMission.love.gotPointsForHydratingPreax = true; - _vm->_awayMission.love.missionScore++; + if (!_awayMission->love.gotPointsForHydratingPreax) { + _awayMission->love.gotPointsForHydratingPreax = true; + _awayMission->love.missionScore++; } } } @@ -354,7 +354,7 @@ void Room::love5UseCureSampleOnPreax() { void Room::love5UseCureOnPreax() { - if (!_vm->_awayMission.love.preaxCured) + if (!_awayMission->love.preaxCured) walkCrewmanC(OBJECT_MCCOY, 0x116, 0xbf, &Room::love5ReachedPreaxUsingCure); } @@ -364,7 +364,7 @@ void Room::love5ReachedPreaxUsingCure() { void Room::love5CuredPreax() { walkCrewman(OBJECT_MCCOY, 0xdc, 0xc3); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; showText(TX_LOV5N007); @@ -375,7 +375,7 @@ void Room::love5CuredPreax() { showText(TX_SPEAKER_MCCOY, TX_LOV5_017); loadActorAnim2(OBJECT_PREAX, "s3r6r1", 0x116, 0xba); - _vm->_awayMission.love.preaxCured = true; + _awayMission->love.preaxCured = true; } @@ -386,10 +386,10 @@ void Room::love5UseAnythingOnPreax() { // Kirk walks to Cheever, unties him, then walks to Marcus, unties her. void Room::love5UseKirkOnMarcusOrCheever() { - if (!_vm->_awayMission.love.freedMarcusAndCheever) { - _vm->_awayMission.disableInput = true; + if (!_awayMission->love.freedMarcusAndCheever) { + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0x49, 0xb1, &Room::love5KirkReachedCheever); - _vm->_awayMission.love.freedMarcusAndCheever = true; + _awayMission->love.freedMarcusAndCheever = true; } } @@ -410,11 +410,11 @@ void Room::love5KirkUntiedMarcus() { loadActorStandAnim(OBJECT_KIRK); loadActorAnimC(OBJECT_MARCUS, "marcus", 0x28, 0xa6, &Room::love5MarcusStoodUp); walkCrewman(OBJECT_KIRK, 0x35, 0xb9); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; } void Room::love5MarcusStoodUp() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_MARCUS, TX_LOV5_041); } diff --git a/engines/startrek/rooms/lovea.cpp b/engines/startrek/rooms/lovea.cpp index e4e9f1c158..2f0bf77732 100644 --- a/engines/startrek/rooms/lovea.cpp +++ b/engines/startrek/rooms/lovea.cpp @@ -64,7 +64,7 @@ void Room::loveaTimer0Expired() { const TextRef *textTable; - if (randomVal == 0 || _vm->_awayMission.redshirtDead) { + if (randomVal == 0 || _awayMission->redshirtDead) { speaker = TX_SPEAKER_MCCOY; textTable = mccoyText; } else { @@ -76,7 +76,7 @@ void Room::loveaTimer0Expired() { showText(speaker, textTable[randomVal]); - if (!_vm->_awayMission.love.releasedRomulanLaughingGas) { + if (!_awayMission->love.releasedRomulanLaughingGas) { const int spockText[] = { TX_LOV0_029, TX_LOV0_033, @@ -88,7 +88,7 @@ void Room::loveaTimer0Expired() { // BUG(?): This is in an if statement, meaning the human crewmen stop talking from // laughing gas if Spock is under laughing gas effects. Might be intentional, to // reduce "spamming" of text? - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); + _awayMission->timers[0] = getRandomWordInRange(200, 400); } } @@ -107,18 +107,18 @@ void Room::loveaTimer1Expired() { showText(TX_SPEAKER_SPOCK, spockText[getRandomWordInRange(0, 7)]); - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[1] = getRandomWordInRange(200, 400); } void Room::loveaUseMedkitOnSpock() { - if (_vm->_awayMission.love.spockCured) + if (_awayMission->love.spockCured) showText(TX_SPEAKER_MCCOY, TX_LOV5_015); else showText(TX_SPEAKER_MCCOY, TX_LOV5_019); } void Room::loveaUseCureSampleOnSpock() { - if (_vm->_awayMission.love.spockCured) { + if (_awayMission->love.spockCured) { walkCrewman(OBJECT_SPOCK, _roomVar.love.cmnXPosToCureSpock, _roomVar.love.cmnYPosToCureSpock, 99); walkCrewman(OBJECT_MCCOY, _roomVar.love.cmnXPosToCureSpock, _roomVar.love.cmnYPosToCureSpock + 10, 99); } else @@ -127,7 +127,7 @@ void Room::loveaUseCureSampleOnSpock() { void Room::loveaUseCureOnSpock() { - if (_vm->_awayMission.love.spockCured) + if (_awayMission->love.spockCured) showText(TX_SPEAKER_MCCOY, TX_LOV5_015); else { walkCrewman(OBJECT_SPOCK, _roomVar.love.cmnXPosToCureSpock, _roomVar.love.cmnYPosToCureSpock, 99); @@ -146,37 +146,37 @@ void Room::loveaFinishedCuringSpock() { showText(TX_SPEAKER_SPOCK, TX_LOV5_038); showText(TX_SPEAKER_MCCOY, TX_LOV5_027); showText(TX_SPEAKER_SPOCK, TX_LOV5C001); - _vm->_awayMission.love.spockCured = true; + _awayMission->love.spockCured = true; } // Timer 2 counts down the time until Spock and the Romulans succumb to the virus. // BUG(-ish): once Spock is cured, the romulans will never succumb to the virus. void Room::loveaTimer2Expired() { - if (!_vm->_awayMission.love.spockCured) { - _vm->_awayMission.love.spockInfectionCounter++; - if (_vm->_awayMission.love.spockInfectionCounter >= 100) { // Spock succumbs, game over + if (!_awayMission->love.spockCured) { + _awayMission->love.spockInfectionCounter++; + if (_awayMission->love.spockInfectionCounter >= 100) { // Spock succumbs, game over loadActorAnim(OBJECT_SPOCK, "sgetdn", -1, -1, 0); playMidiMusicTracks(2, -1); // FIXME: assembly had no second parameter...? showText(TX_GENER004); showGameOverMenu(); - } else if (_vm->_awayMission.love.spockInfectionCounter == 15) { + } else if (_awayMission->love.spockInfectionCounter == 15) { showText(TX_SPEAKER_SPOCK, TX_SPOKCOFF); - _vm->_awayMission.love.spockInfectionCounter++; - } else if (_vm->_awayMission.love.spockInfectionCounter == 30) { + _awayMission->love.spockInfectionCounter++; + } else if (_awayMission->love.spockInfectionCounter == 30) { showText(TX_SPEAKER_MCCOY, TX_LOVA_F08); - _vm->_awayMission.love.spockInfectionCounter++; - } else if (_vm->_awayMission.love.spockInfectionCounter == 45) { + _awayMission->love.spockInfectionCounter++; + } else if (_awayMission->love.spockInfectionCounter == 45) { showText(TX_SPEAKER_SPOCK, TX_SPOKCOFF); - _vm->_awayMission.love.spockInfectionCounter++; - } else if (_vm->_awayMission.love.spockInfectionCounter == 60) { + _awayMission->love.spockInfectionCounter++; + } else if (_awayMission->love.spockInfectionCounter == 60) { showText(TX_SPEAKER_SPOCK, TX_LOVA_F54); - _vm->_awayMission.love.romulansUnconsciousFromVirus = true; - _vm->_awayMission.love.spockInfectionCounter++; + _awayMission->love.romulansUnconsciousFromVirus = true; + _awayMission->love.spockInfectionCounter++; } } - _vm->_awayMission.timers[2] = 200; + _awayMission->timers[2] = 200; } void Room::loveaUseMTricorderOnSpock() { @@ -184,19 +184,19 @@ void Room::loveaUseMTricorderOnSpock() { // (possible future enhancement?) playSoundEffectIndex(SND_TRICORDER); - if (_vm->_awayMission.love.spockCured) + if (_awayMission->love.spockCured) showText(TX_SPEAKER_MCCOY, TX_LOVA_F01); - else if (!_vm->_awayMission.love.knowAboutVirus) + else if (!_awayMission->love.knowAboutVirus) showText(TX_SPEAKER_MCCOY, TX_LOVA_F02); - else if (_vm->_awayMission.love.spockInfectionCounter < 10) + else if (_awayMission->love.spockInfectionCounter < 10) showText(TX_SPEAKER_MCCOY, TX_LOVA_F04); - else if (_vm->_awayMission.love.spockInfectionCounter < 30) + else if (_awayMission->love.spockInfectionCounter < 30) showText(TX_SPEAKER_MCCOY, TX_LOVA_F03); - else if (_vm->_awayMission.love.spockInfectionCounter < 50) + else if (_awayMission->love.spockInfectionCounter < 50) showText(TX_SPEAKER_MCCOY, TX_LOVA_F08); - else if (_vm->_awayMission.love.spockInfectionCounter < 70) // BUGFIX: < 70 instead of == 70 + else if (_awayMission->love.spockInfectionCounter < 70) // BUGFIX: < 70 instead of == 70 showText(TX_SPEAKER_MCCOY, TX_TUG2_010); - else if (_vm->_awayMission.love.spockInfectionCounter < 100) + else if (_awayMission->love.spockInfectionCounter < 100) showText(TX_SPEAKER_MCCOY, TX_LOVA_F10); else showText(TX_SPEAKER_MCCOY, TX_LOVA_100); @@ -209,22 +209,22 @@ void Room::loveaUseMTricorderOnHuman() { void Room::loveaUseRomulanLaughingGas() { showText(TX_LOV2N005); - _vm->_awayMission.love.releasedRomulanLaughingGas = true; + _awayMission->love.releasedRomulanLaughingGas = true; loseItem(OBJECT_IRLG); // BUGFIX: start the effects immediately - _vm->_awayMission.timers[1] = getRandomWordInRange(200, 400); + _awayMission->timers[1] = getRandomWordInRange(200, 400); } void Room::loveaUseHumanLaughingGas() { showText(TX_LOV2N005); showText(TX_SPEAKER_SPOCK, TX_MUD2_040); - _vm->_awayMission.love.releasedHumanLaughingGas = true; + _awayMission->love.releasedHumanLaughingGas = true; loseItem(OBJECT_IN2O); playMidiMusicTracks(3, -1); // FIXME: assembly had no second parameter...? // BUGFIX: start the effects immediately - _vm->_awayMission.timers[0] = getRandomWordInRange(200, 400); + _awayMission->timers[0] = getRandomWordInRange(200, 400); } void Room::loveaUseAmmonia() { @@ -242,7 +242,7 @@ void Room::loveaUseCommunicator() { showText(TX_SPEAKER_KIRK, TX_MUD4_018); showText(TX_SPEAKER_UHURA, TX_BRIDU146); showText(TX_SPEAKER_KIRK, TX_VENA_F41); - _vm->_awayMission.love.contactedEnterpriseBeforeCure = true; + _awayMission->love.contactedEnterpriseBeforeCure = true; } } diff --git a/engines/startrek/rooms/mudd0.cpp b/engines/startrek/rooms/mudd0.cpp index 0b450e08fb..ae9d682164 100644 --- a/engines/startrek/rooms/mudd0.cpp +++ b/engines/startrek/rooms/mudd0.cpp @@ -46,27 +46,27 @@ void Room::mudd0Tick1() { // the first meeting. Fixes an issue where Mudd appears in the first room when he's // supposed to be in the medbay. // TODO: verify this matches with floppy version's code - if (_vm->_awayMission.mudd.muddFirstRoomState != 0) - _vm->_awayMission.mudd.muddFirstRoomState = 2; + if (_awayMission->mudd.muddFirstRoomState != 0) + _awayMission->mudd.muddFirstRoomState = 2; else { - _vm->_awayMission.disableInput = 2; + _awayMission->disableInput = 2; loadActorAnim(OBJECT_MUDD, "s4cbhr", 0xa2, 0xa9, 0); } } void Room::mudd0Tick50() { - if (!_vm->_awayMission.mudd.enteredRoom0ForFirstTime) { + if (!_awayMission->mudd.enteredRoom0ForFirstTime) { playMidiMusicTracks(3); - _vm->_awayMission.mudd.enteredRoom0ForFirstTime = true; + _awayMission->mudd.enteredRoom0ForFirstTime = true; } } void Room::mudd0Tick60() { - if (_vm->_awayMission.mudd.muddFirstRoomState == 0) { + if (_awayMission->mudd.muddFirstRoomState == 0) { // ENHANCEMENT: Move this into if statement (related to above enhancement) - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; - _vm->_awayMission.mudd.muddFirstRoomState++; + _awayMission->mudd.muddFirstRoomState++; showText(TX_SPEAKER_MUDD, TX_MUD0_037); showText(TX_SPEAKER_KIRK, TX_MUD0_009); @@ -90,13 +90,13 @@ void Room::mudd0UseCommunicator() { } void Room::mudd0LookAtFoodBox() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD0N012); } void Room::mudd0LookAtComponentBox() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD0N013); } @@ -106,19 +106,19 @@ void Room::mudd0LookAnywhere() { } void Room::mudd0LookAtMemoryDiskBox() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD0N010); } void Room::mudd0LookAtDegrimerBox() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD0N008); } void Room::mudd0LookAtLense() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD0N014); } @@ -145,52 +145,52 @@ void Room::mudd0UseSTricorderOnMemoryDiskBox() { void Room::mudd0UseSTricorderOnDegrimerBox() { // Narrator says something, not Spock (so we don't use "spockScan" function) - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; loadActorAnim2(OBJECT_SPOCK, "sscanw", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_MUD0N000); } void Room::mudd0UseMTricorderOnLense() { - if (_vm->_awayMission.mudd.discoveredLenseAndDegrimerFunction) + if (_awayMission->mudd.discoveredLenseAndDegrimerFunction) mccoyScan(DIR_E, TX_MUD0_012, true); else mccoyScan(DIR_E, TX_MUD0_013, true); } void Room::mudd0GetLense() { - if (_vm->_awayMission.mudd.gotLense) + if (_awayMission->mudd.gotLense) showText(TX_MUD0N016); else { - _vm->_awayMission.mudd.gotLense = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.gotLense = true; + _awayMission->mudd.missionScore++; giveItem(OBJECT_ILENSES); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; loadActorAnim2(OBJECT_KIRK, "s5r1kg", -1, -1); - _vm->_awayMission.timers[1] = 27; + _awayMission->timers[1] = 27; } } void Room::mudd0GetMemoryDisk() { - if (_vm->_awayMission.mudd.gotMemoryDisk) + if (_awayMission->mudd.gotMemoryDisk) showText(TX_MUD0N016); else { - _vm->_awayMission.mudd.gotMemoryDisk = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.gotMemoryDisk = true; + _awayMission->mudd.missionScore++; giveItem(OBJECT_IDISKS); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; loadActorAnimC(OBJECT_KIRK, "kuseln", -1, -1, &Room::mudd0PickedUpItem); } } void Room::mudd0GetDegrimer() { - if (_vm->_awayMission.mudd.gotDegrimer) + if (_awayMission->mudd.gotDegrimer) showText(TX_MUD0N016); else { - _vm->_awayMission.mudd.gotDegrimer = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.gotDegrimer = true; + _awayMission->mudd.missionScore++; giveItem(OBJECT_IDEGRIME); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorAnimC(OBJECT_KIRK, "kusemw", -1, -1, &Room::mudd0PickedUpItem); } } @@ -202,14 +202,14 @@ void Room::mudd0PickedUpLense() { } void Room::mudd0PickedUpItem() { - _vm->_awayMission.disableInput = false; // NOTE: this was never set to true + _awayMission->disableInput = false; // NOTE: this was never set to true showText(TX_LOV1N007); } void Room::mudd0WalkToSouthDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x5a, 0xc7); } @@ -220,7 +220,7 @@ void Room::mudd0TouchedHotspot1() { // Trigger bottom door opening void Room::mudd0WalkToNorthDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xa0, 0x68); } @@ -256,7 +256,7 @@ void Room::mudd0LookAtMudd() { } void Room::mudd0TalkToKirk() { - if (_vm->_awayMission.mudd.muddFirstRoomState == 2) + if (_awayMission->mudd.muddFirstRoomState == 2) showText(TX_SPEAKER_KIRK, TX_MUD0_010); else { showText(TX_SPEAKER_KIRK, TX_MUD0_010); @@ -266,7 +266,7 @@ void Room::mudd0TalkToKirk() { } void Room::mudd0TalkToSpock() { - if (_vm->_awayMission.mudd.muddFirstRoomState == 2) + if (_awayMission->mudd.muddFirstRoomState == 2) showText(TX_SPEAKER_SPOCK, TX_MUD0_022); else { showText(TX_SPEAKER_SPOCK, TX_MUD0_022); @@ -278,7 +278,7 @@ void Room::mudd0TalkToSpock() { } void Room::mudd0TalkToMccoy() { - if (_vm->_awayMission.mudd.muddFirstRoomState == 2) + if (_awayMission->mudd.muddFirstRoomState == 2) showText(TX_SPEAKER_MCCOY, TX_MUD0_016); else { showText(TX_SPEAKER_MCCOY, TX_MUD0_016); @@ -289,7 +289,7 @@ void Room::mudd0TalkToMccoy() { } void Room::mudd0TalkToRedshirt() { - if (_vm->_awayMission.mudd.muddFirstRoomState == 2) { + if (_awayMission->mudd.muddFirstRoomState == 2) { showText(TX_SPEAKER_BUCHERT, TX_MUD0_039); showText(TX_SPEAKER_KIRK, TX_MUD0_008); } else { diff --git a/engines/startrek/rooms/mudd1.cpp b/engines/startrek/rooms/mudd1.cpp index d741478f6d..f3da75350b 100644 --- a/engines/startrek/rooms/mudd1.cpp +++ b/engines/startrek/rooms/mudd1.cpp @@ -48,14 +48,14 @@ namespace StarTrek { void Room::mudd1Tick1() { playVoc("MUD1LOOP"); // BUGFIX: moved this out of below if statement - if (!_vm->_awayMission.mudd.enteredRoom1ForFirstTime) { + if (!_awayMission->mudd.enteredRoom1ForFirstTime) { playMidiMusicTracks(0); - _vm->_awayMission.mudd.enteredRoom1ForFirstTime = true; + _awayMission->mudd.enteredRoom1ForFirstTime = true; } loadActorAnim2(OBJECT_CRANE, "s4wbhs", 0x9b, 0x31); - if (!_vm->_awayMission.mudd.torpedoLoaded) + if (!_awayMission->mudd.torpedoLoaded) loadActorAnim(OBJECT_TORPEDO, "s4wbcs", 0x32, 0x65); } @@ -70,20 +70,20 @@ void Room::mudd1UseCommunicator() { void Room::mudd1UseSpockOnBlueButton() { // Loads up the torpedo - if (!_vm->_awayMission.mudd.torpedoLoaded) { + if (!_awayMission->mudd.torpedoLoaded) { walkCrewmanC(OBJECT_SPOCK, 0x2f, 0x9f, &Room::mudd1SpockReachedBlueButton); - _vm->_awayMission.disableInput = true; - if (!_vm->_awayMission.mudd.gotPointsForLoadingTorpedo) { - _vm->_awayMission.mudd.gotPointsForLoadingTorpedo = true; - _vm->_awayMission.mudd.missionScore += 2; + _awayMission->disableInput = true; + if (!_awayMission->mudd.gotPointsForLoadingTorpedo) { + _awayMission->mudd.gotPointsForLoadingTorpedo = true; + _awayMission->mudd.missionScore += 2; } } } void Room::mudd1SpockReachedBlueButton() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; loadActorAnimC(OBJECT_SPOCK, "susemn", -1, -1, &Room::mudd1SpockPressedBlueButton); - _vm->_awayMission.timers[1] = 5; + _awayMission->timers[1] = 5; } void Room::mudd1SpockPressedBlueButton() { @@ -91,14 +91,14 @@ void Room::mudd1SpockPressedBlueButton() { loadActorAnim(OBJECT_CRANE, "s4wbcr"); loadActorAnim(OBJECT_TORPEDO, "s4wbcn"); loadActorAnimC(OBJECT_CRANE_ANIMATION, "s4wbsl", 0x77, 0x83, &Room::mudd1CraneFinishedMoving); - _vm->_awayMission.mudd.torpedoLoaded = true; + _awayMission->mudd.torpedoLoaded = true; } void Room::mudd1CraneFinishedMoving() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; walkCrewman(OBJECT_SPOCK, 0x43, 0x9f); - if (_vm->_awayMission.mudd.torpedoLoaded) + if (_awayMission->mudd.torpedoLoaded) showText(TX_SPEAKER_SPOCK, TX_MUD1_017); else showText(TX_SPEAKER_SPOCK, TX_MUD1_016); @@ -106,16 +106,16 @@ void Room::mudd1CraneFinishedMoving() { void Room::mudd1UseSpockOnYellowButton() { // Unloads the torpedo - if (_vm->_awayMission.mudd.torpedoLoaded) { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + if (_awayMission->mudd.torpedoLoaded) { + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewmanC(OBJECT_SPOCK, 0x2f, 0x9f, &Room::mudd1SpockReachedYellowButton); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } } void Room::mudd1SpockReachedYellowButton() { loadActorAnim2(OBJECT_SPOCK, "susemn", -1, -1, 3); - _vm->_awayMission.timers[1] = 5; + _awayMission->timers[1] = 5; } void Room::mudd1SpockPressedYellowButton() { @@ -123,24 +123,24 @@ void Room::mudd1SpockPressedYellowButton() { loadActorAnim2(OBJECT_CRANE, "s4wbhb"); loadActorAnim2(OBJECT_TORPEDO, "s4wbcb", 0x32, 0x65, 0); loadActorAnimC(OBJECT_CRANE_ANIMATION, "s4wbsb", -1, -1, &Room::mudd1CraneFinishedMoving); - _vm->_awayMission.mudd.torpedoLoaded = false; + _awayMission->mudd.torpedoLoaded = false; } void Room::mudd1UseSpockOnRedButton() { - if (_vm->_awayMission.mudd.torpedoLoaded) { + if (_awayMission->mudd.torpedoLoaded) { walkCrewmanC(OBJECT_SPOCK, 0x2f, 0x9f, &Room::mudd1SpockReachedRedButton); - _vm->_awayMission.disableInput = true; - if (!_vm->_awayMission.mudd.gotPointsForPressingRedButton) { - _vm->_awayMission.mudd.gotPointsForPressingRedButton = true; - _vm->_awayMission.mudd.missionScore += 3; + _awayMission->disableInput = true; + if (!_awayMission->mudd.gotPointsForPressingRedButton) { + _awayMission->mudd.gotPointsForPressingRedButton = true; + _awayMission->mudd.missionScore += 3; } } } void Room::mudd1SpockReachedRedButton() { loadActorAnimC(OBJECT_SPOCK, "susemn", -1, -1, &Room::mudd1SpockPressedRedButton); - _vm->_awayMission.timers[1] = 5; + _awayMission->timers[1] = 5; } void Room::mudd1SpockPressedRedButton() { @@ -150,8 +150,8 @@ void Room::mudd1SpockPressedRedButton() { showText(TX_SPEAKER_SPOCK, TX_MUD1_021); showText(TX_SPEAKER_SPOCK, TX_MUD1_023); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.mudd.knowAboutTorpedo = true; + _awayMission->disableInput = false; + _awayMission->mudd.knowAboutTorpedo = true; const int choices[] = { TX_SPEAKER_KIRK, @@ -165,7 +165,7 @@ void Room::mudd1SpockPressedRedButton() { switch (choice) { case 0: - _vm->_awayMission.mudd.torpedoStatus = 0; + _awayMission->mudd.torpedoStatus = 0; // ENHANCEMENT: Original text was just "(Spock raises eyebrow)" without any audio. // This changes it to a narration to make it flow better. @@ -177,7 +177,7 @@ void Room::mudd1SpockPressedRedButton() { // fall through case 2: - _vm->_awayMission.mudd.torpedoStatus = 1; + _awayMission->mudd.torpedoStatus = 1; showText(TX_SPEAKER_UHURA, TX_STATICU1); break; } @@ -284,7 +284,7 @@ void Room::mudd1TalkToRedshirt() { void Room::mudd1WalkToSouthDoor() { _roomVar.mudd.walkingToDoor = 1; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xa0, 0xc7); } @@ -296,7 +296,7 @@ void Room::mudd1TouchedHotspot2() { // Trigger door at bottom of room void Room::mudd1WalkToNorthDoor() { _roomVar.mudd.walkingToDoor = 1; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xab, 0x71); } @@ -309,7 +309,7 @@ void Room::mudd1TouchedHotspot1() { // Trigger door at top of room void Room::mudd1WalkToWestDoor() { _roomVar.mudd.walkingToDoor = 2; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x35, 0x71); } diff --git a/engines/startrek/rooms/mudd2.cpp b/engines/startrek/rooms/mudd2.cpp index ef1ec6afb5..43c381a161 100644 --- a/engines/startrek/rooms/mudd2.cpp +++ b/engines/startrek/rooms/mudd2.cpp @@ -38,7 +38,7 @@ namespace StarTrek { void Room::mudd2WalkToNorthDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xbc, 0x6a); } @@ -51,7 +51,7 @@ void Room::mudd2TouchedHotspot0() { // Trigger north door void Room::mudd2WalkToSouthDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x46, 0x6f); } @@ -63,33 +63,33 @@ void Room::mudd2TouchedHotspot1() { void Room::mudd2Tick1() { playVoc("MUD2LOOP"); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; - _vm->_awayMission.mudd.muddCurrentlyInsane = false; - - if (_vm->_awayMission.mudd.muddInsanityState == 0) { // First time entering room - _vm->_awayMission.mudd.muddInsanityState = 1; - } else if (_vm->_awayMission.mudd.muddInsanityState == 2) { // Currently insane - _vm->_awayMission.mudd.muddCurrentlyInsane = true; - if (!_vm->_awayMission.mudd.muddUnconscious) { - _vm->_awayMission.mudd.muddUnconscious = false; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->mudd.muddCurrentlyInsane = false; + + if (_awayMission->mudd.muddInsanityState == 0) { // First time entering room + _awayMission->mudd.muddInsanityState = 1; + } else if (_awayMission->mudd.muddInsanityState == 2) { // Currently insane + _awayMission->mudd.muddCurrentlyInsane = true; + if (!_awayMission->mudd.muddUnconscious) { + _awayMission->mudd.muddUnconscious = false; loadActorAnim2(OBJECT_MUDD, "s4sbhn", 0x9f, 0xbf); loadActorAnim2(OBJECT_CAPSULE, "s4sbvp", 0x93, 0xc3); } else { loadActorAnim2(OBJECT_MUDD, "s4sbob", 0x9f, 0xba); } - } else if (_vm->_awayMission.mudd.muddUnavailable) { - _vm->_awayMission.mudd.muddInsanityState = 1; - } else if (_vm->_awayMission.mudd.muddInsanityState == 1) { // Second time entering room, start cutscene + } else if (_awayMission->mudd.muddUnavailable) { + _awayMission->mudd.muddInsanityState = 1; + } else if (_awayMission->mudd.muddInsanityState == 1) { // Second time entering room, start cutscene playMidiMusicTracks(3); loadActorAnim2(OBJECT_MUDD, "s4sbhw", 0x99, 0xbf); - _vm->_awayMission.disableInput = 2; - _vm->_awayMission.mudd.muddInhaledGas = true; - _vm->_awayMission.timers[1] = 70; - _vm->_awayMission.mudd.muddInsanityState = 2; - _vm->_awayMission.mudd.muddUnavailable = true; + _awayMission->disableInput = 2; + _awayMission->mudd.muddInhaledGas = true; + _awayMission->timers[1] = 70; + _awayMission->mudd.muddInsanityState = 2; + _awayMission->mudd.muddUnavailable = true; } } @@ -106,8 +106,8 @@ void Room::mudd2UseSpockOnCapsules() { } void Room::mudd2GetCapsules() { - if (!_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) { - if (!_vm->_awayMission.mudd.translatedAlienLanguage) + if (!_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) { + if (!_awayMission->mudd.translatedAlienLanguage) showText(TX_SPEAKER_MCCOY, TX_MUD2_024); else walkCrewmanC(OBJECT_MCCOY, 0x9f, 0xbf, &Room::mudd2MccoyReachedCapsules); @@ -122,7 +122,7 @@ void Room::mudd2MccoyReachedCapsules() { } void Room::mudd2MccoyPickedUpCapsules() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_MCCOY, 0xfe, 0xb2); } @@ -142,39 +142,39 @@ void Room::mudd2UseMTricorderOnCapsules() { } void Room::mudd2UseCapsuleOnControlPanel() { - if (!_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) + if (!_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) walkCrewmanC(OBJECT_MCCOY, 0x9f, 0xbf, &Room::mudd2MccoyReachedControlPanel); else showText(TX_SPEAKER_MCCOY, TX_MUD2_023); } void Room::mudd2MccoyReachedControlPanel() { - if (_vm->_awayMission.mudd.translatedAlienLanguage) + if (_awayMission->mudd.translatedAlienLanguage) loadActorAnimC(OBJECT_MCCOY, "musehn", -1, -1, &Room::mudd2MccoyPutCapsuleInControlPanel); else // NOTE: Unused, since you can't get capsules without translating the language first showText(TX_SPEAKER_MCCOY, TX_MUD2_014); } void Room::mudd2MccoyPutCapsuleInControlPanel() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; loadActorStandAnim(OBJECT_MCCOY); showText(TX_SPEAKER_MCCOY, TX_MUD2_020); showText(TX_SPEAKER_MCCOY, TX_MUD2_029); showText(TX_SPEAKER_SPOCK, TX_MUD2_039); - if (_vm->_awayMission.mudd.muddUnconscious) + if (_awayMission->mudd.muddUnconscious) showText(TX_SPEAKER_MCCOY, TX_MUD2_034); - _vm->_awayMission.mudd.putCapsuleInMedicalMachine = true; + _awayMission->mudd.putCapsuleInMedicalMachine = true; loseItem(OBJECT_ICAPSULE); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_MCCOY, 0xfe, 0xb2); } void Room::mudd2UseKirkOnBed() { - if (!_vm->_awayMission.mudd.putCapsuleInMedicalMachine && !_vm->_awayMission.mudd.translatedAlienLanguage) { + if (!_awayMission->mudd.putCapsuleInMedicalMachine && !_awayMission->mudd.translatedAlienLanguage) { walkCrewmanC(OBJECT_KIRK, 0xd7, 0xbd, &Room::mudd2KirkReachedBed); - } else if (_vm->_awayMission.mudd.translatedAlienLanguage) { + } else if (_awayMission->mudd.translatedAlienLanguage) { walkCrewman(OBJECT_KIRK, 0xd7, 0xbd, 7); // BUG(?): no continuation? } } @@ -195,7 +195,7 @@ void Room::mudd2MuddNoticedKirk() { void Room::mudd2MuddDroppedCapsule() { loadActorAnim2(OBJECT_MUDD, "s4sbhn", 0x9f, 0xbf, 3); // NOTE: no callback from this loadActorAnim2(OBJECT_CAPSULE, "s4sbvp", 0x93, 0xc3); - _vm->_awayMission.mudd.muddCurrentlyInsane = true; + _awayMission->mudd.muddCurrentlyInsane = true; showText(TX_SPEAKER_MCCOY, TX_MUD2_032); showText(TX_SPEAKER_MUDD, TX_MUD2_049); @@ -204,12 +204,12 @@ void Room::mudd2MuddDroppedCapsule() { showText(TX_SPEAKER_MCCOY, TX_MUD2_031); showText(TX_SPEAKER_MUDD, TX_MUD2_050); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::mudd2UsePhaserOnMudd() { - if (_vm->_awayMission.mudd.muddInhaledGas && !_vm->_awayMission.mudd.muddUnconscious) { + if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious) { showText(TX_SPEAKER_BUCHERT, TX_MUD2_053); showText(TX_SPEAKER_MUDD, TX_MUD2_042); showText(TX_SPEAKER_MUDD, TX_MUD2_043); @@ -219,8 +219,8 @@ void Room::mudd2UsePhaserOnMudd() { // Spock neck-pinches Mudd void Room::mudd2UseSpockOnMudd() { - if (_vm->_awayMission.mudd.muddInhaledGas && !_vm->_awayMission.mudd.muddUnconscious) { - _vm->_awayMission.disableInput = true; + if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious) { + _awayMission->disableInput = true; walkCrewmanC(OBJECT_SPOCK, 0x8a, 0xbf, &Room::mudd2SpockReachedMudd); } } @@ -236,14 +236,14 @@ void Room::mudd2SpockPinchedMudd() { showText(TX_SPEAKER_SPOCK, TX_MUD2_012); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.mudd.muddUnconscious = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->disableInput = false; + _awayMission->mudd.muddUnconscious = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0x118, 0xc4); } void Room::mudd2UseKirkOnMudd() { - if (_vm->_awayMission.mudd.muddInhaledGas && !_vm->_awayMission.mudd.muddUnconscious) { + if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious) { showText(TX_SPEAKER_KIRK, TX_MUD2_001); mudd2UseSpockOnMudd(); } @@ -251,14 +251,14 @@ void Room::mudd2UseKirkOnMudd() { void Room::mudd2UseRedshirtOnMudd() { - if (_vm->_awayMission.mudd.muddInhaledGas && !_vm->_awayMission.mudd.muddUnconscious) { - _vm->_awayMission.disableInput = true; + if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious) { + _awayMission->disableInput = true; walkCrewmanC(OBJECT_REDSHIRT, 0xc3, 0xbe, &Room::mudd2RedshirtReachedMudd); } } void Room::mudd2RedshirtReachedMudd() { - _vm->_awayMission.timers[2] = 8; + _awayMission->timers[2] = 8; loadActorAnimC(OBJECT_REDSHIRT, "s4sbrh", -1, -1, &Room::mudd2RedshirtPushedAway); playVoc("ROCKFACE"); loadActorAnimC(OBJECT_MUDD, "s4sbhh", 0x9f, 0xbf, &Room::mudd2MuddFinishedPushingRedshirt); @@ -275,8 +275,8 @@ void Room::mudd2MuddFinishedPushingRedshirt() { void Room::mudd2RedshirtPushedAway() { showText(TX_SPEAKER_BUCHERT, TX_MUD2_052); loadActorAnim(OBJECT_REDSHIRT, "rstnds", 0xd8, 0xc3); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->disableInput = false; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; walkCrewman(OBJECT_REDSHIRT, 0x117, 0xae); } @@ -286,18 +286,18 @@ void Room::mudd2RedshirtPushedAway() { // OBJECT_IMTRICOR in a USE action. // The function itself was also modified (ie. condition for showing text was inverted). void Room::mudd2UseMTricorderOnMudd() { - if (_vm->_awayMission.mudd.muddInhaledGas && !_vm->_awayMission.mudd.muddUnconscious) + if (_awayMission->mudd.muddInhaledGas && !_awayMission->mudd.muddUnconscious) mccoyScan(DIR_W, TX_MUD2_013, false); } void Room::mudd2UseMedkitOnMudd() { - if (!_vm->_awayMission.mudd.muddInhaledGas) + if (!_awayMission->mudd.muddInhaledGas) return; - else if (_vm->_awayMission.mudd.muddUnconscious) { - if (!_vm->_awayMission.mudd.translatedAlienLanguage) + else if (_awayMission->mudd.muddUnconscious) { + if (!_awayMission->mudd.translatedAlienLanguage) showText(TX_SPEAKER_MCCOY, TX_MUD2_015); - else if (!_vm->_awayMission.mudd.putCapsuleInMedicalMachine) + else if (!_awayMission->mudd.putCapsuleInMedicalMachine) showText(TX_SPEAKER_MCCOY, TX_MUD2_021); else walkCrewmanC(OBJECT_MCCOY, 0xde, 0xaf, &Room::mudd2MccoyReachedMudd); @@ -306,20 +306,20 @@ void Room::mudd2UseMedkitOnMudd() { } void Room::mudd2MccoyReachedMudd() { - _vm->_awayMission.mudd.missionScore += 2; + _awayMission->mudd.missionScore += 2; loadActorAnimC(OBJECT_MCCOY, "s4sbms", -1, -1, &Room::mudd2MccoyCuredMudd); } void Room::mudd2MccoyCuredMudd() { - _vm->_awayMission.mudd.muddUnavailable = false; - _vm->_awayMission.mudd.muddInsanityState = 3; - _vm->_awayMission.mudd.muddCurrentlyInsane = false; - _vm->_awayMission.mudd.muddInhaledGas = false; + _awayMission->mudd.muddUnavailable = false; + _awayMission->mudd.muddInsanityState = 3; + _awayMission->mudd.muddCurrentlyInsane = false; + _awayMission->mudd.muddInhaledGas = false; showText(TX_SPEAKER_MCCOY, TX_MUD2_033); showText(TX_SPEAKER_MUDD, TX_MUD2_045); - _vm->_awayMission.mudd.muddUnconscious = false; + _awayMission->mudd.muddUnconscious = false; } @@ -354,7 +354,7 @@ void Room::mudd2LookAtBed() { void Room::mudd2TalkToKirk() { // BUGFIX: second condition in if statement changed to "must be false" instead of // "must be true". (Same applies to below talk functions.) - if (!_vm->_awayMission.mudd.muddCurrentlyInsane || !_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) + if (!_awayMission->mudd.muddCurrentlyInsane || !_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) showText(TX_SPEAKER_KIRK, TX_MUD2_010); else { showText(TX_SPEAKER_KIRK, TX_MUD2_005); @@ -364,7 +364,7 @@ void Room::mudd2TalkToKirk() { } void Room::mudd2TalkToSpock() { - if (!_vm->_awayMission.mudd.muddCurrentlyInsane || !_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) { + if (!_awayMission->mudd.muddCurrentlyInsane || !_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) { showText(TX_SPEAKER_SPOCK, TX_MUD2_040); showText(TX_SPEAKER_KIRK, TX_MUD2_011); } else { @@ -373,7 +373,7 @@ void Room::mudd2TalkToSpock() { } void Room::mudd2TalkToMccoy() { - if (!_vm->_awayMission.mudd.muddCurrentlyInsane || !_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) { + if (!_awayMission->mudd.muddCurrentlyInsane || !_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) { showText(TX_SPEAKER_MCCOY, TX_MUD2_025); showText(TX_SPEAKER_KIRK, TX_MUD2_007); } else { @@ -382,7 +382,7 @@ void Room::mudd2TalkToMccoy() { } void Room::mudd2TalkToRedshirt() { - if (!_vm->_awayMission.mudd.muddCurrentlyInsane || !_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) { + if (!_awayMission->mudd.muddCurrentlyInsane || !_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) { showText(TX_SPEAKER_BUCHERT, TX_MUD2_054); showText(TX_SPEAKER_KIRK, TX_MUD2_008); } else { @@ -393,9 +393,9 @@ void Room::mudd2TalkToRedshirt() { } void Room::mudd2TalkToMudd() { - if (!_vm->_awayMission.mudd.muddCurrentlyInsane || !_vm->_awayMission.mudd.muddInhaledGas || _vm->_awayMission.mudd.muddUnconscious) + if (!_awayMission->mudd.muddCurrentlyInsane || !_awayMission->mudd.muddInhaledGas || _awayMission->mudd.muddUnconscious) return; - else if (_vm->_awayMission.mudd.muddInhaledGas) { + else if (_awayMission->mudd.muddInhaledGas) { showText(TX_SPEAKER_MUDD, TX_MUD2_048); showText(TX_SPEAKER_MCCOY, TX_MUD2_028); } else { // NOTE: Unused (assumes harry is in a normal state, which doesn't happen here) diff --git a/engines/startrek/rooms/mudd3.cpp b/engines/startrek/rooms/mudd3.cpp index 792e749f30..eb02450f9b 100644 --- a/engines/startrek/rooms/mudd3.cpp +++ b/engines/startrek/rooms/mudd3.cpp @@ -42,24 +42,24 @@ namespace StarTrek { void Room::mudd3Tick1() { playVoc("MUD3LOOP"); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; - if (_vm->_awayMission.mudd.databaseDestroyed) { + if (_awayMission->mudd.databaseDestroyed) { loadActorAnim(OBJECT_9, "s4lbpb", 0xa2, 0x9f); // FIXME: is this supposed to be in this if statement? - if (!_vm->_awayMission.mudd.tookRepairTool) + if (!_awayMission->mudd.tookRepairTool) loadActorAnim(OBJECT_REPAIR_TOOL, "s4lbdv", 0xb7, 0xa8); } - _vm->_awayMission.mudd.muddInDatabaseRoom = false; + _awayMission->mudd.muddInDatabaseRoom = false; - if (!_vm->_awayMission.mudd.muddVisitedDatabaseRoom && _vm->_awayMission.mudd.translatedAlienLanguage && !_vm->_awayMission.mudd.muddUnavailable) { - _vm->_awayMission.mudd.muddVisitedDatabaseRoom = true; + if (!_awayMission->mudd.muddVisitedDatabaseRoom && _awayMission->mudd.translatedAlienLanguage && !_awayMission->mudd.muddUnavailable) { + _awayMission->mudd.muddVisitedDatabaseRoom = true; loadActorAnim(OBJECT_MUDD, "s4lbhs", 0xa2, 0x9f); playMidiMusicTracks(3); - _vm->_awayMission.mudd.muddInDatabaseRoom = true; - _vm->_awayMission.timers[2] = 10; + _awayMission->mudd.muddInDatabaseRoom = true; + _awayMission->timers[2] = 10; } } @@ -71,7 +71,7 @@ void Room::mudd3UseCommunicator() { void Room::mudd3LookAtScreen() { // BUGFIX: the condition was flipped in the original; the more "vague" description // should be shown before the alien language is understood. - if (_vm->_awayMission.mudd.translatedAlienLanguage) + if (_awayMission->mudd.translatedAlienLanguage) showText(TX_SPEAKER_SPOCK, TX_MUD3_038); else showText(TX_MUD3N017); @@ -86,18 +86,18 @@ void Room::mudd3UseSTricorderOnScreen() { // BUGFIX: Event was actually "use screen on kirk", which makes no sense. void Room::mudd3UseKirkOnScreen() { - if (!_vm->_awayMission.mudd.translatedAlienLanguage) { + if (!_awayMission->mudd.translatedAlienLanguage) { showText(TX_MUD3N011); showText(TX_SPEAKER_SPOCK, TX_MUD3_037); } } void Room::mudd3UseSpockOnSphere() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; loadActorStandAnim(OBJECT_SPOCK); - if (_vm->_awayMission.mudd.computerDataErasedOrDestroyed) { - if (!_vm->_awayMission.mudd.databaseDestroyed) { + if (_awayMission->mudd.computerDataErasedOrDestroyed) { + if (!_awayMission->mudd.databaseDestroyed) { showText(TX_MUD3N000); showText(TX_SPEAKER_SPOCK, TX_MUD3_052); showText(TX_SPEAKER_KIRK, TX_MUD3_012); @@ -107,11 +107,11 @@ void Room::mudd3UseSpockOnSphere() { showText(TX_SPEAKER_SPOCK, TX_MUD3_048); showText(TX_SPEAKER_KIRK, TX_MUD3_008); showText(TX_SPEAKER_SPOCK, TX_MUD3_051); - } else if (_vm->_awayMission.mudd.translatedAlienLanguage) { - if (_vm->_awayMission.mudd.accessedAlienDatabase) + } else if (_awayMission->mudd.translatedAlienLanguage) { + if (_awayMission->mudd.accessedAlienDatabase) showText(TX_SPEAKER_SPOCK, TX_MUD3_035); else { - _vm->_awayMission.mudd.accessedAlienDatabase = true; + _awayMission->mudd.accessedAlienDatabase = true; showText(TX_SPEAKER_SPOCK, TX_MUD3_054); showText(TX_SPEAKER_MCCOY, TX_MUD3_032); @@ -120,23 +120,23 @@ void Room::mudd3UseSpockOnSphere() { showText(TX_SPEAKER_SPOCK, TX_MUD3_046); showText(TX_SPEAKER_KIRK, TX_MUD3_007); - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.missionScore++; playVoc("LSHAIANS"); loadActorAnim(OBJECT_ALIEN_IMAGE, "s4lbap", 0x32, 0x64); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; loadActorStandAnim(OBJECT_KIRK); loadActorStandAnim(OBJECT_SPOCK); loadActorStandAnim(OBJECT_MCCOY); loadActorStandAnim(OBJECT_REDSHIRT); - _vm->_awayMission.disableInput = true; - _vm->_awayMission.timers[3] = 40; + _awayMission->disableInput = true; + _awayMission->timers[3] = 40; } - } else if (_vm->_awayMission.mudd.discoveredBase3System) { + } else if (_awayMission->mudd.discoveredBase3System) { showText(TX_SPEAKER_SPOCK, TX_MUD3_043); showText(TX_SPEAKER_MCCOY, TX_MUD3_022); showText(TX_SPEAKER_SPOCK, TX_MUD3_056); @@ -145,14 +145,14 @@ void Room::mudd3UseSpockOnSphere() { _roomVar.mudd.suggestedUsingTricorders = true; } else { showText(TX_SPEAKER_SPOCK, TX_MUD3_044); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xcd, 0x87); } } // Finished looking at alien image void Room::mudd3Timer3Expired() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_MCCOY, TX_MUD3_027); showText(TX_SPEAKER_SPOCK, TX_MUD3_053); @@ -162,21 +162,21 @@ void Room::mudd3Timer3Expired() { void Room::mudd3UseMccoyOnSphere() { // ENHANCEMENT: Turn to face south - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; loadActorStandAnim(OBJECT_MCCOY); showText(TX_SPEAKER_MCCOY, TX_MUD3_021); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_MCCOY, 0xec, 0x84); } void Room::mudd3UseRedshirtOnSphere() { // ENHANCEMENT: Turn to face south - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; loadActorStandAnim(OBJECT_REDSHIRT); showText(TX_SPEAKER_BUCHERT, TX_MUD3_068); // BUGFIX: original played McCoy's audio by mistake - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; walkCrewman(OBJECT_REDSHIRT, 0xec, 0x84); } @@ -184,36 +184,36 @@ void Room::mudd3UseMTricorderOnSphere() { if (_roomVar.mudd.tricordersUnavailable) showText(TX_SPEAKER_SPOCK, TX_MUD3_039); // BUGFIX: speaker is Spock else { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; loadActorStandAnim(OBJECT_MCCOY); - if (!_vm->_awayMission.mudd.translatedAlienLanguage && _roomVar.mudd.suggestedUsingTricorders && _vm->_awayMission.mudd.discoveredBase3System) { - _vm->_awayMission.disableInput = true; + if (!_awayMission->mudd.translatedAlienLanguage && _roomVar.mudd.suggestedUsingTricorders && _awayMission->mudd.discoveredBase3System) { + _awayMission->disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; walkCrewman(OBJECT_MCCOY, 0xac, 0x88); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; walkCrewmanC(OBJECT_SPOCK, 0xa5, 0x8c, &Room::mudd3ReadyToHookUpTricorders); } else { showText(TX_SPEAKER_MCCOY, TX_MUD3_021); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_MCCOY, 0xec, 0x84); } } } void Room::mudd3UseSTricorderOnSphere() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; loadActorStandAnim(OBJECT_SPOCK); if (_roomVar.mudd.tricordersUnavailable) showText(TX_SPEAKER_SPOCK, TX_MUD3_039); // BUGFIX: speaker is Spock - else if (_vm->_awayMission.mudd.translatedAlienLanguage || (_vm->_awayMission.mudd.discoveredBase3System && !_roomVar.mudd.suggestedUsingTricorders)) { + else if (_awayMission->mudd.translatedAlienLanguage || (_awayMission->mudd.discoveredBase3System && !_roomVar.mudd.suggestedUsingTricorders)) { showText(TX_SPEAKER_SPOCK, TX_MUD3_041); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xcd, 0x87); - } else if (_vm->_awayMission.mudd.discoveredBase3System && _roomVar.mudd.suggestedUsingTricorders) { // Hooking up tricorders - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + } else if (_awayMission->mudd.discoveredBase3System && _roomVar.mudd.suggestedUsingTricorders) { // Hooking up tricorders + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; walkCrewmanC(OBJECT_MCCOY, 0xca, 0x88, &Room::mudd3ReadyToHookUpTricorders); } else { // No idea how to access it showText(TX_SPEAKER_SPOCK, TX_MUD3_042); @@ -225,7 +225,7 @@ void Room::mudd3ReadyToHookUpTricorders() { showText(TX_SPEAKER_SPOCK, TX_MUD3_018); _roomVar.mudd.tricordersUnavailable = true; - _vm->_awayMission.timers[1] = 50; + _awayMission->timers[1] = 50; loadActorAnim2(OBJECT_SPOCK, "sscans"); playSoundEffectIndex(SND_TRICORDER); @@ -235,14 +235,14 @@ void Room::mudd3Timer1Expired() { // Tricorders ready for use again showText(TX_SPEAKER_SPOCK, TX_MUD3_040); showText(TX_SPEAKER_SPOCK, TX_MUD3_034); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; _roomVar.mudd.tricordersUnavailable = false; _roomVar.mudd.suggestedUsingTricorders = false; - _vm->_awayMission.mudd.translatedAlienLanguage = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.translatedAlienLanguage = true; + _awayMission->mudd.missionScore++; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xcd, 0x87); walkCrewman(OBJECT_MCCOY, 0xec, 0x84); } @@ -256,14 +256,14 @@ void Room::mudd3Timer2Expired() { TX_BLANK }; - _vm->_awayMission.mudd.computerDataErasedOrDestroyed = true; + _awayMission->mudd.computerDataErasedOrDestroyed = true; showText(TX_SPEAKER_MUDD, TX_MUD3_065); int choice = showText(choices); if (choice == 0) { // Allow him to access the database (he ends up erasing it) showText(TX_SPEAKER_MUDD, TX_MUD3_066); - _vm->_awayMission.mudd.muddErasedDatabase = true; + _awayMission->mudd.muddErasedDatabase = true; // ENHANCEMENT: Add a few lines to make it clear that Mudd erased the databanks. // Otherwise, the end of the mission when you confront Mudd doesn't make sense @@ -274,34 +274,34 @@ void Room::mudd3Timer2Expired() { } else { // Don't allow it (he destroys it by accident) showText(TX_SPEAKER_MUDD, TX_MUD3_064); - _vm->_awayMission.timers[4] = 98; - _vm->_awayMission.disableInput = 2; + _awayMission->timers[4] = 98; + _awayMission->disableInput = 2; playMidiMusicTracks(26); loadActorAnim(OBJECT_MUDD, "s4lbhb", 0xa2, 0x9f); } } void Room::mudd3Timer4Expired() { - _vm->_awayMission.mudd.databaseDestroyed = true; + _awayMission->mudd.databaseDestroyed = true; showText(TX_SPEAKER_MUDD, TX_MUD3_063); showText(TX_SPEAKER_MCCOY, TX_MUD3_031); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::mudd3UseMemoryDiskOnSphere() { // ENHANCEMENT: Turn to face south - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorStandAnim(OBJECT_KIRK); - if (_vm->_awayMission.mudd.databaseDestroyed) + if (_awayMission->mudd.databaseDestroyed) showText(TX_MUD3N014); - else if (_vm->_awayMission.mudd.translatedAlienLanguage && !_vm->_awayMission.mudd.muddErasedDatabase) { + else if (_awayMission->mudd.translatedAlienLanguage && !_awayMission->mudd.muddErasedDatabase) { showText(TX_MUD3N020); - if (!_vm->_awayMission.mudd.gotPointsForDownloadingData) { - _vm->_awayMission.mudd.missionScore += 3; - _vm->_awayMission.mudd.gotPointsForDownloadingData = true; + if (!_awayMission->mudd.gotPointsForDownloadingData) { + _awayMission->mudd.missionScore += 3; + _awayMission->mudd.gotPointsForDownloadingData = true; } } else showText(TX_MUD3N019); @@ -309,31 +309,31 @@ void Room::mudd3UseMemoryDiskOnSphere() { void Room::mudd3GetRepairTool() { - if (_vm->_awayMission.mudd.tookRepairTool) + if (_awayMission->mudd.tookRepairTool) showText(TX_MUD3N018); // NOTE: unused, since the object disappears, can't be selected again else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, 0xba, 0xc1, &Room::mudd3ReachedRepairTool); } } void Room::mudd3ReachedRepairTool() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; loadActorAnimC(OBJECT_KIRK, "kusemn", -1, -1, &Room::mudd3PickedUpRepairTool); } void Room::mudd3PickedUpRepairTool() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_REPAIR_TOOL); - _vm->_awayMission.mudd.tookRepairTool = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.tookRepairTool = true; + _awayMission->mudd.missionScore++; giveItem(OBJECT_IDOOVER); } void Room::mudd3LookAtSphere() { // ENHANCEMENT: Turn to face south - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorStandAnim(OBJECT_KIRK); showText(TX_MUD3N015); @@ -341,7 +341,7 @@ void Room::mudd3LookAtSphere() { void Room::mudd3WalkToNorthDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xb8, 0x70); } @@ -354,7 +354,7 @@ void Room::mudd3TouchedHotspot0() { // Triggers north door void Room::mudd3WalkToEastDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x121, 0x81); } @@ -365,28 +365,28 @@ void Room::mudd3TouchedHotspot1() { } void Room::mudd3LookAtKirk() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) + if (!_awayMission->mudd.muddInDatabaseRoom) showText(TX_MUD3N005); else showText(TX_MUD3N004); } void Room::mudd3LookAtSpock() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) + if (!_awayMission->mudd.muddInDatabaseRoom) showText(TX_MUD3N012); else showText(TX_MUD3N002); } void Room::mudd3LookAtMccoy() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) + if (!_awayMission->mudd.muddInDatabaseRoom) showText(TX_MUD3N010); else showText(TX_MUD3N009); } void Room::mudd3LookAtRedshirt() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) + if (!_awayMission->mudd.muddInDatabaseRoom) showText(TX_MUD3N007); else showText(TX_MUD3N006); @@ -397,7 +397,7 @@ void Room::mudd3LookAtMudd() { } void Room::mudd3TalkToKirk() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) { + if (!_awayMission->mudd.muddInDatabaseRoom) { showText(TX_SPEAKER_KIRK, TX_MUD3_014); showText(TX_SPEAKER_SPOCK, TX_MUD3_057); showText(TX_SPEAKER_MCCOY, TX_MUD3_025); @@ -406,7 +406,7 @@ void Room::mudd3TalkToKirk() { } void Room::mudd3TalkToSpock() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) { + if (!_awayMission->mudd.muddInDatabaseRoom) { showText(TX_SPEAKER_SPOCK, TX_MUD3_055); showText(TX_SPEAKER_MCCOY, TX_MUD3_033); showText(TX_SPEAKER_KIRK, TX_MUD3_011); @@ -415,7 +415,7 @@ void Room::mudd3TalkToSpock() { } void Room::mudd3TalkToMccoy() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) + if (!_awayMission->mudd.muddInDatabaseRoom) showText(TX_SPEAKER_MCCOY, TX_MUD3_023); else { showText(TX_SPEAKER_MCCOY, TX_MUD3_030); @@ -424,7 +424,7 @@ void Room::mudd3TalkToMccoy() { } void Room::mudd3TalkToRedshirt() { - if (!_vm->_awayMission.mudd.muddInDatabaseRoom) { + if (!_awayMission->mudd.muddInDatabaseRoom) { showText(TX_SPEAKER_BUCHERT, TX_MUD3_070); showText(TX_SPEAKER_KIRK, TX_MUD3_016); showText(TX_SPEAKER_BUCHERT, TX_MUD3_071); @@ -435,7 +435,7 @@ void Room::mudd3TalkToRedshirt() { void Room::mudd3TalkToMudd() { // ENHANCEMENT: the 2nd part of the if condition is new; whether he physically // destroys the database or does through software, he should give this reaction. - if (_vm->_awayMission.mudd.databaseDestroyed || _vm->_awayMission.mudd.muddErasedDatabase) { + if (_awayMission->mudd.databaseDestroyed || _awayMission->mudd.muddErasedDatabase) { showText(TX_SPEAKER_MUDD, TX_MUD3_060); showText(TX_SPEAKER_MCCOY, TX_MUD3_029); showText(TX_SPEAKER_MUDD, TX_MUD3_061); diff --git a/engines/startrek/rooms/mudd4.cpp b/engines/startrek/rooms/mudd4.cpp index 90bdf1dcee..4a1a1eedb4 100644 --- a/engines/startrek/rooms/mudd4.cpp +++ b/engines/startrek/rooms/mudd4.cpp @@ -39,10 +39,10 @@ namespace StarTrek { void Room::mudd4Tick1() { playVoc("MUD4LOOP"); - if (!_vm->_awayMission.mudd.tookRepairTool) + if (!_awayMission->mudd.tookRepairTool) loadActorAnim(OBJECT_REPAIR_TOOL, "s4crdv", 0xc9, 0x8e); - if (_vm->_awayMission.mudd.viewScreenEnabled) + if (_awayMission->mudd.viewScreenEnabled) loadActorAnim(OBJECT_VIEWSCREEN, "s4crvo", 0xa5, 0x76); } @@ -70,13 +70,13 @@ void Room::mudd4UseSpockOnRightConsole() { } void Room::mudd4UseSpockOnConsole() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; loadActorStandAnim(OBJECT_SPOCK); - if (_vm->_awayMission.mudd.translatedAlienLanguage) { + if (_awayMission->mudd.translatedAlienLanguage) { if (!_roomVar.mudd.usingLeftConsole) showText(TX_SPEAKER_SPOCK, TX_MUD4_057); - } else if (_vm->_awayMission.mudd.discoveredBase3System) { + } else if (_awayMission->mudd.discoveredBase3System) { showText(TX_SPEAKER_SPOCK, TX_MUD4_062); } else { showText(TX_SPEAKER_SPOCK, TX_MUD4_061); @@ -87,22 +87,22 @@ void Room::mudd4UseSpockOnConsole() { showText(TX_SPEAKER_KIRK, TX_MUD4_031); showText(TX_SPEAKER_SPOCK, TX_MUD4_060); - if (!_vm->_awayMission.mudd.discoveredBase3System) { - _vm->_awayMission.mudd.discoveredBase3System = true; - _vm->_awayMission.mudd.missionScore++; + if (!_awayMission->mudd.discoveredBase3System) { + _awayMission->mudd.discoveredBase3System = true; + _awayMission->mudd.missionScore++; } } - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; walkCrewmanC(OBJECT_SPOCK, 0x6d, 0x9a, &Room::mudd4SpockReachedChair); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } void Room::mudd4SpockReachedChair() { - if (_roomVar.mudd.usingLeftConsole && _vm->_awayMission.mudd.translatedAlienLanguage) + if (_roomVar.mudd.usingLeftConsole && _awayMission->mudd.translatedAlienLanguage) loadActorAnimC(OBJECT_SPOCK, "s4crss", -1, -1, &Room::mudd4SpockSatInChair); else - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::mudd4SpockSatInChair() { @@ -127,47 +127,47 @@ void Room::mudd4ShowLeftConsoleMenu() { switch (choice) { case 0: // Sensors loadActorAnimC(OBJECT_SPOCK, "s4crsr", 0x55, 0x98, &Room::mudd4SpockUsedSensors); - _vm->_awayMission.timers[2] = 5; + _awayMission->timers[2] = 5; break; case 1: // Navigation loadActorAnimC(OBJECT_SPOCK, "s4crsl", 0x55, 0x98, &Room::mudd4SpockUsedNavigation); - _vm->_awayMission.timers[2] = 5; + _awayMission->timers[2] = 5; break; case 2: // Engineering loadActorAnimC(OBJECT_SPOCK, "s4crsr", 0x55, 0x98, &Room::mudd4SpockUsedEngineering); - _vm->_awayMission.timers[2] = 5; + _awayMission->timers[2] = 5; break; case 3: // Done - _vm->_awayMission.disableInput = false; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->disableInput = false; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; walkCrewman(OBJECT_SPOCK, 0x69, 0xb7); break; } } void Room::mudd4SpockUsedSensors() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_SPOCK, TX_MUD4_053); mudd4ShowLeftConsoleMenu(); } void Room::mudd4SpockUsedEngineering() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_SPOCK, TX_MUD4_056); mudd4ShowLeftConsoleMenu(); } void Room::mudd4SpockUsedNavigation() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_SPOCK, TX_MUD4_055); mudd4ShowLeftConsoleMenu(); } void Room::mudd4FinishedWalking3() { // Spock reaches console after attempting to use Kirk on one - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; mudd4UseSpockOnLeftConsole(); } @@ -182,34 +182,34 @@ void Room::mudd4UseKirkOnLeftConsole() { } void Room::mudd4UseKirkOnConsole() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; loadActorStandAnim(OBJECT_KIRK); - if (!_vm->_awayMission.mudd.translatedAlienLanguage) { + if (!_awayMission->mudd.translatedAlienLanguage) { showText(TX_SPEAKER_KIRK, TX_MUD4_006); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; walkCrewmanC(OBJECT_SPOCK, 0x6d, 0x9a, &Room::mudd4FinishedWalking3); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } else { if (!_roomVar.mudd.kirkUsingRightConsole) showText(TX_SPEAKER_KIRK, TX_MUD4_049); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, 0x7e, 0x98, &Room::mudd4KirkReachedRightConsole); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; } } void Room::mudd4KirkReachedRightConsole() { - if (_roomVar.mudd.kirkUsingRightConsole && _vm->_awayMission.mudd.translatedAlienLanguage) + if (_roomVar.mudd.kirkUsingRightConsole && _awayMission->mudd.translatedAlienLanguage) loadActorAnimC(OBJECT_KIRK, "s4crks", -1, -1, &Room::mudd4KirkSatInChair); else - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::mudd4KirkSatInChair() { loadActorAnim2(OBJECT_KIRK, "s4crkl", 0x94, 0x98); - _vm->_awayMission.timers[2] = 5; - _vm->_awayMission.disableInput = false; + _awayMission->timers[2] = 5; + _awayMission->disableInput = false; showText(TX_SPEAKER_SPOCK, TX_MUD4_052); // NOTE: why is Spock talking here? @@ -229,60 +229,60 @@ void Room::mudd4ShowRightConsoleMenu() { switch (choice) { case 0: // Communications - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "s4crkr", 0x94, 0x98, &Room::mudd4KirkUsedCommunications); break; case 1: // View Screen - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "s4crkl", 0x94, 0x98, &Room::mudd4KirkUsedViewScreen); break; case 2: // Done - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0x83, 0xb6); break; } } void Room::mudd4KirkUsedViewScreen() { - if (!_vm->_awayMission.mudd.viewScreenEnabled) { - _vm->_awayMission.mudd.viewScreenEnabled = true; + if (!_awayMission->mudd.viewScreenEnabled) { + _awayMission->mudd.viewScreenEnabled = true; playVoc("SE2BIGAS"); loadActorAnim(OBJECT_VIEWSCREEN, "s4crvs", 0xa5, 0x76); - _vm->_awayMission.timers[3] = 5; - _vm->_awayMission.timers[1] = 50; - if (!_vm->_awayMission.mudd.gotPointsForEnablingViewscreen) { - _vm->_awayMission.mudd.gotPointsForEnablingViewscreen = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->timers[3] = 5; + _awayMission->timers[1] = 50; + if (!_awayMission->mudd.gotPointsForEnablingViewscreen) { + _awayMission->mudd.gotPointsForEnablingViewscreen = true; + _awayMission->mudd.missionScore++; } } else { - _vm->_awayMission.mudd.viewScreenEnabled = false; + _awayMission->mudd.viewScreenEnabled = false; loadActorAnim(OBJECT_VIEWSCREEN, "s4crvf", 0xa5, 0x76); - _vm->_awayMission.timers[3] = 5; - _vm->_awayMission.timers[1] = 30; + _awayMission->timers[3] = 5; + _awayMission->timers[1] = 30; } } void Room::mudd4Timer1Expired() { - _vm->_awayMission.disableInput = false; - if (_vm->_awayMission.mudd.viewScreenEnabled) + _awayMission->disableInput = false; + if (_awayMission->mudd.viewScreenEnabled) showText(TX_SPEAKER_KIRK, TX_MUD4_004); mudd4ShowRightConsoleMenu(); } void Room::mudd4KirkUsedCommunications() { - _vm->_awayMission.disableInput = false; - if (!_vm->_awayMission.mudd.knowAboutTorpedo) { + _awayMission->disableInput = false; + if (!_awayMission->mudd.knowAboutTorpedo) { showText(TX_SPEAKER_SPOCK, TX_MUD4_054); mudd4ShowRightConsoleMenu(); } else { - if (!_vm->_awayMission.mudd.contactedEnterpriseFirstTime) { - _vm->_awayMission.mudd.missionScore++; + if (!_awayMission->mudd.contactedEnterpriseFirstTime) { + _awayMission->mudd.missionScore++; showText(TX_SPEAKER_KIRK, TX_MUD4_025); showText(TX_SPEAKER_SCOTT, TX_MUD4_S02); - if (_vm->_awayMission.mudd.torpedoStatus == 1) + if (_awayMission->mudd.torpedoStatus == 1) showText(TX_SPEAKER_KIRK, TX_MUD4_027); else showText(TX_SPEAKER_KIRK, TX_MUD4_028); @@ -300,9 +300,9 @@ void Room::mudd4KirkUsedCommunications() { int choice = showText(choices); if (choice == 1) { - endMission(_vm->_awayMission.mudd.missionScore, 0x1b, _vm->_awayMission.mudd.torpedoStatus); + endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus); } else if (choice == 0) { - _vm->_awayMission.mudd.contactedEnterpriseFirstTime = true; + _awayMission->mudd.contactedEnterpriseFirstTime = true; } else { // choice == 2 mudd4TalkWithMuddAtMissionEnd(); } @@ -320,7 +320,7 @@ void Room::mudd4KirkUsedCommunications() { int choice = showText(choices); if (choice == 1) { - endMission(_vm->_awayMission.mudd.missionScore, 0x1b, _vm->_awayMission.mudd.torpedoStatus); + endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus); } else if (choice == 2) { mudd4TalkWithMuddAtMissionEnd(); } @@ -329,20 +329,20 @@ void Room::mudd4KirkUsedCommunications() { } void Room::mudd4TalkWithMuddAtMissionEnd() { - if (_vm->_awayMission.mudd.muddUnavailable) + if (_awayMission->mudd.muddUnavailable) return; else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewmanC(OBJECT_KIRK, 0x83, 0xb4, &Room::mudd4KirkReachedPositionToTalkToMudd); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0x69, 0xb7); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; loadActorStandAnim(OBJECT_MCCOY); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; loadActorStandAnim(OBJECT_REDSHIRT); playMidiMusicTracks(3); @@ -351,12 +351,12 @@ void Room::mudd4TalkWithMuddAtMissionEnd() { } void Room::mudd4KirkReachedPositionToTalkToMudd() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; - if (_vm->_awayMission.mudd.discoveredLenseAndDegrimerFunction - || _vm->_awayMission.mudd.muddErasedDatabase - || _vm->_awayMission.mudd.databaseDestroyed - || !_vm->_awayMission.mudd.accessedAlienDatabase) { // NOTE: why this last line? Test this... + if (_awayMission->mudd.discoveredLenseAndDegrimerFunction + || _awayMission->mudd.muddErasedDatabase + || _awayMission->mudd.databaseDestroyed + || !_awayMission->mudd.accessedAlienDatabase) { // NOTE: why this last line? Test this... const int choices[] = { TX_SPEAKER_KIRK, TX_MUD4_009, @@ -376,17 +376,17 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() { showText(TX_SPEAKER_MUDD, TX_MUD4_068); showText(TX_SPEAKER_KIRK, TX_MUD4_032); - endMission(_vm->_awayMission.mudd.missionScore, 0x1b, _vm->_awayMission.mudd.torpedoStatus); + endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus); } else { // Threaten to arrest Mudd. - if (_vm->_awayMission.mudd.muddErasedDatabase || _vm->_awayMission.mudd.databaseDestroyed) + if (_awayMission->mudd.muddErasedDatabase || _awayMission->mudd.databaseDestroyed) showText(TX_SPEAKER_KIRK, TX_MUD4_034); - if (_vm->_awayMission.mudd.discoveredLenseAndDegrimerFunction) + if (_awayMission->mudd.discoveredLenseAndDegrimerFunction) showText(TX_SPEAKER_KIRK, TX_MUD4_037); showText(TX_SPEAKER_KIRK, TX_MUD4_026); - if (_vm->_awayMission.mudd.muddErasedDatabase && _vm->_awayMission.mudd.databaseDestroyed) { + if (_awayMission->mudd.muddErasedDatabase && _awayMission->mudd.databaseDestroyed) { // Mudd offers to copy the lost data to the enterprise computer. You don't // get any points for this outcome. @@ -406,7 +406,7 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() { showText(TX_SPEAKER_MUDD, TX_MUD4_067); showText(TX_SPEAKER_KIRK, TX_MUD4_011); - _vm->_awayMission.mudd.missionScore += 4; + _awayMission->mudd.missionScore += 4; playMidiMusicTracks(30); showText(TX_SPEAKER_MUDD, TX_MUD4_073); @@ -415,7 +415,7 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() { showText(TX_SPEAKER_MUDD, TX_MUD4_069); showText(TX_SPEAKER_KIRK, TX_MUD4_001); - endMission(_vm->_awayMission.mudd.missionScore, 0x1b, _vm->_awayMission.mudd.torpedoStatus); + endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus); } } else { const int choices[] = { @@ -437,7 +437,7 @@ void Room::mudd4KirkReachedPositionToTalkToMudd() { showText(TX_SPEAKER_MUDD, TX_MUD4_068); showText(TX_SPEAKER_KIRK, TX_MUD4_032); - endMission(_vm->_awayMission.mudd.missionScore, 0x1b, _vm->_awayMission.mudd.torpedoStatus); + endMission(_awayMission->mudd.missionScore, 0x1b, _awayMission->mudd.torpedoStatus); } } @@ -445,19 +445,19 @@ void Room::mudd4UseMccoyOnConsole() { // NOTE: This audio was recorded twice (TX_MUD4_045, and TX_MUD4_044 which is unused) showText(TX_SPEAKER_MCCOY, TX_MUD4_045); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; walkCrewman(OBJECT_MCCOY, 0x7d, 0xc3); } void Room::mudd4UseRedshirtOnConsole() { // Floppy version shows two different pieces of text here, but in the CD version, // there's no difference - if (!_vm->_awayMission.mudd.translatedAlienLanguage) + if (!_awayMission->mudd.translatedAlienLanguage) showText(TX_SPEAKER_BUCHERT, TX_MUD4_075); else showText(TX_SPEAKER_BUCHERT, TX_MUD4_075); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; walkCrewman(OBJECT_REDSHIRT, 0x2a, 0xbb); } @@ -478,11 +478,11 @@ void Room::mudd4UseMedkit() { } void Room::mudd4GetRepairTool() { - if (_vm->_awayMission.mudd.tookRepairTool) + if (_awayMission->mudd.tookRepairTool) showText(TX_MUD4N012); // NOTE: unused, since the object disappears, can't be selected again else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, 0xcb, 0x9e, &Room::mudd4ReachedRepairTool); } } @@ -492,10 +492,10 @@ void Room::mudd4ReachedRepairTool() { } void Room::mudd4PickedUpRepairTool() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_REPAIR_TOOL); - _vm->_awayMission.mudd.tookRepairTool = true; - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.tookRepairTool = true; + _awayMission->mudd.missionScore++; giveItem(OBJECT_IDOOVER); } @@ -504,7 +504,7 @@ void Room::mudd4LookAtConsole() { } void Room::mudd4LookAtViewscreen() { - if (_vm->_awayMission.mudd.viewScreenEnabled) + if (_awayMission->mudd.viewScreenEnabled) showText(TX_MUD4N008); else showText(TX_MUD4N013); @@ -550,13 +550,13 @@ void Room::mudd4TalkToRedshirt() { void Room::mudd4WalkToEastDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0xf0, 0xc7); } void Room::mudd4WalkToWestDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x50, 0xc7); } diff --git a/engines/startrek/rooms/mudd5.cpp b/engines/startrek/rooms/mudd5.cpp index c7e63f35d7..caa18f8dc4 100644 --- a/engines/startrek/rooms/mudd5.cpp +++ b/engines/startrek/rooms/mudd5.cpp @@ -40,22 +40,22 @@ namespace StarTrek { void Room::mudd5Tick1() { playVoc("MUD5LOOP"); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; - if (_vm->_awayMission.mudd.lifeSupportMalfunctioning) { + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; + if (_awayMission->mudd.lifeSupportMalfunctioning) { playMidiMusicTracks(19); loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4epls", GENERATOR_X, GENERATOR_Y); } else { loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4eplo", GENERATOR_X, GENERATOR_Y); - _vm->_awayMission.mudd.numTimesEnteredRoom5++; + _awayMission->mudd.numTimesEnteredRoom5++; // BUG: this event can become permanently unavailable? (test) - if (_vm->_awayMission.mudd.numTimesEnteredRoom5 == 2 && !_vm->_awayMission.mudd.muddUnavailable && !_vm->_awayMission.mudd.repairedLifeSupportGenerator) { - _vm->_awayMission.mudd.muddUnavailable = true; - _vm->_awayMission.mudd.numTimesEnteredRoom5 = 1; - _vm->_awayMission.disableInput = 2; + if (_awayMission->mudd.numTimesEnteredRoom5 == 2 && !_awayMission->mudd.muddUnavailable && !_awayMission->mudd.repairedLifeSupportGenerator) { + _awayMission->mudd.muddUnavailable = true; + _awayMission->mudd.numTimesEnteredRoom5 = 1; + _awayMission->disableInput = 2; playMidiMusicTracks(3); loadActorAnim(OBJECT_MUDD, "s4ephh", 0x0e, 0xa7); - _vm->_awayMission.timers[1] = 112; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->timers[1] = 112; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; } } } @@ -73,12 +73,12 @@ void Room::mudd5Timer1Expired() { // Mudd enters room through hatch showText(TX_SPEAKER_MUDD, TX_MUD5_037); loadActorAnim2(OBJECT_MUDD, "s4ephc"); - _vm->_awayMission.timers[2] = 140; + _awayMission->timers[2] = 140; } void Room::mudd5Timer2Expired() { // Life-support generator starts acting up - _vm->_awayMission.disableInput = false; - _vm->_awayMission.mudd.lifeSupportMalfunctioning = true; + _awayMission->disableInput = false; + _awayMission->mudd.lifeSupportMalfunctioning = true; playMidiMusicTracks(19); loadActorAnim(OBJECT_LIFE_SUPPORT_GENERATOR, "s4epls", GENERATOR_X, GENERATOR_Y); } @@ -106,7 +106,7 @@ void Room::mudd5UseSTricorderOnHatch() { } void Room::mudd5UseSTricorderOnLifeSupportGenerator() { - if (_vm->_awayMission.mudd.lifeSupportMalfunctioning) + if (_awayMission->mudd.lifeSupportMalfunctioning) spockScan(DIR_W, TX_MUD5_019, false); else spockScan(DIR_W, TX_MUD5_021, false); @@ -129,9 +129,9 @@ void Room::mudd5UseAnythingOnLifeSupportGenerator() { void Room::mudd5UseDooverOnLifeSupportGenerator() { - if (_vm->_awayMission.mudd.lifeSupportMalfunctioning) { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + if (_awayMission->mudd.lifeSupportMalfunctioning) { + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, 0x57, 0xb4, &Room::mudd5KirkReachedLifeSupportGenerator); } else showText(TX_SPEAKER_MCCOY, TX_MUD5_014); // BUGFIX: speaker is McCoy, not none @@ -139,30 +139,30 @@ void Room::mudd5UseDooverOnLifeSupportGenerator() { void Room::mudd5KirkReachedLifeSupportGenerator() { loadActorAnimC(OBJECT_KIRK, "kuseln", -1, -1, &Room::mudd5KirkRepairedLifeSupportGenerator); - _vm->_awayMission.timers[4] = 20; + _awayMission->timers[4] = 20; } void Room::mudd5KirkTimer4Expired() { playMidiMusicTracks(-1); loadActorAnim2(OBJECT_LIFE_SUPPORT_GENERATOR, "s4eplo"); - _vm->_awayMission.mudd.repairedLifeSupportGenerator = true; - _vm->_awayMission.mudd.missionScore += 2; + _awayMission->mudd.repairedLifeSupportGenerator = true; + _awayMission->mudd.missionScore += 2; } void Room::mudd5KirkRepairedLifeSupportGenerator() { showText(TX_SPEAKER_KIRK, TX_MUD5_007); showText(TX_SPEAKER_SPOCK, TX_MUD5_028); - _vm->_awayMission.mudd.lifeSupportMalfunctioning = false; - _vm->_awayMission.mudd.muddUnavailable = false; + _awayMission->mudd.lifeSupportMalfunctioning = false; + _awayMission->mudd.muddUnavailable = false; playMidiMusicTracks(3); loadActorAnim(OBJECT_MUDD, "s4ephh", 0x0e, 0xa7); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.timers[3] = 110; + _awayMission->timers[3] = 110; } void Room::mudd5KirkTimer3Expired() { // Mudd popped back in after repairing generator @@ -171,7 +171,7 @@ void Room::mudd5KirkTimer3Expired() { // Mudd popped back in after repairing gen showText(TX_SPEAKER_MUDD, TX_MUD5_036); loadActorAnim2(OBJECT_MUDD, "s4ephc"); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::mudd5LookAtHatch() { @@ -181,7 +181,7 @@ void Room::mudd5LookAtHatch() { } void Room::mudd5LookAtLifeSupportGenerator() { - if (_vm->_awayMission.mudd.lifeSupportMalfunctioning) + if (_awayMission->mudd.lifeSupportMalfunctioning) showText(TX_MUD5N008); else { showText(TX_MUD5N012); @@ -198,7 +198,7 @@ void Room::mudd5TouchedHotspot0() { // Triggers door void Room::mudd5WalkToDoor() { _roomVar.mudd.walkingToDoor = true; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x85, 0x74); } diff --git a/engines/startrek/rooms/mudda.cpp b/engines/startrek/rooms/mudda.cpp index 78c562958f..4c92ae03d5 100644 --- a/engines/startrek/rooms/mudda.cpp +++ b/engines/startrek/rooms/mudda.cpp @@ -43,7 +43,7 @@ void Room::muddaUseLenseOnDegrimer() { loseItem(OBJECT_IDEGRIME); loseItem(OBJECT_ILENSES); - _vm->_awayMission.mudd.missionScore++; + _awayMission->mudd.missionScore++; showText(text[_roomIndex]); } @@ -60,9 +60,9 @@ void Room::muddaUseAlienDevice() { 11 // MUDD5 }; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; loadActorStandAnim(OBJECT_KIRK); Common::Point pos = getActorPos(OBJECT_KIRK); loadActorAnimC(deviceObjectIndices[_roomIndex], "s4cbxp", pos.x, 10, &Room::muddaFiredAlienDevice); @@ -81,10 +81,10 @@ void Room::muddaFiredAlienDevice() { TX_MUD2_002, }; - _vm->_awayMission.disableInput = false; - if (!_vm->_awayMission.mudd.discoveredLenseAndDegrimerFunction) { - _vm->_awayMission.mudd.discoveredLenseAndDegrimerFunction = true; - _vm->_awayMission.mudd.missionScore += 5; // BUGFIX: didn't happen if done in MUDD5 + _awayMission->disableInput = false; + if (!_awayMission->mudd.discoveredLenseAndDegrimerFunction) { + _awayMission->mudd.discoveredLenseAndDegrimerFunction = true; + _awayMission->mudd.missionScore += 5; // BUGFIX: didn't happen if done in MUDD5 showText(TX_SPEAKER_KIRK, text[_roomIndex]); } } @@ -141,22 +141,22 @@ void Room::muddaTick() { const int TIMER_LENGTH = 27000; - if (_vm->_awayMission.mudd.lifeSupportMalfunctioning) { - if (!_vm->_awayMission.mudd.startedLifeSupportTimer) { - _vm->_awayMission.mudd.startedLifeSupportTimer = true; - _vm->_awayMission.mudd.lifeSupportTimer = TIMER_LENGTH; + if (_awayMission->mudd.lifeSupportMalfunctioning) { + if (!_awayMission->mudd.startedLifeSupportTimer) { + _awayMission->mudd.startedLifeSupportTimer = true; + _awayMission->mudd.lifeSupportTimer = TIMER_LENGTH; } - _vm->_awayMission.mudd.lifeSupportTimer--; + _awayMission->mudd.lifeSupportTimer--; // BUGFIX: the warnings at 75%, 50%, and 25% were only voiced in MUDD0. - if (_vm->_awayMission.mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.25)) + if (_awayMission->mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.25)) showText(TX_SPEAKER_SPOCK, TX_MUD0_018); - else if (_vm->_awayMission.mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.5)) + else if (_awayMission->mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.5)) showText(TX_SPEAKER_SPOCK, TX_MUD0_019); - else if (_vm->_awayMission.mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.75)) + else if (_awayMission->mudd.lifeSupportTimer == (int)(TIMER_LENGTH * 0.75)) showText(TX_SPEAKER_SPOCK, TX_MUD0_020); - else if (_vm->_awayMission.mudd.lifeSupportTimer == 1) { - _vm->_awayMission.disableInput = true; + else if (_awayMission->mudd.lifeSupportTimer == 1) { + _awayMission->disableInput = true; // In each room, the crewmen collapse in a different directions. // NOTE: "kgetdn" (kirk, north) doesn't work properly; files in the animation @@ -171,7 +171,7 @@ void Room::muddaTick() { }; for (int i = OBJECT_KIRK; i <= OBJECT_REDSHIRT; i++) { - Common::String anim = _vm->getCrewmanAnimFilename(i, "getd"); + Common::String anim = getCrewmanAnimFilename(i, "getd"); anim += directions[i][_roomIndex]; loadActorAnim2(i, anim); } diff --git a/engines/startrek/rooms/sins0.cpp b/engines/startrek/rooms/sins0.cpp index 8dfabdc73e..7fb4f08e32 100644 --- a/engines/startrek/rooms/sins0.cpp +++ b/engines/startrek/rooms/sins0.cpp @@ -81,12 +81,12 @@ extern const int sins0NumActions = sizeof(sins0ActionList) / sizeof(RoomAction); void Room::sins0Tick1() { playVoc("SIN0LOOP"); - if (!_vm->_awayMission.sins.enteredRoom0FirstTime) - _vm->_awayMission.disableInput = 2; + if (!_awayMission->sins.enteredRoom0FirstTime) + _awayMission->disableInput = 2; - if (_vm->_awayMission.sins.field3e) + if (_awayMission->sins.field3e) loadActorAnim2(OBJECT_DOOR, "s0dr2", 0, 0); - if (_vm->_awayMission.sins.openedDoor) + if (_awayMission->sins.openedDoor) loadActorAnim2(OBJECT_DOOR, "s0dr1", 0, 0); playMidiMusicTracks(MIDITRACK_27, -3); @@ -131,13 +131,13 @@ void Room::sins0LookAtGround() { } void Room::sins0GetRock() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "kpickw", -1, -1, &Room::sins0PickedUpRock); - _vm->_awayMission.sins.field39 |= 1; + _awayMission->sins.field39 |= 1; } void Room::sins0PickedUpRock() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_SIN0N010); giveItem(OBJECT_IS8ROCKS); @@ -149,7 +149,7 @@ void Room::sins0UseSTricorderAnywhere() { void Room::sins0UseSTricorderOnGround() { spockScan(DIR_S, TX_SIN0_017); - _vm->_awayMission.sins.field39 |= 1; + _awayMission->sins.field39 |= 1; } void Room::sins0UseSTricorderOnPlanet() { @@ -157,8 +157,8 @@ void Room::sins0UseSTricorderOnPlanet() { } void Room::sins0Tick40() { - if (!_vm->_awayMission.sins.enteredRoom0FirstTime) { - _vm->_awayMission.disableInput = false; + if (!_awayMission->sins.enteredRoom0FirstTime) { + _awayMission->disableInput = false; showText(TX_SPEAKER_UHURA, TX_SIN0U082); showText(TX_SPEAKER_KIRK, TX_SIN0_003); showText(TX_SPEAKER_SCOTT, TX_SIN0_S48); @@ -167,7 +167,7 @@ void Room::sins0Tick40() { showText(TX_SPEAKER_KIRK, TX_SIN0_005); showText(TX_SPEAKER_SCOTT, TX_SIN0_S49); showText(TX_SPEAKER_KIRK, TX_SIN0_001); - _vm->_awayMission.sins.enteredRoom0FirstTime = true; + _awayMission->sins.enteredRoom0FirstTime = true; } } @@ -216,9 +216,9 @@ void Room::sins0UseSTricorderOnStatue() { showText(TX_SPEAKER_KIRK, TX_SIN0_008); showText(TX_SPEAKER_SPOCK, TX_SIN0_023); - if (!_vm->_awayMission.sins.gotPointsForScanningStatue) { - _vm->_awayMission.sins.gotPointsForScanningStatue = true; - _vm->_awayMission.sins.missionScore += 1; + if (!_awayMission->sins.gotPointsForScanningStatue) { + _awayMission->sins.gotPointsForScanningStatue = true; + _awayMission->sins.missionScore += 1; } } @@ -231,7 +231,7 @@ void Room::sins0UseMTricorderOnCrewman() { } void Room::sins0UseCommunicator() { - if (!_vm->_awayMission.sins.scottyInformedKirkAboutVirus) { + if (!_awayMission->sins.scottyInformedKirkAboutVirus) { showText(TX_SPEAKER_KIRK, TX_SIN0_004); showText(TX_SPEAKER_SCOTT, TX_SIN0_S01); showText(TX_SPEAKER_KIRK, TX_SIN0_002); diff --git a/engines/startrek/rooms/sins1.cpp b/engines/startrek/rooms/sins1.cpp index 8f44840667..76a959f513 100644 --- a/engines/startrek/rooms/sins1.cpp +++ b/engines/startrek/rooms/sins1.cpp @@ -92,27 +92,27 @@ extern const int sins1NumActions = sizeof(sins1ActionList) / sizeof(RoomAction); void Room::sins1Tick1() { playVoc("SIN1LOOP"); - if (!_vm->_awayMission.sins.scottyInformedKirkAboutVirus) + if (!_awayMission->sins.scottyInformedKirkAboutVirus) // BUGFIX: Set this to 2, not 1 (disable input even after walking animation is done) - _vm->_awayMission.disableInput = 2; + _awayMission->disableInput = 2; - if (_vm->_awayMission.sins.openedDoor) { + if (_awayMission->sins.openedDoor) { loadActorAnim2(OBJECT_DOOR, "s1dro", 0, 0); loadMapFile("sins12"); } else loadMapFile("sins1"); - if (_vm->_awayMission.sins.field3e) + if (_awayMission->sins.field3e) loadActorAnim2(OBJECT_DOOR, "s1ndro", 0, 0); - _vm->_awayMission.sins.field32 = 1; - _vm->_awayMission.sins.field31 = 1; + _awayMission->sins.field32 = 1; + _awayMission->sins.field31 = 1; playMidiMusicTracks(MIDITRACK_27, -3); - if (!_vm->_awayMission.sins.enteredRoom1FirstTime) { + if (!_awayMission->sins.enteredRoom1FirstTime) { playMidiMusicTracks(MIDITRACK_1, -2); - _vm->_awayMission.sins.enteredRoom1FirstTime = true; + _awayMission->sins.enteredRoom1FirstTime = true; } } @@ -153,7 +153,7 @@ void Room::sins1UseSTricorderOnLock() { } void Room::sins1UseSTricorderOnDoor() { - if (!_vm->_awayMission.sins.openedDoor) + if (!_awayMission->sins.openedDoor) spockScan(DIR_N, TX_SIN1_019); } @@ -162,7 +162,7 @@ void Room::sins1UseSTricorderAnywhere() { } void Room::sins1UseSTricorderOnLens() { - if (!_vm->_awayMission.sins.doorLaserFiredOnce) + if (!_awayMission->sins.doorLaserFiredOnce) spockScan(DIR_N, TX_SIN1_022); else // BUGFIX: Original didn't do the tricorder animation, etc. in this case spockScan(DIR_N, TX_SIN1_023); @@ -173,25 +173,25 @@ void Room::sins1UseRockOnDoor() { } void Room::sins1UseRedshirtOnKeypad() { - if (!_vm->_awayMission.sins.openedDoor) + if (!_awayMission->sins.openedDoor) showText(TX_SPEAKER_MOSHER, TX_SIN1_028); } void Room::sins1UseMccoyOnKeypad() { - if (!_vm->_awayMission.sins.openedDoor) + if (!_awayMission->sins.openedDoor) showText(TX_SPEAKER_MCCOY, TX_SIN1_012); } void Room::sins1UseKirkOnKeypad() { - if (!_vm->_awayMission.sins.openedDoor) { + if (!_awayMission->sins.openedDoor) { showText(TX_SPEAKER_KIRK, TX_SIN1_001); sins1UseSpockOnKeypad(); } } void Room::sins1UseSpockOnKeypad() { - if (!_vm->_awayMission.sins.openedDoor) { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + if (!_awayMission->sins.openedDoor) { + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; walkCrewmanC(OBJECT_SPOCK, 0xfd, 0xad, &Room::sins1SpockReachedKeypad); } } @@ -204,7 +204,7 @@ void Room::sins1SpockReachedKeypad() { if (ans == -1) { // ENHANCEMENT: Do nothing if no code was entered. - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xf3, 0xad); } else if (ans == 1 || ans == 2) { playVoc("EFX14S"); @@ -219,9 +219,9 @@ void Room::sins1SpockReachedKeypad() { } void Room::sins1EnteredCorrectCode() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xf3, 0xad); - _vm->_awayMission.sins.openedDoor = true; + _awayMission->sins.openedDoor = true; loadMapFile("sins12"); loadActorAnimC(OBJECT_DOOR, "s1door", 0, 0, &Room::sins1DoorDoneOpening); playVoc("HUGEDOO2"); @@ -232,14 +232,14 @@ void Room::sins1DoorDoneOpening() { } void Room::sins1EnteredIncorrectCode() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xf3, 0xad); showText(TX_SPEAKER_SPOCK, TX_SIN1_017); } void Room::sins1EnteredSacredSofNumber() { // Entered a sacred Sof number, which is wrong since this is a Lucr base - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0xf3, 0xad); loadActorAnimC(OBJECT_9, "s1ph1", 0, 0, &Room::sins1DoorUsedLaser); playSoundEffectIndex(SND_PHASSHOT); @@ -253,12 +253,12 @@ void Room::sins1DoorUsedLaser() { loadActorStandAnim(OBJECT_9); showText(TX_SPEAKER_SPOCK, TX_SIN1_018); - _vm->_awayMission.sins.field33 = true; - _vm->_awayMission.sins.doorLaserFiredOnce = true; + _awayMission->sins.field33 = true; + _awayMission->sins.doorLaserFiredOnce = true; } void Room::sins1Tick40() { - if (!_vm->_awayMission.sins.scottyInformedKirkAboutVirus) { + if (!_awayMission->sins.scottyInformedKirkAboutVirus) { showText(TX_SPEAKER_SCOTT, TX_SIN1_S10); showText(TX_SPEAKER_KIRK, TX_SIN1_007); showText(TX_SPEAKER_SCOTT, TX_SIN1_S18); @@ -267,8 +267,8 @@ void Room::sins1Tick40() { showText(TX_SPEAKER_KIRK, TX_SIN1_003); showText(TX_SPEAKER_SCOTT, TX_SIN1_S17); - _vm->_awayMission.sins.scottyInformedKirkAboutVirus = true; - _vm->_awayMission.disableInput = false; + _awayMission->sins.scottyInformedKirkAboutVirus = true; + _awayMission->disableInput = false; } } @@ -318,7 +318,7 @@ void Room::sins1LookAtLens() { } void Room::sins1UseCommunicator() { - if (!_vm->_awayMission.sins.field44) { + if (!_awayMission->sins.field44) { showText(TX_SPEAKER_KIRK, TX_SIN1_008); showText(TX_SPEAKER_SCOTT, TX_SIN1_S51); showText(TX_SPEAKER_KIRK, TX_SIN1_002); @@ -337,7 +337,7 @@ void Room::sins1UseMTricorderOnCrewman() { } void Room::sins1WalkToDoor() { - if (_vm->_awayMission.sins.openedDoor) + if (_awayMission->sins.openedDoor) walkCrewman(OBJECT_KIRK, 0x98, 0x9e, 5); // NOTE: Callback 5 not defined } diff --git a/engines/startrek/rooms/trial0.cpp b/engines/startrek/rooms/trial0.cpp index b1ee21179f..0508d181fe 100644 --- a/engines/startrek/rooms/trial0.cpp +++ b/engines/startrek/rooms/trial0.cpp @@ -85,8 +85,8 @@ extern const int trial0NumActions = sizeof(trial0ActionList) / sizeof(RoomAction void Room::trial0Tick1() { playVoc("TRI0LOOP"); - _vm->_awayMission.timers[0] = getRandomWordInRange(180, 600); - _vm->_awayMission.trial.field2b = 0x1d; + _awayMission->timers[0] = getRandomWordInRange(180, 600); + _awayMission->trial.field2b = 0x1d; loadActorAnim2(OBJECT_VLICT, "vlict1", 0x9f, 0x48); loadActorAnim2(OBJECT_GUARD, "kgstnd", 0xdc, 0x6a); loadActorAnim2(OBJECT_QUETZECOATL, "qteleg", 0x10e, 0xaa); @@ -97,19 +97,19 @@ void Room::trial0Tick40() { } void Room::trial0Timer0Expired() { // Doesn't do anything? - _vm->_awayMission.timers[0] = getRandomWordInRange(180, 600); + _awayMission->timers[0] = getRandomWordInRange(180, 600); } void Room::trial0WalkToRoomCenter() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, 0xa0, 0xaa, &Room::trial0ReachedRoomCenter); } void Room::trial0ReachedRoomCenter() { bool gaveUp = false; - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_SPEAKER_VLICT, TX_TRI0_053); const TextRef choices1[] = { @@ -137,7 +137,7 @@ void Room::trial0ReachedRoomCenter() { showText(TX_SPEAKER_VLICT, TX_TRI0_061); showText(TX_SPEAKER_KIRK, TX_TRI0_001); showText(TX_SPEAKER_VLICT, TX_TRI0_060); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(1, 4); } else if (choice == 1) { // "This trial is a mockery" showText(TX_SPEAKER_VLICT, TX_TRI0_048); @@ -179,11 +179,11 @@ void Room::trial0ReachedRoomCenter() { if (choice == 0 || choice == 1) { showText(TX_SPEAKER_VLICT, TX_TRI0_055); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(1, 4); } else { // choice == 2 showText(TX_SPEAKER_VLICT, TX_TRI0_045); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(1, 4); } } else // choice == 2 @@ -197,10 +197,10 @@ void Room::trial0ReachedRoomCenter() { playMidiMusicTracks(2, -1); showText(TX_SPEAKER_VLICT, TX_TRI0_049); showText(TX_SPEAKER_VLICT, TX_TRI0_044); - _vm->_awayMission.trial.missionEndMethod = 0; + _awayMission->trial.missionEndMethod = 0; // FIXME: Are these parameters in the right order? - endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 0); + endMission(_awayMission->trial.missionScore, _awayMission->trial.field2b, 0); } } diff --git a/engines/startrek/rooms/trial1.cpp b/engines/startrek/rooms/trial1.cpp index 3fccb3b45f..8ff3784dac 100644 --- a/engines/startrek/rooms/trial1.cpp +++ b/engines/startrek/rooms/trial1.cpp @@ -170,20 +170,20 @@ extern const int trial1NumActions = sizeof(trial1ActionList) / sizeof(RoomAction void Room::trial1Tick1() { - if (!_vm->_awayMission.trial.doorOpen) { - _vm->_awayMission.disableInput = 2; + if (!_awayMission->trial.doorOpen) { + _awayMission->disableInput = 2; loadActorAnim2(OBJECT_DOOR, "t1drc"); } - if (!_vm->_awayMission.trial.entityDefeated) { + if (!_awayMission->trial.entityDefeated) { loadActorAnim2(OBJECT_ENTITY, "ec", 0x5f, 0xb1, 3); // No callback defined playVoc("TRI1LOOP"); } } void Room::trial1Tick50() { - if (!_vm->_awayMission.trial.doorOpen) - _vm->_awayMission.disableInput = false; - if (!_vm->_awayMission.trial.entityDefeated) { + if (!_awayMission->trial.doorOpen) + _awayMission->disableInput = false; + if (!_awayMission->trial.entityDefeated) { showText(TX_SPEAKER_BENNIE, TX_TRI1_056); showText(TX_SPEAKER_SPOCK, TX_TRI1_047); showText(TX_SPEAKER_MCCOY, TX_TRI1_032); @@ -195,14 +195,14 @@ void Room::trial1Tick50() { } void Room::trial1DoorOpened() { // Called after Spock opens the door - _vm->_awayMission.trial.doorOpen = true; + _awayMission->trial.doorOpen = true; loadActorStandAnim(OBJECT_DOOR); } void Room::trial1TouchedHotspot0() { // Kirk touched the energy thing - if (!_vm->_awayMission.trial.entityDefeated) { + if (!_awayMission->trial.entityDefeated) { // BUGFIX: Disable input, otherwise you can cancel the death - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "kkills", -1, -1, &Room::trial1KirkDied); } } @@ -212,29 +212,29 @@ void Room::trial1KirkDied() { } void Room::trial1TouchedHotspot1() { // Entered the door - if (_vm->_awayMission.trial.doorOpen) { - _vm->_awayMission.disableInput = true; + if (_awayMission->trial.doorOpen) { + _awayMission->disableInput = true; loadRoomIndex(2, 2); } } void Room::trial1GetRod() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xe9, 0xa9, &Room::trial1ReachedRod); } void Room::trial1ReachedRod() { loadActorAnimC(OBJECT_KIRK, "t1pkup", 0xe9, 0xa9, &Room::trial1PickedUpRod); giveItem(OBJECT_IWROD); - if (!_vm->_awayMission.trial.gotPointsForGettingRod) { - _vm->_awayMission.trial.gotPointsForGettingRod = true; - _vm->_awayMission.trial.missionScore += 1; + if (!_awayMission->trial.gotPointsForGettingRod) { + _awayMission->trial.gotPointsForGettingRod = true; + _awayMission->trial.missionScore += 1; } } void Room::trial1PickedUpRod() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::trial1LookAtKirk() { @@ -316,8 +316,8 @@ void Room::trial1UsePhaserOnWall() { void Room::trial1UseStunPhaserOnFloor() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewmanC(OBJECT_KIRK, 0xca, 0xbc, &Room::trial1ReachedFloorToUseStunPhaser); } @@ -327,15 +327,15 @@ void Room::trial1ReachedFloorToUseStunPhaser() { } void Room::trial1DoneShootingFloorWithStunPhaser() { - _vm->_awayMission.disableInput = false; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = false; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; loadActorStandAnim(OBJECT_KIRK); } void Room::trial1UseKillPhaserOnFloor() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewmanC(OBJECT_KIRK, 0xca, 0xbc, &Room::trial1ReachedFloorToUseKillPhaser); } @@ -348,12 +348,12 @@ void Room::trial1DoneShootingFloorWithKillPhaser() { showText(TX_TRI1N014); loadActorAnim2(OBJECT_MOLTEN_ROCK, "t1mltd", 0xca, 0xbc); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; loadActorStandAnim(OBJECT_KIRK); // BUG: Infinite score mechanism - _vm->_awayMission.trial.missionScore += 1; - _vm->_awayMission.disableInput = false; + _awayMission->trial.missionScore += 1; + _awayMission->disableInput = false; } void Room::trial1UsePhaserOnRod() { @@ -397,7 +397,7 @@ void Room::trial1UseSTricorderOnEntity() { spockScan(DIR_S, TX_TRI1_012, true); // BUG: infinite score mechanism - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.missionScore += 1; } void Room::trial1UseSTricorderOnRods() { @@ -408,7 +408,7 @@ void Room::trial1UseSTricorderOnFloor() { spockScan(DIR_S, TX_TRI1_042, true); // BUG: infinite score mechanism - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.missionScore += 1; } void Room::trial1UseSTricorderOnDoor() { @@ -418,15 +418,15 @@ void Room::trial1UseSTricorderOnDoor() { void Room::trial1UseSTricorderOnLock() { spockScan(DIR_S, TX_TRI1_014, true); - if (!_vm->_awayMission.trial.scannedLock) { - _vm->_awayMission.trial.scannedLock = true; + if (!_awayMission->trial.scannedLock) { + _awayMission->trial.scannedLock = true; // BUGFIX: Moved this into the if statement (used to be an infinite score mechanism) - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.missionScore += 1; } } void Room::trial1UseCommunicator() { - if (_vm->_awayMission.trial.forceFieldDown) { + if (_awayMission->trial.forceFieldDown) { showText(TX_SPEAKER_UHURA, TX_TRI1U090); const TextRef choices[] = { @@ -437,22 +437,22 @@ void Room::trial1UseCommunicator() { int choice = showText(choices); if (choice == 0) { // "Beam us back to the enterprise" - _vm->_awayMission.trial.missionEndMethod = 1; + _awayMission->trial.missionEndMethod = 1; endMission(1, 1, 1); } else if (choice == 1) { // "Beam us to Vlict's position" showText(TX_SPEAKER_UHURA, TX_TRI1U080); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(4, 4); } // Else don't transport anywhere } else { // Force field still up - if (_vm->_awayMission.trial.uhuraAnalyzedCode) + if (_awayMission->trial.uhuraAnalyzedCode) showText(TX_SPEAKER_UHURA, TX_TRI1U068); else { showText(TX_SPEAKER_UHURA, TX_TRI1U086); showText(TX_SPEAKER_UHURA, TX_TRI1U106); showText(TX_SPEAKER_UHURA, TX_TRI1U098); - if (_vm->_awayMission.trial.scannedLock) { + if (_awayMission->trial.scannedLock) { showText(TX_SPEAKER_KIRK, TX_TRI1_011); showText(TX_SPEAKER_UHURA, TX_TRI1U101); @@ -465,9 +465,9 @@ void Room::trial1UseCommunicator() { if (choice == 0) { // Don't analyze the anomolous program showText(TX_SPEAKER_UHURA, TX_TRI1U079); - _vm->_awayMission.trial.doorCodeBehaviour = 2; - _vm->_awayMission.trial.uhuraAnalyzedCode = true; - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.doorCodeBehaviour = 2; + _awayMission->trial.uhuraAnalyzedCode = true; + _awayMission->trial.missionScore += 1; } else { // Analyze the anomolous program showText(TX_SPEAKER_UHURA, TX_TRI1U102); @@ -480,14 +480,14 @@ void Room::trial1UseCommunicator() { if (choice == 0) { // Activate the program showText(TX_SPEAKER_UHURA, TX_TRI1U095); - _vm->_awayMission.trial.doorCodeBehaviour = 5; - _vm->_awayMission.trial.uhuraAnalyzedCode = true; - _vm->_awayMission.trial.missionScore += 3; + _awayMission->trial.doorCodeBehaviour = 5; + _awayMission->trial.uhuraAnalyzedCode = true; + _awayMission->trial.missionScore += 3; } else { // Don't activate, only open the door showText(TX_SPEAKER_UHURA, TX_TRI1U079); - _vm->_awayMission.trial.doorCodeBehaviour = 2; - _vm->_awayMission.trial.uhuraAnalyzedCode = true; - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.doorCodeBehaviour = 2; + _awayMission->trial.uhuraAnalyzedCode = true; + _awayMission->trial.missionScore += 1; } } } @@ -500,9 +500,9 @@ void Room::trial1UseMccoyOnEntity() { } void Room::trial1UseMccoyOnLock() { - if (!_vm->_awayMission.trial.entityDefeated) + if (!_awayMission->trial.entityDefeated) showText(TX_SPEAKER_MCCOY, TX_TRI1_018); - else if (_vm->_awayMission.trial.doorCodeBehaviour == 0) + else if (_awayMission->trial.doorCodeBehaviour == 0) showText(TX_SPEAKER_MCCOY, TX_TRI1_020); else showText(TX_SPEAKER_MCCOY, TX_TRI1_029); @@ -518,13 +518,13 @@ void Room::trial1UseSpockOnEntity() { void Room::trial1UseSpockOnLock() { - if (_vm->_awayMission.trial.doorOpen) + if (_awayMission->trial.doorOpen) showText(TX_SPEAKER_SPOCK, TX_TRI1_038); - else if (!_vm->_awayMission.trial.entityDefeated) + else if (!_awayMission->trial.entityDefeated) showText(TX_SPEAKER_SPOCK, TX_TRI1_036); - else if (_vm->_awayMission.trial.doorCodeBehaviour == 0) + else if (_awayMission->trial.doorCodeBehaviour == 0) showText(TX_SPEAKER_SPOCK, TX_TRI1_044); - else if (_vm->_awayMission.trial.doorCodeBehaviour == 2) + else if (_awayMission->trial.doorCodeBehaviour == 2) walkCrewmanC(OBJECT_SPOCK, 0x1f, 0xb8, &Room::trial1SpockReachedKeypad); else walkCrewmanC(OBJECT_SPOCK, 0x1f, 0xb8, &Room::trial1SpockReachedKeypadWithExtraProgram); @@ -536,11 +536,11 @@ void Room::trial1SpockReachedKeypad() { // Spock opens the door } void Room::trial1SpockUsedKeypad() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; loadActorStandAnim(OBJECT_SPOCK); playSoundEffectIndex(SND_DOOR1); loadActorAnimC(OBJECT_DOOR, "t1drco", -1, -1, &Room::trial1DoorOpened); - _vm->_awayMission.trial.doorOpen = true; + _awayMission->trial.doorOpen = true; } void Room::trial1SpockReachedKeypadWithExtraProgram() { // Spock activates the unknown program @@ -549,10 +549,10 @@ void Room::trial1SpockReachedKeypadWithExtraProgram() { // Spock activates the u } void Room::trial1SpockUsedKeypadWithExtraProgram() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; loadActorStandAnim(OBJECT_SPOCK); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(5, 5); } @@ -567,13 +567,13 @@ void Room::trial1UseRedshirtOnEntity() { void Room::trial1UseRedshirtOnLock() { - if (_vm->_awayMission.trial.doorOpen) + if (_awayMission->trial.doorOpen) return; - else if (!_vm->_awayMission.trial.entityDefeated) + else if (!_awayMission->trial.entityDefeated) showText(TX_SPEAKER_BENNIE, TX_TRI1_051); - else if (_vm->_awayMission.trial.doorCodeBehaviour == 0) + else if (_awayMission->trial.doorCodeBehaviour == 0) showText(TX_SPEAKER_BENNIE, TX_TRI1_054); - else if (_vm->_awayMission.trial.doorCodeBehaviour == 2) + else if (_awayMission->trial.doorCodeBehaviour == 2) walkCrewmanC(OBJECT_REDSHIRT, 0x1f, 0xb8, &Room::trial1RedshirtReachedKeypad); else walkCrewmanC(OBJECT_REDSHIRT, 0x1f, 0xb8, &Room::trial1RedshirtReachedKeypadWithExtraProgram); @@ -585,11 +585,11 @@ void Room::trial1RedshirtReachedKeypad() { // Redshirt opens the lock } void Room::trial1RedshirtUsedKeypad() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; loadActorStandAnim(OBJECT_REDSHIRT); playSoundEffectIndex(SND_DOOR1); loadActorAnimC(OBJECT_DOOR, "t1drco", -1, -1, &Room::trial1DoorOpened); - _vm->_awayMission.trial.doorOpen = true; + _awayMission->trial.doorOpen = true; } void Room::trial1RedshirtReachedKeypadWithExtraProgram() { @@ -598,10 +598,10 @@ void Room::trial1RedshirtReachedKeypadWithExtraProgram() { } void Room::trial1RedshirtUsedKeypadWithExtraProgram() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_W; loadActorStandAnim(OBJECT_REDSHIRT); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(5, 5); } @@ -630,7 +630,7 @@ void Room::trial1UseRodOnFloorOrWall() { void Room::trial1UseWoodRodOnEntity() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xe9, 0xad, &Room::trial1ReachedPositionToThrowWoodRod); loseItem(OBJECT_IWROD); } @@ -640,7 +640,7 @@ void Room::trial1ReachedPositionToThrowWoodRod() { } void Room::trial1DoneThrowingWoodRod() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } @@ -650,7 +650,7 @@ void Room::trial1UseWoodRodOnLock() { void Room::trial1UseWoodRodOnMoltenRock() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xe4, 0xc4, &Room::trial1ReachedMoltenRock); } @@ -659,22 +659,22 @@ void Room::trial1ReachedMoltenRock() { } void Room::trial1DoneCoatingWoodRod() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showText(TX_TRI1N013); loseItem(OBJECT_IWROD); giveItem(OBJECT_IIROD); - if (!_vm->_awayMission.trial.gotPointsForCoatingRodWithIron) { - _vm->_awayMission.trial.gotPointsForCoatingRodWithIron = true; - _vm->_awayMission.trial.missionScore += 1; + if (!_awayMission->trial.gotPointsForCoatingRodWithIron) { + _awayMission->trial.gotPointsForCoatingRodWithIron = true; + _awayMission->trial.missionScore += 1; } } void Room::trial1UseIronRodOnEntity() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xe9, 0xac, &Room::trial1ReachedPositionToThrowIronRod); - _vm->_awayMission.trial.entityDefeated = true; + _awayMission->trial.entityDefeated = true; loseItem(OBJECT_IIROD); } @@ -686,15 +686,15 @@ void Room::trial1ReachedPositionToThrowIronRod() { void Room::trial1DoneThrowingIronRod() { loadActorAnim(OBJECT_THROWN_IRON_ROD, "t1irod", 0xe9, 0xac, 8); // No callback defined - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; stopAllVocSounds(); showText(TX_SPEAKER_SPOCK, TX_TRI1_045); showText(TX_SPEAKER_MCCOY, TX_TRI1_033); - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.missionScore += 1; } @@ -707,7 +707,7 @@ void Room::trial1GetThrownIronRod() { } void Room::trial1WalkToDoor() { - if (_vm->_awayMission.trial.doorOpen) + if (_awayMission->trial.doorOpen) walkCrewman(OBJECT_KIRK, 0x1a, 0xac, 28); } diff --git a/engines/startrek/rooms/trial2.cpp b/engines/startrek/rooms/trial2.cpp index a23be951a3..d9fc5e2f60 100644 --- a/engines/startrek/rooms/trial2.cpp +++ b/engines/startrek/rooms/trial2.cpp @@ -126,40 +126,40 @@ extern const int trial2NumActions = sizeof(trial2ActionList) / sizeof(RoomAction void Room::trial2Tick1() { playVoc("NOOOLOOP"); - if (!_vm->_awayMission.trial.enteredGlobRoom) - _vm->_awayMission.disableInput = 2; + if (!_awayMission->trial.enteredGlobRoom) + _awayMission->disableInput = 2; - if (!_vm->_awayMission.trial.globDefeated) { + if (!_awayMission->trial.globDefeated) { playMidiMusicTracks(MIDITRACK_24, -1); loadMapFile("trial22"); - if (!_vm->_awayMission.trial.globSplitInTwo) { + if (!_awayMission->trial.globSplitInTwo) { playVoc("TRI2LOOP"); loadActorAnim2(OBJECT_GLOB, "sglob", 0x46, 0xaf); - _vm->_awayMission.trial.globEnergyLevels[0] = 1; + _awayMission->trial.globEnergyLevels[0] = 1; } else { playVoc("TRI2LOOP"); loadActorAnim2(OBJECT_SPLIT_GLOB_1, "sglob", 0x20, 0xaf); loadActorAnim2(OBJECT_SPLIT_GLOB_2, "sglob", 0x69, 0xaf); - _vm->_awayMission.trial.globEnergyLevels[1] = 1; - _vm->_awayMission.trial.globEnergyLevels[2] = 1; + _awayMission->trial.globEnergyLevels[1] = 1; + _awayMission->trial.globEnergyLevels[2] = 1; } } } void Room::trial2Tick60() { - if (!_vm->_awayMission.trial.enteredGlobRoom) { - _vm->_awayMission.disableInput = false; + if (!_awayMission->trial.enteredGlobRoom) { + _awayMission->disableInput = false; showText(TX_SPEAKER_BENNIE, TX_TRI2_034); showText(TX_SPEAKER_KIRK, TX_TRI2_005); showText(TX_SPEAKER_SPOCK, TX_TRI2_030); showText(TX_SPEAKER_KIRK, TX_TRI2_008); - _vm->_awayMission.trial.enteredGlobRoom = true; + _awayMission->trial.enteredGlobRoom = true; } } void Room::trial2TouchedHotspot0() { // This is unused - if (_vm->_awayMission.trial.globEnergyLevels[1] != 0 || _vm->_awayMission.trial.globEnergyLevels[2] != 0) + if (_awayMission->trial.globEnergyLevels[1] != 0 || _awayMission->trial.globEnergyLevels[2] != 0) showText(TX_SPEAKER_SPOCK, TX_TRI2_024); } @@ -224,7 +224,7 @@ void Room::trial2UsePhaserOnGlob(int object, bool phaserOnKill) { _roomVar.trial.globBeingShot = object; _roomVar.trial.phaserOnKill = phaserOnKill; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewmanC(OBJECT_KIRK, 0xcd, 0xc5, &Room::trial2ReachedPositionToShootGlob); } @@ -246,7 +246,7 @@ void Room::trial2DrewPhaserToShootGlob() { int index = _roomVar.trial.globBeingShot - OBJECT_GLOB; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_W; playSoundEffectIndex(SND_PHASSHOT); if (_roomVar.trial.phaserOnKill) showBitmapFor5Ticks(killPhaserAnims[index], 5); @@ -254,12 +254,12 @@ void Room::trial2DrewPhaserToShootGlob() { showBitmapFor5Ticks(stunPhaserAnims[index], 5); loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; if (_roomVar.trial.phaserOnKill) - _vm->_awayMission.trial.globEnergyLevels[index] += 2; + _awayMission->trial.globEnergyLevels[index] += 2; else - _vm->_awayMission.trial.globEnergyLevels[index] += 1; + _awayMission->trial.globEnergyLevels[index] += 1; if (!(_roomVar.trial.globBeingShot == OBJECT_GLOB && _roomVar.trial.phaserOnKill == true)) { if (_roomVar.trial.phaserOnKill) @@ -275,10 +275,10 @@ void Room::trial2DrewPhaserToShootGlob() { Common::Point(SPLIT_GLOB_2_X, SPLIT_GLOB_2_Y) }; - if (_vm->_awayMission.trial.globEnergyLevels[index] == 3) { + if (_awayMission->trial.globEnergyLevels[index] == 3) { playVoc("GLOBEDIV"); loadActorAnimC(_roomVar.trial.globBeingShot, "globsp", globPositions[index].x, globPositions[index].y, &Room::trial2GlobDoneSplitting); - } else if (_vm->_awayMission.trial.globEnergyLevels[index] >= 4) { + } else if (_awayMission->trial.globEnergyLevels[index] >= 4) { playSoundEffectIndex(SND_BLANK_14); playVoc("REDBALL"); loadActorAnimC(_roomVar.trial.globBeingShot, "globex", globPositions[index].x, globPositions[index].y, &Room::trial2GlobDoneExploding); @@ -289,9 +289,9 @@ void Room::trial2GlobDoneExploding() { stopAllVocSounds(); playVoc("Noooloop"); showText(TX_SPEAKER_SPOCK, TX_TRI2_020); - _vm->_awayMission.trial.globDefeated = true; + _awayMission->trial.globDefeated = true; playMidiMusicTracks(MIDITRACK_28, -1); - _vm->_awayMission.trial.missionScore += 1; + _awayMission->trial.missionScore += 1; loadMapFile("trial2"); } @@ -302,10 +302,10 @@ void Room::trial2GlobDoneSplitting() { else { // Unused code block: instead of killing the crew right away, the crew can // interact with the split globs. - _vm->_awayMission.trial.globEnergyLevels[0] = 0; - _vm->_awayMission.trial.globEnergyLevels[1] = 1; - _vm->_awayMission.trial.globEnergyLevels[2] = 1; - _vm->_awayMission.trial.globSplitInTwo = true; + _awayMission->trial.globEnergyLevels[0] = 0; + _awayMission->trial.globEnergyLevels[1] = 1; + _awayMission->trial.globEnergyLevels[2] = 1; + _awayMission->trial.globSplitInTwo = true; loadActorAnim2(OBJECT_SPLIT_GLOB_1, "sglob", SPLIT_GLOB_1_X, SPLIT_GLOB_1_Y); loadActorAnim2(OBJECT_SPLIT_GLOB_2, "sglob", SPLIT_GLOB_2_X, SPLIT_GLOB_2_Y); loadActorStandAnim(OBJECT_GLOB); @@ -322,7 +322,7 @@ void Room::trial2GlobDoneSplitting() { // Everyone gets vaporized playVoc("V7ALLGET"); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playMidiMusicTracks(MIDITRACK_26, -1); loadActorAnimC(OBJECT_KIRK, "kkills", -1, -1, &Room::trial2KirkDied); loadActorAnim2(OBJECT_SPOCK, "skills"); @@ -331,7 +331,7 @@ void Room::trial2GlobDoneSplitting() { } void Room::trial2KirkDied() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; showGameOverMenu(); } @@ -378,9 +378,9 @@ void Room::trial2UseMTricorderOnRedshirt() { void Room::trial2UseMTricorderOnGlob() { mccoyScan(DIR_S, TX_TRI2_011, true); - if (!_vm->_awayMission.trial.gotPointsForScanningGlob) { - _vm->_awayMission.trial.gotPointsForScanningGlob = true; - _vm->_awayMission.trial.missionScore += 1; + if (!_awayMission->trial.gotPointsForScanningGlob) { + _awayMission->trial.gotPointsForScanningGlob = true; + _awayMission->trial.missionScore += 1; } } @@ -395,14 +395,14 @@ void Room::trial2UseSTricorderAnywhere() { void Room::trial2UseSTricorderOnGlob() { spockScan(DIR_S, TX_TRI2_026, true); - if (!_vm->_awayMission.trial.gotPointsForScanningGlob) { - _vm->_awayMission.trial.gotPointsForScanningGlob = true; - _vm->_awayMission.trial.missionScore += 1; + if (!_awayMission->trial.gotPointsForScanningGlob) { + _awayMission->trial.gotPointsForScanningGlob = true; + _awayMission->trial.missionScore += 1; } } void Room::trial2UseCommunicator() { - if (_vm->_awayMission.trial.forceFieldDown) { // TODO: Refactor this between rooms? + if (_awayMission->trial.forceFieldDown) { // TODO: Refactor this between rooms? showText(TX_SPEAKER_UHURA, TX_TRI2U091); const TextRef choices[] = { @@ -413,18 +413,18 @@ void Room::trial2UseCommunicator() { int choice = showText(choices); if (choice == 0) { // "Beam us back to the enterprise" - _vm->_awayMission.trial.missionEndMethod = 1; - endMission(_vm->_awayMission.trial.missionScore, 1, 1); // FIXME: Inconsistent with TRIAL1 + _awayMission->trial.missionEndMethod = 1; + endMission(_awayMission->trial.missionScore, 1, 1); // FIXME: Inconsistent with TRIAL1 } else if (choice == 1) { // "Beam us to Vlict's position" showText(TX_SPEAKER_UHURA, TX_TRI1U080); // NOTE: Original didn't show text here - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadRoomIndex(4, 4); } // Else don't transport anywhere } else { // Force field still up showText(TX_SPEAKER_UHURA, TX_TRI2U087); showText(TX_SPEAKER_KIRK, TX_TRI2_006); showText(TX_SPEAKER_UHURA, TX_TRI2U104); - if (!_vm->_awayMission.trial.globDefeated) { + if (!_awayMission->trial.globDefeated) { showText(TX_SPEAKER_UHURA, TX_TRI2U081); showText(TX_SPEAKER_KIRK, TX_TRI2_002); } diff --git a/engines/startrek/rooms/trial3.cpp b/engines/startrek/rooms/trial3.cpp index a37bd625f2..49ac5bd09c 100644 --- a/engines/startrek/rooms/trial3.cpp +++ b/engines/startrek/rooms/trial3.cpp @@ -97,17 +97,17 @@ extern const int trial3NumActions = sizeof(trial3ActionList) / sizeof(RoomAction void Room::trial3Tick1() { playVoc("TRI3LOOP"); - if (!_vm->_awayMission.trial.enteredTrial3FirstTime) { - _vm->_awayMission.disableWalking = true; - _vm->_awayMission.disableInput = 2; + if (!_awayMission->trial.enteredTrial3FirstTime) { + _awayMission->disableWalking = true; + _awayMission->disableInput = 2; } playMidiMusicTracks(MIDITRACK_33, -1); } void Room::trial3Tick30() { - if (!_vm->_awayMission.trial.enteredTrial3FirstTime) { - _vm->_awayMission.disableInput = false; - _vm->_awayMission.trial.enteredTrial3FirstTime = true; + if (!_awayMission->trial.enteredTrial3FirstTime) { + _awayMission->disableInput = false; + _awayMission->trial.enteredTrial3FirstTime = true; showText(TX_SPEAKER_BENNIE, TX_TRI3_030); showText(TX_SPEAKER_KIRK, TX_TRI3_005); @@ -134,13 +134,13 @@ void Room::trial3Klingon3BeamedIn() { } void Room::trial3KlingonShootsSomeone1() { - _vm->_awayMission.trial.klingonShootIndex++; - if (_vm->_awayMission.trial.klingonShootIndex == 1) { + _awayMission->trial.klingonShootIndex++; + if (_awayMission->trial.klingonShootIndex == 1) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas04", 5); loadActorAnimC(OBJECT_REDSHIRT, "rkillw", -1, -1, &Room::trial3RedshirtDoneDying); - _vm->_awayMission.redshirtDead = true; - } else if (_vm->_awayMission.trial.klingonShootIndex == 2) { + _awayMission->redshirtDead = true; + } else if (_awayMission->trial.klingonShootIndex == 2) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas05", 5); playMidiMusicTracks(MIDITRACK_2, -1); @@ -166,13 +166,13 @@ void Room::trial3Klingon3DoneShooting() { void Room::trial3KlingonShootsSomeone2() { // This function is almost exactly identical to "trial3KlingonShootsSomeone1(), just // one line differs... - _vm->_awayMission.trial.klingonShootIndex++; - if (_vm->_awayMission.trial.klingonShootIndex == 1) { + _awayMission->trial.klingonShootIndex++; + if (_awayMission->trial.klingonShootIndex == 1) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas04", 5); loadActorAnimC(OBJECT_REDSHIRT, "rkillw", -1, -1, &Room::trial3RedshirtDoneDying); - _vm->_awayMission.redshirtDead = true; - } else if (_vm->_awayMission.trial.klingonShootIndex == 2) { + _awayMission->redshirtDead = true; + } else if (_awayMission->trial.klingonShootIndex == 2) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas05", 5); // NOTE: Only difference to "trial3KlingonShootsSomeone1" is this doesn't play a midi track? @@ -181,7 +181,7 @@ void Room::trial3KlingonShootsSomeone2() { } void Room::trial3RedshirtDoneDying() { - _vm->_awayMission.redshirtDead = true; + _awayMission->redshirtDead = true; } void Room::trial3KirkDoneDying() { @@ -189,31 +189,31 @@ void Room::trial3KirkDoneDying() { } void Room::trial3Klingon1Shot() { - _vm->_awayMission.trial.shotKlingons |= 1; + _awayMission->trial.shotKlingons |= 1; trial3CheckShowUhuraText(); } void Room::trial3Klingon2Shot() { - _vm->_awayMission.trial.shotKlingons |= 2; + _awayMission->trial.shotKlingons |= 2; trial3CheckShowUhuraText(); } void Room::trial3Klingon3Shot() { - _vm->_awayMission.trial.shotKlingons |= 4; + _awayMission->trial.shotKlingons |= 4; trial3CheckShowUhuraText(); } void Room::trial3CheckShowUhuraText() { - if (_vm->_awayMission.trial.shotKlingons == 1) { - _vm->_awayMission.trial.shotKlingons |= 8; - _vm->_awayMission.disableWalking = false; + if (_awayMission->trial.shotKlingons == 1) { + _awayMission->trial.shotKlingons |= 8; + _awayMission->disableWalking = false; loadActorStandAnim(OBJECT_KIRK); showText(TX_SPEAKER_UHURA, TX_TRI3U084); showText(TX_SPEAKER_KIRK, TX_TRI3_007); showText(TX_SPEAKER_UHURA, TX_TRI3U099); - _vm->_awayMission.trial.forceFieldDown = true; + _awayMission->trial.forceFieldDown = true; const TextRef choices[] = { TX_SPEAKER_KIRK, @@ -224,7 +224,7 @@ void Room::trial3CheckShowUhuraText() { if (choice == 0) { // Don't beam out } else if (choice == 1) { // Beam to enterprise - endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 1); // FIXME: inconsistent + endMission(_awayMission->trial.missionScore, _awayMission->trial.field2b, 1); // FIXME: inconsistent } else if (choice == 2) { // Beam to Vlict trial3BeamToVlict(); } @@ -232,19 +232,19 @@ void Room::trial3CheckShowUhuraText() { } void Room::trial3CrewmanBeamedOut() { - if (!_vm->_awayMission.trial.gotPointsForBeamingOut) { - _vm->_awayMission.trial.gotPointsForBeamingOut = true; - _vm->_awayMission.trial.missionScore += 2; // BUG: Doesn't happen when done in other rooms + if (!_awayMission->trial.gotPointsForBeamingOut) { + _awayMission->trial.gotPointsForBeamingOut = true; + _awayMission->trial.missionScore += 2; // BUG: Doesn't happen when done in other rooms } loadRoomIndex(4, 4); } void Room::trial3Tick90() { - if ((!(_vm->_awayMission.trial.shotKlingons & 8) && _vm->_awayMission.trial.shotKlingonState != 20)) { + if ((!(_awayMission->trial.shotKlingons & 8) && _awayMission->trial.shotKlingonState != 20)) { playSoundEffectIndex(SND_TRANSMAT); playMidiMusicTracks(MIDITRACK_32, -1); loadActorAnimC(OBJECT_KLINGON_1, "t3ktel", 0x57, 0xb1, &Room::trial3Klingon1BeamedIn); - _vm->_awayMission.trial.shotKlingonState = 21; + _awayMission->trial.shotKlingonState = 21; } } @@ -308,19 +308,19 @@ void Room::trial3UseStunPhaserOnKlingon1() { // he's conscious (21). // There's also the "dead" state (23) to consider. This prevents a softlock if // a phaser is used on him just as he's being vaporized. - if (_vm->_awayMission.trial.shotKlingonState == 21) { - _vm->_awayMission.disableInput = true; + if (_awayMission->trial.shotKlingonState == 21) { + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "kdraww", -1, -1, &Room::trial3ReadyToShootKlingon1OnStun); } } void Room::trial3ReadyToShootKlingon1OnStun() { - if (_vm->_awayMission.trial.shotKlingonState == 21) { + if (_awayMission->trial.shotKlingonState == 21) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas00", 5); loadActorAnimC(OBJECT_KLINGON_1, "t3kstn", -1, -1, &Room::trial3Klingon1Shot); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.trial.shotKlingonState = 22; + _awayMission->disableInput = false; + _awayMission->trial.shotKlingonState = 22; } } @@ -328,20 +328,20 @@ void Room::trial3UseKillPhaserOnKlingon1() { // BUGFIX: Prevent softlock by checking that he's conscious (shotKlingonState == 21) // In addition to preventing the softlock mentioned above, this also prevents // a softlock where a kill phaser is used on the unconscious klingon. - if (_vm->_awayMission.trial.shotKlingonState == 21) { - _vm->_awayMission.disableInput = true; + if (_awayMission->trial.shotKlingonState == 21) { + _awayMission->disableInput = true; loadActorAnimC(OBJECT_KIRK, "kdraww", -1, -1, &Room::trial3ReadyToShootKlingon1OnKill); } } void Room::trial3ReadyToShootKlingon1OnKill() { - if (_vm->_awayMission.trial.shotKlingonState == 21) { + if (_awayMission->trial.shotKlingonState == 21) { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3phas02", 5); loadActorAnimC(OBJECT_KLINGON_1, "t3kdie", -1, -1, &Room::trial3Klingon1Shot); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.trial.shotKlingonState = 23; - _vm->_awayMission.trial.missionScore -= 3; // Penalty for killing klingon + _awayMission->disableInput = false; + _awayMission->trial.shotKlingonState = 23; + _awayMission->trial.missionScore -= 3; // Penalty for killing klingon } } @@ -379,15 +379,15 @@ void Room::trial3UseSTricorderOnExit() { } void Room::trial3UseMTricorderOnKlingon() { - if (_vm->_awayMission.trial.shotKlingonState == 22) { // Unconscious + if (_awayMission->trial.shotKlingonState == 22) { // Unconscious mccoyScan(DIR_S, TX_TRI3_011); - if (!_vm->_awayMission.redshirtDead) // BUGFIX: Check if redshirt is dead + if (!_awayMission->redshirtDead) // BUGFIX: Check if redshirt is dead showText(TX_SPEAKER_BENNIE, TX_TRI3_028); } } void Room::trial3UseCommunicator() { - if (_vm->_awayMission.trial.forceFieldDown) { + if (_awayMission->trial.forceFieldDown) { showText(TX_SPEAKER_UHURA, TX_TRI3U089); const TextRef choices[] = { @@ -398,8 +398,8 @@ void Room::trial3UseCommunicator() { int choice = showText(choices); if (choice == 0) { // "Beam us back to the enterprise" - _vm->_awayMission.trial.missionEndMethod = 1; - endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 1); // FIXME: inconsistent + _awayMission->trial.missionEndMethod = 1; + endMission(_awayMission->trial.missionScore, _awayMission->trial.field2b, 1); // FIXME: inconsistent } else if (choice == 1) { // "Beam us to Vlict's position" trial3BeamToVlict(); } // Else don't transport anywhere @@ -414,13 +414,13 @@ void Room::trial3BeamToVlict() { // text from TRIAL1 instead. showText(TX_SPEAKER_UHURA, TX_TRI1U080); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playSoundEffectIndex(SND_TRANSDEM); loadActorAnimC(OBJECT_KIRK, "kteled", -1, -1, &Room::trial3CrewmanBeamedOut); loadActorAnimC(OBJECT_SPOCK, "steled", -1, -1, &Room::trial3CrewmanBeamedOut); loadActorAnimC(OBJECT_MCCOY, "mteled", -1, -1, &Room::trial3CrewmanBeamedOut); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) loadActorAnimC(OBJECT_REDSHIRT, "rteled", -1, -1, &Room::trial3CrewmanBeamedOut); } diff --git a/engines/startrek/rooms/trial4.cpp b/engines/startrek/rooms/trial4.cpp index 29e4fcf92e..b6de4d768e 100644 --- a/engines/startrek/rooms/trial4.cpp +++ b/engines/startrek/rooms/trial4.cpp @@ -180,8 +180,8 @@ void Room::trial4Tick60() { } showText(TX_SPEAKER_KIRK, TX_TRI4_012); - _vm->_awayMission.trial.missionEndMethod = 2; - endMission(_vm->_awayMission.trial.missionScore, _vm->_awayMission.trial.field2b, 2); + _awayMission->trial.missionEndMethod = 2; + endMission(_awayMission->trial.missionScore, _awayMission->trial.field2b, 2); } } diff --git a/engines/startrek/rooms/trial5.cpp b/engines/startrek/rooms/trial5.cpp index ecc3c64c2e..ec1111da3c 100644 --- a/engines/startrek/rooms/trial5.cpp +++ b/engines/startrek/rooms/trial5.cpp @@ -220,14 +220,14 @@ void Room::trial5VlictAppeared() { if (choice == 1) { // "Now you can rot as you deserve" showText(TX_SPEAKER_BIALBI, TX_TRI5_034); - _vm->_awayMission.trial.missionEndMethod = 4; - endMission(_vm->_awayMission.trial.missionScore, 1, 4); + _awayMission->trial.missionEndMethod = 4; + endMission(_awayMission->trial.missionScore, 1, 4); } else if (choice == 2) { // "I'll intervene if Quetzecoatl goes free" showText(TX_SPEAKER_VLICT, TX_TRI5_019); playMidiMusicTracks(MIDITRACK_28, -1); showText(TX_SPEAKER_BIALBI, TX_TRI5_025); - _vm->_awayMission.trial.missionScore += 4; + _awayMission->trial.missionScore += 4; showText(TX_SPEAKER_KIRK, TX_TRI5_004); showText(TX_SPEAKER_BIALBI, TX_TRI5_030); showText(TX_SPEAKER_BIALBI, TX_TRI5_026); @@ -237,7 +237,7 @@ void Room::trial5VlictAppeared() { showText(TX_SPEAKER_BIALBI, TX_TRI5_033); showText(TX_SPEAKER_BIALBI, TX_TRI5_032); - _vm->_awayMission.trial.missionEndMethod = 3; + _awayMission->trial.missionEndMethod = 3; endMission(1, 1, 3); // FIXME: Are these parameters correct? } } @@ -247,12 +247,12 @@ void Room::trial5WalkToInterface() { } void Room::trial5ReachedInterface() { - if (!_vm->_awayMission.trial.neuralInterfaceActive) + if (!_awayMission->trial.neuralInterfaceActive) showText(TX_SPEAKER_VOICE, TX_TRI5_035); else { showText(TX_SPEAKER_BIALBI, TX_TRI5_024); loadActorAnimC(OBJECT_VLICT, "vlict1", 0xbe, 0x91, &Room::trial5VlictAppeared); - _vm->_awayMission.trial.missionScore += 5; + _awayMission->trial.missionScore += 5; playMidiMusicTracks(MIDITRACK_1, -1); } } @@ -261,20 +261,20 @@ void Room::trial5GetGem(int16 item, int16 object) { _roomVar.trial.itemToUse = item; _roomVar.trial.objectToUse = object; - _vm->_awayMission.disableInput = true; - if (object == _vm->_awayMission.trial.holeContents[0]) { - _vm->_awayMission.trial.holeContents[0] = 0; - _vm->_awayMission.trial.neuralInterfaceActive = false; + _awayMission->disableInput = true; + if (object == _awayMission->trial.holeContents[0]) { + _awayMission->trial.holeContents[0] = 0; + _awayMission->trial.neuralInterfaceActive = false; loadActorStandAnim(OBJECT_BEAM); walkCrewmanC(OBJECT_KIRK, 0x2c, 0x9f, &Room::trial5ReachedGem); - } else if (object == _vm->_awayMission.trial.holeContents[1]) { - _vm->_awayMission.trial.holeContents[1] = 0; - _vm->_awayMission.trial.neuralInterfaceActive = false; + } else if (object == _awayMission->trial.holeContents[1]) { + _awayMission->trial.holeContents[1] = 0; + _awayMission->trial.neuralInterfaceActive = false; loadActorStandAnim(OBJECT_BEAM); walkCrewmanC(OBJECT_KIRK, 0x22, 0x9f, &Room::trial5ReachedGem); - } else if (object == _vm->_awayMission.trial.holeContents[2]) { - _vm->_awayMission.trial.holeContents[2] = 0; - _vm->_awayMission.trial.neuralInterfaceActive = false; + } else if (object == _awayMission->trial.holeContents[2]) { + _awayMission->trial.holeContents[2] = 0; + _awayMission->trial.neuralInterfaceActive = false; loadActorStandAnim(OBJECT_BEAM); walkCrewmanC(OBJECT_KIRK, 0x3c, 0x9f, &Room::trial5ReachedGem); } else if (object == OBJECT_REDGEM1 || object == OBJECT_REDGEM2 || object == OBJECT_REDGEM3) @@ -292,7 +292,7 @@ void Room::trial5ReachedGem() { void Room::trial5PickedUpGem() { giveItem(_roomVar.trial.itemToUse); loadActorStandAnim(_roomVar.trial.objectToUse); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::trial5GetRedGem1() { @@ -451,7 +451,7 @@ void Room::trial5UseGemOnHole(int16 item, int16 object, int16 hole) { _roomVar.trial.objectToUse = object; _roomVar.trial.hole = hole; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewmanC(OBJECT_KIRK, positions[hole].x, positions[hole].y, &Room::trial5ReachedHoleToPutGem); } @@ -473,8 +473,8 @@ void Room::trial5ReachedHoleToPutGem() { loadActorAnim2(OBJECT_KIRK, "kusehn"); - if (_vm->_awayMission.trial.holeContents[hole] == 0) { - _vm->_awayMission.trial.holeContents[hole] = _roomVar.trial.objectToUse; + if (_awayMission->trial.holeContents[hole] == 0) { + _awayMission->trial.holeContents[hole] = _roomVar.trial.objectToUse; loadActorAnim2(_roomVar.trial.objectToUse, anim, pos.x, pos.y); loseItem(_roomVar.trial.itemToUse); @@ -490,7 +490,7 @@ void Room::trial5ReachedHoleToPutGem() { holes[2] = 0; for (int i = 0; i < 3; i++) { - int16 c = _vm->_awayMission.trial.holeContents[i]; + int16 c = _awayMission->trial.holeContents[i]; if (c >= OBJECT_REDGEM1 && c <= OBJECT_REDGEM3) holes[i] = RED; else if (c >= OBJECT_GRNGEM1 && c <= OBJECT_GRNGEM3) @@ -537,11 +537,11 @@ void Room::trial5ReachedHoleToPutGem() { playVoc("EFX12B"); showText(TX_SPEAKER_LIGHT_OF_KNOWLEDGE, TX_TRI5_040); showText(TX_SPEAKER_LIGHT_OF_KNOWLEDGE, TX_TRI5_037); - _vm->_awayMission.trial.neuralInterfaceActive = true; + _awayMission->trial.neuralInterfaceActive = true; - if (!_vm->_awayMission.trial.gotPointsForActivatingInterface) { - _vm->_awayMission.trial.gotPointsForActivatingInterface = true; - _vm->_awayMission.trial.missionScore += 3; + if (!_awayMission->trial.gotPointsForActivatingInterface) { + _awayMission->trial.gotPointsForActivatingInterface = true; + _awayMission->trial.missionScore += 3; } } else if COMBO(GREEN, GREEN, BLUE) { trial5RestrictedCombination1(); @@ -576,13 +576,13 @@ void Room::trial5ReachedHoleToPutGem() { trial5ActivateLightOfTravel(); showText(TX_SPEAKER_LIGHT_OF_TRAVEL, TX_TRI5_046); - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; playSoundEffectIndex(SND_TRANSDEM); loadActorAnimC(OBJECT_KIRK, "kteled", -1, -1, &Room::trial5CrewmanBeamedOut); loadActorAnimC(OBJECT_SPOCK, "steled", -1, -1, &Room::trial5CrewmanBeamedOut); loadActorAnimC(OBJECT_MCCOY, "mteled", -1, -1, &Room::trial5CrewmanBeamedOut); - if (!_vm->_awayMission.redshirtDead) + if (!_awayMission->redshirtDead) loadActorAnimC(OBJECT_REDSHIRT, "rteled", -1, -1, &Room::trial5CrewmanBeamedOut); } else { // Some holes are empty @@ -626,9 +626,9 @@ void Room::trial5DestinationNoLongerExists() { } void Room::trial5CrewmanBeamedOut() { - if (!_vm->_awayMission.trial.gotPointsForBeamingOut) { - _vm->_awayMission.trial.gotPointsForBeamingOut = true; - _vm->_awayMission.trial.missionScore += 1; + if (!_awayMission->trial.gotPointsForBeamingOut) { + _awayMission->trial.gotPointsForBeamingOut = true; + _awayMission->trial.missionScore += 1; } loadRoomIndex(4, 4); } diff --git a/engines/startrek/rooms/tug0.cpp b/engines/startrek/rooms/tug0.cpp index 4461b226d5..640ecef6b4 100644 --- a/engines/startrek/rooms/tug0.cpp +++ b/engines/startrek/rooms/tug0.cpp @@ -28,16 +28,16 @@ void Room::tug0Tick1() { playVoc("TUG0LOOP"); playMidiMusicTracks(0, -1); - _vm->_awayMission.tug.field2b = 0x23; - if (_vm->_awayMission.tug.transporterRepaired) + _awayMission->tug.field2b = 0x23; + if (_awayMission->tug.transporterRepaired) loadActorAnim2(11, "t0con2", 0x105, 0xc2, 0); - if (!_vm->_awayMission.tug.engineerConscious) + if (!_awayMission->tug.engineerConscious) loadActorAnim2(8, "tcdown", 0x27, 0xa8, 0); else { loadActorAnim2(8, "tcupd", 0x27, 0xa8, 0); - if (_vm->_awayMission.tug.gotTransmogrifier) + if (_awayMission->tug.gotTransmogrifier) loadActorAnim2(9, "pempty", 0x27, 0xa9, 0); else { loadActorAnim2(9, "popend", 0x27, 0xa9, 0); @@ -47,7 +47,7 @@ void Room::tug0Tick1() { } void Room::tug0LookAtEngineer() { - if (_vm->_awayMission.tug.engineerConscious) + if (_awayMission->tug.engineerConscious) showText(TX_TUG0N002); else showText(TX_TUG0N014); @@ -58,15 +58,15 @@ void Room::tug0GetEngineer() { } void Room::tug0LookAtControls() { - if (_vm->_awayMission.tug.transporterRepaired) + if (_awayMission->tug.transporterRepaired) showText(TX_TUG0N012); else showText(TX_TUG0N001); } void Room::tug0UseSpockOnControls() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0xdb, 0xc5, 16); } @@ -82,8 +82,8 @@ void Room::tug0SpockExaminedControls() { showText(TX_SPEAKER_KIRK, TX_TUG0_013); showText(TX_SPEAKER_SPOCK, TX_TUG0_038); showText(TX_SPEAKER_KIRK, TX_TUG0_008); - _vm->_awayMission.tug.spockExaminedTransporter = true; - _vm->_awayMission.disableInput = false; + _awayMission->tug.spockExaminedTransporter = true; + _awayMission->disableInput = false; } void Room::tug0UseTransmogrifierWithoutBitOnControls() { @@ -91,8 +91,8 @@ void Room::tug0UseTransmogrifierWithoutBitOnControls() { } void Room::tug0UseTransmogrifierWithBitOnControls() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0xdb, 0xc5, 6); } @@ -104,9 +104,9 @@ void Room::tug0SpockReachedControlsWithTransmogrifier() { void Room::tug0SpockFinishedUsingTransmogrifier() { loseItem(OBJECT_IRTWB); - _vm->_awayMission.tug.usedTransmogrifierOnTransporter = true; - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore++; + _awayMission->tug.usedTransmogrifierOnTransporter = true; + _awayMission->disableInput = false; + _awayMission->tug.missionScore++; } void Room::tug0TransporterScreenFullyLit() { @@ -114,14 +114,14 @@ void Room::tug0TransporterScreenFullyLit() { } void Room::tug0UseWireScrapsOnControls() { - if (_vm->_awayMission.tug.usedTransmogrifierOnTransporter) + if (_awayMission->tug.usedTransmogrifierOnTransporter) showText(TX_SPEAKER_SPOCK, TX_TUG0_034); } void Room::tug0UseWireOnControls() { - if (_vm->_awayMission.tug.usedTransmogrifierOnTransporter) { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + if (_awayMission->tug.usedTransmogrifierOnTransporter) { + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0xdb, 0xc5, 8); } } @@ -131,26 +131,26 @@ void Room::tug0SpockReachedControlsWithWire() { } void Room::tug0SpockFinishedUsingWire() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loseItem(OBJECT_IWIRING); - _vm->_awayMission.tug.missionScore++; + _awayMission->tug.missionScore++; loadActorAnim2(11, "t0con1", 0x105, 0xc2, 22); showText(TX_SPEAKER_SPOCK, TX_TUG0_039); - _vm->_awayMission.tug.transporterRepaired = true; + _awayMission->tug.transporterRepaired = true; showText(TX_SPEAKER_KIRK, TX_TUG0_010); showText(TX_SPEAKER_MCCOY, TX_TUG0_022); // BUGFIX: check if the redshirt is dead. - if (!_vm->_awayMission.redshirtDead) { + if (!_awayMission->redshirtDead) { showText(TX_SPEAKER_KIRK, TX_TUG0_002); showText(TX_SPEAKER_CHRISTENSEN, TX_TUG0L009); showText(TX_SPEAKER_CHRISTENSEN, TX_TUG0L008); - if (_vm->_awayMission.tug.haveBomb) { + if (_awayMission->tug.haveBomb) { showText(TX_SPEAKER_CHRISTENSEN, TX_TUG0L010); showText(TX_SPEAKER_MCCOY, TX_TUG0_021); showText(TX_SPEAKER_SPOCK, TX_TUG0_041); @@ -159,10 +159,10 @@ void Room::tug0SpockFinishedUsingWire() { } void Room::tug0UseMedkitOnEngineer() { - if (_vm->_awayMission.tug.engineerConscious) + if (_awayMission->tug.engineerConscious) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; walkCrewman(OBJECT_MCCOY, 0x2d, 0xaf, 2); } @@ -172,24 +172,24 @@ void Room::tug0MccoyReachedEngineer() { void Room::tug0MccoyHealedEngineer() { loadActorAnim2(8, "tcup", 0x27, 0xa8, 1); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; walkCrewman(OBJECT_MCCOY, 0x41, 0xaf, 0); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore++; + _awayMission->disableInput = false; + _awayMission->tug.missionScore++; } void Room::tug0EngineerGotUp() { showText(TX_SPEAKER_SIMPSON, TX_TUG0_F31); - _vm->_awayMission.tug.engineerConscious = true; + _awayMission->tug.engineerConscious = true; loadActorAnim2(8, "tcshow", 0x27, 0xa8, 0); loadActorAnim2(9, "popen", 0x27, 0xa9, 0); playVoc("MUR4E6S"); } void Room::tug0GetTransmogrifier() { - if (_vm->_awayMission.tug.gotTransmogrifier) + if (_awayMission->tug.gotTransmogrifier) return; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x1e, 0xb1, 3); } @@ -198,16 +198,16 @@ void Room::tug0KirkReachedToolbox() { } void Room::tug0KirkGotTransmogrifier() { - _vm->_awayMission.tug.gotTransmogrifier = true; + _awayMission->tug.gotTransmogrifier = true; giveItem(OBJECT_IRT); loadActorAnim2(9, "pempty", 0x27, 0xa9, 0); loadActorStandAnim(OBJECT_KIRK); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore++; + _awayMission->disableInput = false; + _awayMission->tug.missionScore++; } void Room::tug0LookAtToolbox() { - if (_vm->_awayMission.tug.gotTransmogrifier) + if (_awayMission->tug.gotTransmogrifier) showText(TX_TUG0N008); else showText(TX_TUG0N000); @@ -220,7 +220,7 @@ void Room::tug0UsePhaserOnWelder() { // BUGFIX: this following line didn't exist, despite it existing in TUG1; meaning this // was supposed to give points, but it only did in a specific room. - _vm->_awayMission.tug.missionScore += 3; + _awayMission->tug.missionScore += 3; } void Room::tug0UseWelderOnWireScraps() { @@ -242,17 +242,17 @@ void Room::tug0UseCombBitOnTransmogrifier() { } void Room::tug0UseTransporter() { - if (!_vm->_awayMission.tug.transporterRepaired) + if (!_awayMission->tug.transporterRepaired) return; - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_S; walkCrewman(OBJECT_KIRK, 0x62, 0x7f, 0); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0x11e, 0xc7, 14); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; walkCrewman(OBJECT_MCCOY, 0x7b, 0x7a, 0); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_S; walkCrewman(OBJECT_REDSHIRT, 0x4a, 0x7b, 0); } @@ -264,7 +264,7 @@ void Room::tug0SpockReachedControlsToTransport() { void Room::tug0SpockPreparedTransporter() { showText(TX_SPEAKER_KIRK, TX_TUG0_001); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; walkCrewman(OBJECT_SPOCK, 0x9a, 0x7e, 20); } @@ -277,18 +277,18 @@ void Room::tug0SpockReachedTransporter() { } void Room::tug0FinishedTransporting() { - _vm->_awayMission.tug.missionScore += 3; - _vm->_awayMission.disableInput = true; + _awayMission->tug.missionScore += 3; + _awayMission->disableInput = true; loadRoomIndex(3, 4); } void Room::tug0UseBombOnTransporter() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; walkCrewman(OBJECT_KIRK, 0x62, 0x7f, 5); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; walkCrewman(OBJECT_MCCOY, 0x46, 0xbe, 0); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; walkCrewman(OBJECT_REDSHIRT, 0x78, 0xbe, 0); } @@ -300,9 +300,9 @@ void Room::tug0KirkPlacedBomb() { loseItem(OBJECT_IBOMB); loadActorAnim2(10, "bomb1", 0x5a, 0x7f, 0); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xc8, 0xbe, 11); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_W; walkCrewman(OBJECT_SPOCK, 0x11e, 0xc7, 15); } @@ -319,8 +319,8 @@ void Room::tug0SpockBeginsBeamingBomb() { void Room::tug0SpockFinishesBeamingBomb() { playSoundEffectIndex(SND_BLANK_14); - _vm->_awayMission.tug.missionScore = 0; - _vm->_awayMission.timers[0] = 64; + _awayMission->tug.missionScore = 0; + _awayMission->timers[0] = 64; } void Room::tug0BombExploded() { @@ -333,15 +333,15 @@ void Room::tug0BombExploded() { showText(TX_SPEAKER_KIRK, TX_TUG0_003); showText(TX_SPEAKER_SCOTT, TX_TUG0_S06); - _vm->_awayMission.tug.field2d = 1; - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.missionScore < 0) - _vm->_awayMission.tug.missionScore = 0; - endMission(_vm->_awayMission.tug.missionScore, _vm->_awayMission.tug.field2b, _vm->_awayMission.tug.field2d); + _awayMission->tug.field2d = 1; + _awayMission->disableInput = true; + if (_awayMission->tug.missionScore < 0) + _awayMission->tug.missionScore = 0; + endMission(_awayMission->tug.missionScore, _awayMission->tug.field2b, _awayMission->tug.field2d); } void Room::tug0UseMTricorderOnControls() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_MCCOY, TX_TUG0_016); @@ -354,8 +354,8 @@ void Room::tug0UseSTricorderOnControls() { } void Room::tug0UseMTricorderOnEngineer() { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; walkCrewman(OBJECT_MCCOY, 0x2d, 0xaf, 24); } @@ -365,18 +365,18 @@ void Room::tug0MccoyReachedEngineerToScan() { } void Room::tug0MccoyFinishedScanningEngineer() { - if (_vm->_awayMission.tug.engineerConscious) + if (_awayMission->tug.engineerConscious) showText(TX_SPEAKER_MCCOY, TX_TUG0_017); else showText(TX_SPEAKER_MCCOY, TX_TUG0_018); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; walkCrewman(OBJECT_MCCOY, 0x41, 0xaf, 26); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug0UseSTricorderOnEngineer() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG0_030); @@ -432,7 +432,7 @@ void Room::tug0TalkToRedshirt() { } void Room::tug0TalkToEngineer() { - if (_vm->_awayMission.tug.engineerConscious) { + if (_awayMission->tug.engineerConscious) { showText(TX_SPEAKER_SIMPSON, TX_TUG0_F30); showText(TX_SPEAKER_MCCOY, TX_TUG0_026); showText(TX_SPEAKER_KIRK, TX_TUG0_012); @@ -448,14 +448,14 @@ void Room::tug0LookAnywhere() { } void Room::tug0UseSTricorderAnywhere() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_S; loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG0_028); } void Room::tug0UseMTricorderAnywhere() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_S; loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_MCCOY, TX_TUG0_020); // BUG: typo diff --git a/engines/startrek/rooms/tug1.cpp b/engines/startrek/rooms/tug1.cpp index f2b1daeee5..c91387cfc5 100644 --- a/engines/startrek/rooms/tug1.cpp +++ b/engines/startrek/rooms/tug1.cpp @@ -36,12 +36,12 @@ namespace StarTrek { void Room::tug1Tick1() { playVoc("TUG1LOOP"); - if (!_vm->_awayMission.tug.gotJunkPile) + if (!_awayMission->tug.gotJunkPile) loadActorAnim2(OBJECT_JUNKPILE, "jnkpil", 0xfd, 0xa0, 0); } void Room::tug1UseSTricorderOnAnything() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG1_014); @@ -51,27 +51,27 @@ void Room::tug1UseSTricorderOnAnything() { } void Room::tug1LookAtBridgeDoor() { - if (_vm->_awayMission.tug.bridgeForceFieldDown) + if (_awayMission->tug.bridgeForceFieldDown) return; showText(TX_TUG1N005); } void Room::tug1UseSTricorderOnBridgeDoor() { - if (_vm->_awayMission.tug.bridgeForceFieldDown) + if (_awayMission->tug.bridgeForceFieldDown) return; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG1_002); } void Room::tug1UsePhaserOnBridgeDoor() { - if (_vm->_awayMission.tug.bridgeForceFieldDown) + if (_awayMission->tug.bridgeForceFieldDown) showText(TX_TUG1N007); else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xbe, 0x78, 3); } } @@ -86,18 +86,18 @@ void Room::tug1KirkPulledOutPhaser() { } void Room::tug1KirkFinishedFiringPhaser() { - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; loadActorStandAnim(OBJECT_KIRK); loadActorStandAnim(OBJECT_PHASERSHOT); } void Room::tug1TalkToSpock() { - if (!_vm->_awayMission.tug.bridgeForceFieldDown) + if (!_awayMission->tug.bridgeForceFieldDown) showText(TX_SPEAKER_SPOCK, TX_TUG1_010); } void Room::tug1UseSTricorderOnJunkPile() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG1_009); @@ -116,10 +116,10 @@ void Room::tug1KirkReachedJunkPile() { } void Room::tug1KirkFinishedTakingJunkPile() { - _vm->_awayMission.tug.gotJunkPile = true; + _awayMission->tug.gotJunkPile = true; giveItem(OBJECT_IDEADPH); giveItem(OBJECT_IPWE); - _vm->_awayMission.tug.missionScore++; + _awayMission->tug.missionScore++; giveItem(OBJECT_IWIRSCRP); giveItem(OBJECT_IJNKMETL); @@ -132,7 +132,7 @@ void Room::tug1UsePhaserOnWelder() { giveItem(OBJECT_IPWF); showText(TX_TUG1N004); - _vm->_awayMission.tug.missionScore += 3; + _awayMission->tug.missionScore += 3; } void Room::tug1UseWelderOnWireScraps() { @@ -154,21 +154,21 @@ void Room::tug1UseCombBitOnTransmogrifier() { } void Room::tug1UsePhaserWelderOnBridgeDoor() { - if (_vm->_awayMission.tug.bridgeForceFieldDown) + if (_awayMission->tug.bridgeForceFieldDown) showText(TX_TUG1N008); else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xc2, 0x6a, 6); } } void Room::tug1UsePhaserWelderOnBridgeDoorInLeftSpot() { - if (_vm->_awayMission.tug.bridgeForceFieldDown) + if (_awayMission->tug.bridgeForceFieldDown) showText(TX_TUG1N007); else { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xb1, 0x6a, 8); } } @@ -182,7 +182,7 @@ void Room::tug1KirkReachedBridgeDoorWithWelder() { void Room::tug1KirkFinishedUsingWelder() { loadActorStandAnim(OBJECT_PHASERSHOT); showText(TX_SPEAKER_SPOCK, TX_TUG1_016); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug1KirkReachedBridgeDoorWithWelderInLeftSpot() { @@ -194,9 +194,9 @@ void Room::tug1KirkReachedBridgeDoorWithWelderInLeftSpot() { void Room::tug1KirkFinishedUsingWelderInLeftSpot() { loadActorStandAnim(OBJECT_PHASERSHOT); showText(TX_SPEAKER_SPOCK, TX_TUG1_015); - _vm->_awayMission.tug.bridgeForceFieldDown = true; - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore++; + _awayMission->tug.bridgeForceFieldDown = true; + _awayMission->disableInput = false; + _awayMission->tug.missionScore++; } void Room::tug1LookAnywhere() { @@ -236,7 +236,7 @@ void Room::tug1LookAtBrigDoor() { } void Room::tug1UseSTricorderOnBrigDoor() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_N; loadActorAnim2(OBJECT_SPOCK, "sscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_SPOCK, TX_TUG1_018); @@ -253,14 +253,14 @@ void Room::tug1UseCommunicator() { } void Room::tug1WalkToBridgeDoor() { - if (!_vm->_awayMission.tug.bridgeForceFieldDown) + if (!_awayMission->tug.bridgeForceFieldDown) return; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xc2, 0x6e, 10); } void Room::tug1KirkReachedBridgeDoor() { - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; loadActorAnim2(OBJECT_PHASERSHOT, "h1do", 0, 0, 11); } @@ -273,38 +273,38 @@ void Room::tug1WalkToBrigDoor() { } void Room::tug1UseMTricorderAnywhere() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_MCCOY, TX_TUG1_003); } void Room::tug1UseMTricorderOnBridgeDoor() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_MCCOY, TX_TUG1_007); } void Room::tug1UseMTricorderOnBrigDoor() { - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_N; loadActorAnim2(OBJECT_MCCOY, "mscann", -1, -1, 0); playSoundEffectIndex(SND_TRICORDER); showText(TX_SPEAKER_MCCOY, TX_TUG1_005); } void Room::tug1UseSpockOnBridgeDoor() { - if (!_vm->_awayMission.tug.bridgeForceFieldDown) + if (!_awayMission->tug.bridgeForceFieldDown) showText(TX_SPEAKER_SPOCK, TX_TUG1_013); } void Room::tug1UseRedshirtOnBridgeDoor() { - if (!_vm->_awayMission.tug.bridgeForceFieldDown) + if (!_awayMission->tug.bridgeForceFieldDown) showText(TX_SPEAKER_CHRISTENSEN, TX_TUG1L000); } void Room::tug1UseMedkitOnBridgeDoor() { - if (!_vm->_awayMission.tug.bridgeForceFieldDown) + if (!_awayMission->tug.bridgeForceFieldDown) showText(TX_SPEAKER_MCCOY, TX_TUG1_004); } diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp index 2e8a9e61a2..04b2aaef71 100644 --- a/engines/startrek/rooms/tug2.cpp +++ b/engines/startrek/rooms/tug2.cpp @@ -43,76 +43,76 @@ namespace StarTrek { void Room::tug2Tick1() { playVoc("TUG2LOOP"); - if (!_vm->_awayMission.tug.haveBomb) + if (!_awayMission->tug.haveBomb) loadActorAnim2(OBJECT_BOMB, "t2bomb", -3, 1, 0); - if (!_vm->_awayMission.tug.gotWires) + if (!_awayMission->tug.gotWires) loadActorAnim2(OBJECT_WIRE, "t2wire", 0, 1, 0); - if (!_vm->_awayMission.tug.brigForceFieldDown) + if (!_awayMission->tug.brigForceFieldDown) loadActorAnim2(OBJECT_BRIG, "fld01", 0, 0, 0); else loadActorAnim2(OBJECT_BRIG, "fld10d", 0, 0, 0); - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) loadActorAnim2(OBJECT_BRIG, "zapdon", 0, 0, 0); // Security guy 1 - if (_vm->_awayMission.tug.guard1Status == 8) + if (_awayMission->tug.guard1Status == 8) loadActorAnim2(OBJECT_GUARD_1, "p5tied", 0xe0, 0xb1, 0); - else if (_vm->_awayMission.tug.guard1Status == 1 && _vm->_awayMission.tug.brigForceFieldDown) { + else if (_awayMission->tug.guard1Status == 1 && _awayMission->tug.brigForceFieldDown) { loadActorAnim2(OBJECT_GUARD_1, "p5tied", 0xe0, 0xb1, 0); - _vm->_awayMission.tug.guard1Status = 8; + _awayMission->tug.guard1Status = 8; } - if (_vm->_awayMission.tug.guard1Status == 1 && !_vm->_awayMission.tug.brigForceFieldDown) { - _vm->_awayMission.tug.guard1Status = 0; - _vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] = false; - _vm->_awayMission.tug.crewmanKilled[OBJECT_SPOCK] = false; - _vm->_awayMission.tug.crewmanKilled[OBJECT_MCCOY] = false; - if (!_vm->_awayMission.redshirtDead) - _vm->_awayMission.tug.crewmanKilled[OBJECT_REDSHIRT] = false; - _vm->_awayMission.tug.field5b = 0; + if (_awayMission->tug.guard1Status == 1 && !_awayMission->tug.brigForceFieldDown) { + _awayMission->tug.guard1Status = 0; + _awayMission->tug.crewmanKilled[OBJECT_KIRK] = false; + _awayMission->tug.crewmanKilled[OBJECT_SPOCK] = false; + _awayMission->tug.crewmanKilled[OBJECT_MCCOY] = false; + if (!_awayMission->redshirtDead) + _awayMission->tug.crewmanKilled[OBJECT_REDSHIRT] = false; + _awayMission->tug.field5b = 0; } - if (_vm->_awayMission.tug.guard1Status == 0) + if (_awayMission->tug.guard1Status == 0) loadActorAnim2(OBJECT_GUARD_1, "p5redy", 0xe0, 0xb1, 0); - if (_vm->_awayMission.tug.guard1Status == 2) + if (_awayMission->tug.guard1Status == 2) loadActorAnim2(OBJECT_GUARD_1, "p5hat", 0xe0, 0xb1, 0); // Security guy 2 - if (_vm->_awayMission.tug.guard2Status == 8) + if (_awayMission->tug.guard2Status == 8) loadActorAnim2(OBJECT_GUARD_2, "p6tied", 0xfb, 0xc5, 0); - else if (_vm->_awayMission.tug.guard2Status == 1 && _vm->_awayMission.tug.brigForceFieldDown) { + else if (_awayMission->tug.guard2Status == 1 && _awayMission->tug.brigForceFieldDown) { loadActorAnim2(OBJECT_GUARD_2, "p6tied", 0xfb, 0xc5, 0); - _vm->_awayMission.tug.guard2Status = 8; + _awayMission->tug.guard2Status = 8; } - if (_vm->_awayMission.tug.guard2Status == 1 && !_vm->_awayMission.tug.brigForceFieldDown) { - _vm->_awayMission.tug.guard2Status = 0; - _vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] = false; - _vm->_awayMission.tug.crewmanKilled[OBJECT_SPOCK] = false; - _vm->_awayMission.tug.crewmanKilled[OBJECT_MCCOY] = false; - if (!_vm->_awayMission.redshirtDead) - _vm->_awayMission.tug.crewmanKilled[OBJECT_REDSHIRT] = false; - _vm->_awayMission.tug.field5b = 0; + if (_awayMission->tug.guard2Status == 1 && !_awayMission->tug.brigForceFieldDown) { + _awayMission->tug.guard2Status = 0; + _awayMission->tug.crewmanKilled[OBJECT_KIRK] = false; + _awayMission->tug.crewmanKilled[OBJECT_SPOCK] = false; + _awayMission->tug.crewmanKilled[OBJECT_MCCOY] = false; + if (!_awayMission->redshirtDead) + _awayMission->tug.crewmanKilled[OBJECT_REDSHIRT] = false; + _awayMission->tug.field5b = 0; } - if (_vm->_awayMission.tug.guard2Status == 0) + if (_awayMission->tug.guard2Status == 0) loadActorAnim2(OBJECT_GUARD_2, "p6draw", 0xfb, 0xc5, 0); - if (_vm->_awayMission.tug.guard2Status == 2) + if (_awayMission->tug.guard2Status == 2) loadActorAnim2(OBJECT_GUARD_2, "p5hat", 0xfb, 0xc5, 0); // FIXME - if (_vm->_awayMission.tug.field4e == 0) + if (_awayMission->tug.field4e == 0) loadActorAnim2(OBJECT_13, "wallht", 0, 0, 0); - if (_vm->_awayMission.tug.field5b == 0) { - _vm->_awayMission.disableWalking = true; + if (_awayMission->tug.field5b == 0) { + _awayMission->disableWalking = true; playMidiMusicTracks(32, -1); } - _vm->_awayMission.tug.field5b = 1; - _vm->_awayMission.tug.kirkPhaserDrawn = 0; + _awayMission->tug.field5b = 1; + _awayMission->tug.kirkPhaserDrawn = 0; } void Room::tug2Tick60() { - if (!_vm->_awayMission.tug.guard1Status || !_vm->_awayMission.tug.guard2Status) { - _vm->_awayMission.timers[0] = 60; + if (!_awayMission->tug.guard1Status || !_awayMission->tug.guard2Status) { + _awayMission->timers[0] = 60; showText(TX_SPEAKER_ELASI_GUARD, TX_TUG2L085); tug2ElasiReadyPhaser(); } @@ -135,9 +135,9 @@ void Room::tug2LookAtRedshirt() { } void Room::tug2GetBomb() { - if (_vm->_awayMission.tug.brigForceFieldDown) { - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; + if (_awayMission->tug.brigForceFieldDown) { + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_N; walkCrewman(OBJECT_KIRK, 0xc9, 0xa0, 12); } else showText(TX_TUG2N024); @@ -150,8 +150,8 @@ void Room::tug2KirkReachedBomb() { void Room::tug2KirkGotBomb() { loadActorStandAnim(OBJECT_BOMB); giveItem(OBJECT_IBOMB); - _vm->_awayMission.tug.haveBomb = true; - _vm->_awayMission.disableInput = false; + _awayMission->tug.haveBomb = true; + _awayMission->disableInput = false; } void Room::tug2LookAtBomb() { @@ -159,24 +159,24 @@ void Room::tug2LookAtBomb() { } void Room::tug2LookAtGuard1() { - if (_vm->_awayMission.tug.guard1Status == 0) + if (_awayMission->tug.guard1Status == 0) showText(TX_TUG2N001); - else if (_vm->_awayMission.tug.guard1Status == 1) + else if (_awayMission->tug.guard1Status == 1) showText(TX_TUG2N013); - else if (_vm->_awayMission.tug.guard1Status == 8) + else if (_awayMission->tug.guard1Status == 8) showText(TX_TUG2N015); - else if (_vm->_awayMission.tug.guard1Status == 2) + else if (_awayMission->tug.guard1Status == 2) showText(TX_TUG2N106); } void Room::tug2LookAtGuard2() { - if (_vm->_awayMission.tug.guard2Status == 0) + if (_awayMission->tug.guard2Status == 0) showText(TX_TUG2N037); - else if (_vm->_awayMission.tug.guard2Status == 1) + else if (_awayMission->tug.guard2Status == 1) showText(TX_TUG2N014); - else if (_vm->_awayMission.tug.guard2Status == 8) + else if (_awayMission->tug.guard2Status == 8) showText(TX_TUG2N016); - else if (_vm->_awayMission.tug.guard2Status == 2) + else if (_awayMission->tug.guard2Status == 2) showText(TX_TUG2N106); } @@ -185,13 +185,13 @@ void Room::tug2LookAtWires() { } void Room::tug2UseSTricorderOnButton() { - if (_vm->_awayMission.tug.field35 != 0) + if (_awayMission->tug.field35 != 0) return; spockScan(DIR_E, TX_TUG2_007, true); } void Room::tug2UseMccoyOnWires() { - if (_vm->_awayMission.tug.field35 != 0) + if (_awayMission->tug.field35 != 0) return; showText(TX_SPEAKER_MCCOY, TX_TUG2_009); } @@ -201,11 +201,11 @@ void Room::tug2UseMccoyOnBomb() { } void Room::tug2UseRedshirtOnWires() { - if (_vm->_awayMission.disableWalking || _vm->_awayMission.tug.field35 != 0) + if (_awayMission->disableWalking || _awayMission->tug.field35 != 0) return; showText(TX_SPEAKER_CHRISTENSEN, TX_TUG2L007); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; - _vm->_awayMission.disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_N; + _awayMission->disableInput = true; walkCrewman(OBJECT_REDSHIRT, 0xc9, 0xa0, 6); } @@ -216,21 +216,21 @@ void Room::tug2RedshirtReachedWires() { void Room::tug2RedshirtDefusedBomb() { showText(TX_TUG2C001); showText(TX_SPEAKER_CHRISTENSEN, TX_TUG2L011); - _vm->_awayMission.tug.field35 = 4; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; + _awayMission->tug.field35 = 4; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; walkCrewman(OBJECT_REDSHIRT, 0x44, 0xc2, 8); } void Room::tug2RedshirtReturnedToPosition() { - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore += 2; + _awayMission->disableInput = false; + _awayMission->tug.missionScore += 2; } void Room::tug2UseKirkOnWires() { - if (_vm->_awayMission.disableWalking || _vm->_awayMission.tug.field35 != 0) + if (_awayMission->disableWalking || _awayMission->tug.field35 != 0) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 0xc9, 0xa0, 5); } @@ -238,17 +238,17 @@ void Room::tug2KirkReachedWires() { showText(TX_SPEAKER_KIRK, TX_TUG2_003); showText(TX_SPEAKER_SPOCK, TX_TUG2_023); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 0x66, 0xb8, 0); - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; tug2UseSpockOnWires(); } void Room::tug2UseSpockOnWires() { - if (_vm->_awayMission.disableWalking || _vm->_awayMission.tug.field35 != 0) + if (_awayMission->disableWalking || _awayMission->tug.field35 != 0) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0xc9, 0xa0, 9); } @@ -256,25 +256,25 @@ void Room::tug2SpockReachedWires() { loadActorAnim2(OBJECT_SPOCK, "suseme", -1, -1, 0); playVoc("WIRESNIP"); showText(TX_SPEAKER_SPOCK, TX_TUG2_024); - _vm->_awayMission.tug.field35 = 4; + _awayMission->tug.field35 = 4; - if (_vm->_awayMission.tug.spockExaminedTransporter) + if (_awayMission->tug.spockExaminedTransporter) showText(TX_SPEAKER_SPOCK, TX_TUG2_008); - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0x56, 0xa9, 11); } void Room::tug2SpockReturnedToPosition() { - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore += 2; + _awayMission->disableInput = false; + _awayMission->tug.missionScore += 2; } void Room::tug2GetWires() { - if (_vm->_awayMission.disableWalking) + if (_awayMission->disableWalking) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 0xc9, 0xa0, 28); } @@ -283,33 +283,33 @@ void Room::tug2KirkReachedWiresToGet() { } void Room::tug2KirkGotWires() { - if (_vm->_awayMission.tug.field35 == 0) { + if (_awayMission->tug.field35 == 0) { playMidiMusicTracks(2, -1); loadActorAnim2(OBJECT_BRIG, "zap", 0, 0, 1); playVoc("NM8EXPLO"); loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0); playSoundEffectIndex(SND_PHASSHOT); playSoundEffectIndex(SND_BLANK_16); - _vm->_awayMission.tug.field35 = 6; + _awayMission->tug.field35 = 6; loadActorStandAnim(OBJECT_WIRE); giveItem(OBJECT_IWIRING); - _vm->_awayMission.tug.gotWires = true; - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore += 3; + _awayMission->tug.gotWires = true; + _awayMission->disableInput = false; + _awayMission->tug.missionScore += 3; } else { loadActorStandAnim(OBJECT_WIRE); giveItem(OBJECT_IWIRING); - _vm->_awayMission.tug.gotWires = true; - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.missionScore += 3; + _awayMission->tug.gotWires = true; + _awayMission->disableInput = false; + _awayMission->tug.missionScore += 3; } } void Room::tug2UseKirkOnButton() { - if (_vm->_awayMission.disableWalking) + if (_awayMission->disableWalking) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 0xc9, 0xa0, 14); } @@ -319,10 +319,10 @@ void Room::tug2KirkReachedButton() { } void Room::tug2UseSpockOnButton() { - if (_vm->_awayMission.disableWalking) + if (_awayMission->disableWalking) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_SPOCK] = DIR_E; walkCrewman(OBJECT_SPOCK, 0xc9, 0xa0, 16); } @@ -332,10 +332,10 @@ void Room::tug2SpockReachedButton() { } void Room::tug2UseMccoyOnButton() { - if (_vm->_awayMission.disableWalking) + if (_awayMission->disableWalking) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_E; walkCrewman(OBJECT_MCCOY, 0xc9, 0xa0, 18); } @@ -345,10 +345,10 @@ void Room::tug2MccoyReachedButton() { } void Room::tug2UseRedshirtOnButton() { - if (_vm->_awayMission.disableWalking) + if (_awayMission->disableWalking) return; - _vm->_awayMission.disableInput = true; - _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; + _awayMission->disableInput = true; + _awayMission->crewDirectionsAfterWalk[OBJECT_REDSHIRT] = DIR_E; walkCrewman(OBJECT_REDSHIRT, 0xc9, 0xa0, 20); } @@ -358,18 +358,18 @@ void Room::tug2RedshirtReachedButton() { } void Room::tug2TurnedOffForceField() { - _vm->_awayMission.disableInput = false; - if (_vm->_awayMission.tug.field35 == 0) { + _awayMission->disableInput = false; + if (_awayMission->tug.field35 == 0) { playMidiMusicTracks(2, -1); loadActorAnim2(OBJECT_BRIG, "zap", 0, 0, 1); playVoc("NM8EXPLO"); loadActorAnim2(OBJECT_BOMB, "t2bbo", -3, 1, 0); // FIXME: doesn't play "PHASSHOT" sound effect like when kirk removes wires? - _vm->_awayMission.tug.field35 = 6; - } else if (_vm->_awayMission.tug.field35 == 4 && !_vm->_awayMission.tug.brigForceFieldDown) { - _vm->_awayMission.tug.brigForceFieldDown = true; + _awayMission->tug.field35 = 6; + } else if (_awayMission->tug.field35 == 4 && !_awayMission->tug.brigForceFieldDown) { + _awayMission->tug.brigForceFieldDown = true; loadActorAnim2(OBJECT_BRIG, "fld10", 0, 0, 2); - _vm->_awayMission.tug.missionScore += 6; + _awayMission->tug.missionScore += 6; playVoc("EFX15"); } } @@ -384,13 +384,13 @@ void Room::tug2PrisonersReleased() { showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_029); showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_030); showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_028); - _vm->_awayMission.tug.savedPrisoners = true; + _awayMission->tug.savedPrisoners = true; } void Room::tug2UsePhaserOnBrig() { - if (_vm->_awayMission.tug.field35 == 0) + if (_awayMission->tug.field35 == 0) showText(TX_SPEAKER_SPOCK, TX_TUG2_006); - else if (_vm->_awayMission.tug.brigForceFieldDown) { + else if (_awayMission->tug.brigForceFieldDown) { // BUGFIX: this function had two implementations; one for firing on the brig, and // one for firing on the masada crewman (who replaces the brig object). The first // took priority, meaning the latter code never ran. That's fixed here. @@ -399,128 +399,128 @@ void Room::tug2UsePhaserOnBrig() { } void Room::tug2ElasiReadyPhaser() { - if (_vm->_awayMission.tug.guard1Status == 0 && _vm->_awayMission.tug.field59 == 0) { + if (_awayMission->tug.guard1Status == 0 && _awayMission->tug.field59 == 0) { loadActorAnim2(OBJECT_GUARD_1, "p5draw", -1, -1, 0); - _vm->_awayMission.tug.field59++; + _awayMission->tug.field59++; } } void Room::tug2CheckEndFirefight() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_UP || _vm->_awayMission.tug.guard2Status == GUARDSTAT_UP) + if (_awayMission->tug.guard1Status == GUARDSTAT_UP || _awayMission->tug.guard2Status == GUARDSTAT_UP) return; - _vm->_awayMission.disableWalking = false; - if (_vm->_awayMission.tug.kirkPhaserDrawn) + _awayMission->disableWalking = false; + if (_awayMission->tug.kirkPhaserDrawn) loadActorStandAnim(OBJECT_KIRK); } void Room::tug2UseStunPhaserOnGuard1() { - if (_vm->_awayMission.tug.guard1Status != GUARDSTAT_UP) + if (_awayMission->tug.guard1Status != GUARDSTAT_UP) tug2KirkShootGuard1(); else { tug2ElasiReadyPhaser(); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.kirkPhaserDrawn) + _awayMission->disableInput = true; + if (_awayMission->tug.kirkPhaserDrawn) tug2KirkShootGuard1(); else { loadActorAnim2(OBJECT_KIRK, "kdrawe", -1, -1, 22); - _vm->_awayMission.tug.kirkPhaserDrawn = true; + _awayMission->tug.kirkPhaserDrawn = true; } } } void Room::tug2KirkShootGuard1() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_UP) { + if (_awayMission->tug.guard1Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_GUARD_1, "p5stun", -1, -1, 0); - _vm->_awayMission.tug.guard1Status = GUARDSTAT_STUNNED; + _awayMission->tug.guard1Status = GUARDSTAT_STUNNED; playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t2beem03", 5); tug2CheckEndFirefight(); } - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug2UseStunPhaserOnGuard2() { - if (_vm->_awayMission.tug.guard2Status != GUARDSTAT_UP) + if (_awayMission->tug.guard2Status != GUARDSTAT_UP) tug2KirkShootGuard2(); else { tug2ElasiReadyPhaser(); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.kirkPhaserDrawn) + _awayMission->disableInput = true; + if (_awayMission->tug.kirkPhaserDrawn) tug2KirkShootGuard2(); else { loadActorAnim2(OBJECT_KIRK, "kdrawe", -1, -1, 23); - _vm->_awayMission.tug.kirkPhaserDrawn = true; + _awayMission->tug.kirkPhaserDrawn = true; } } } void Room::tug2KirkShootGuard2() { - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_UP) { + if (_awayMission->tug.guard2Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_GUARD_2, "p6stun", -1, -1, 0); - _vm->_awayMission.tug.guard2Status = GUARDSTAT_STUNNED; + _awayMission->tug.guard2Status = GUARDSTAT_STUNNED; playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t2beem02", 5); tug2CheckEndFirefight(); } - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug2UseKillPhaserOnGuard1() { - if (_vm->_awayMission.tug.guard1Status != GUARDSTAT_UP) + if (_awayMission->tug.guard1Status != GUARDSTAT_UP) tug2KirkKillGuard1(); else { tug2ElasiReadyPhaser(); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.kirkPhaserDrawn) + _awayMission->disableInput = true; + if (_awayMission->tug.kirkPhaserDrawn) tug2KirkKillGuard1(); else { loadActorAnim2(OBJECT_KIRK, "kdrawe", -1, -1, 24); - _vm->_awayMission.tug.kirkPhaserDrawn = true; - _vm->_awayMission.tug.brigElasiPhasersOnKill = true; + _awayMission->tug.kirkPhaserDrawn = true; + _awayMission->tug.brigElasiPhasersOnKill = true; } } } void Room::tug2KirkKillGuard1() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_UP) { + if (_awayMission->tug.guard1Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_GUARD_1, "p5kill", -1, -1, 0); - _vm->_awayMission.tug.guard1Status = GUARDSTAT_DEAD; + _awayMission->tug.guard1Status = GUARDSTAT_DEAD; playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t2beem05", 5); tug2CheckEndFirefight(); } - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug2UseKillPhaserOnGuard2() { - if (_vm->_awayMission.tug.guard2Status != GUARDSTAT_UP) + if (_awayMission->tug.guard2Status != GUARDSTAT_UP) tug2KirkKillGuard2(); else { tug2ElasiReadyPhaser(); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.kirkPhaserDrawn) + _awayMission->disableInput = true; + if (_awayMission->tug.kirkPhaserDrawn) tug2KirkKillGuard2(); else { loadActorAnim2(OBJECT_KIRK, "kdrawe", -1, -1, 25); - _vm->_awayMission.tug.kirkPhaserDrawn = true; - _vm->_awayMission.tug.brigElasiPhasersOnKill = true; + _awayMission->tug.kirkPhaserDrawn = true; + _awayMission->tug.brigElasiPhasersOnKill = true; } } } void Room::tug2KirkKillGuard2() { - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_UP) { + if (_awayMission->tug.guard2Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_GUARD_2, "p6kill", -1, -1, 0); - _vm->_awayMission.tug.guard2Status = GUARDSTAT_DEAD; + _awayMission->tug.guard2Status = GUARDSTAT_DEAD; playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t2beem04", 5); tug2CheckEndFirefight(); } - _vm->_awayMission.disableInput = false; + _awayMission->disableInput = false; } void Room::tug2UsePhaserOnWelder() { @@ -530,7 +530,7 @@ void Room::tug2UsePhaserOnWelder() { // BUGFIX: this following line didn't exist, despite it existing in TUG1; meaning this // was supposed to give points, but it only did in a specific room. - _vm->_awayMission.tug.missionScore += 3; + _awayMission->tug.missionScore += 3; } void Room::tug2UseWelderOnWireScraps() { @@ -571,14 +571,14 @@ void Room::tug2LookAtKirk() { } void Room::tug2TalkToKirk() { - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) showText(TX_SPEAKER_KIRK, TX_TUG2_001); else showText(TX_SPEAKER_KIRK, TX_TUG2_002); } void Room::tug2TalkToMccoy() { - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) showText(TX_SPEAKER_MCCOY, TX_TUG2_018); else showText(TX_SPEAKER_MCCOY, TX_TUG2_010); @@ -588,7 +588,7 @@ void Room::tug2TalkToRedshirt() { // BUGFIX: the original game has two implementations of this function; the first takes // precedence, however, it's just generic, unhelpful text. The second implementation // is more interesting, so that one is used instead. - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) showText(TX_SPEAKER_CHRISTENSEN, TX_TUG2L004); else showText(TX_SPEAKER_CHRISTENSEN, TX_TUG2J003); @@ -598,7 +598,7 @@ void Room::tug2TalkToRedshirt() { } void Room::tug2TalkToSpock() { - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) showText(TX_SPEAKER_SPOCK, TX_TUG2_005); else showText(TX_SPEAKER_SPOCK, TX_TUG2_020); @@ -609,27 +609,27 @@ void Room::tug2UseCommunicator() { } void Room::tug2DetermineElasiShooter() { - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_UP) + if (_awayMission->tug.guard2Status == GUARDSTAT_UP) _roomVar.tug.shootingObject = OBJECT_GUARD_2; - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_UP) + if (_awayMission->tug.guard1Status == GUARDSTAT_UP) _roomVar.tug.shootingObject = OBJECT_GUARD_1; } // Elasi shoots someone void Room::tug2Timer0Expired() { - if (_vm->_awayMission.tug.guard1Status != GUARDSTAT_UP && _vm->_awayMission.tug.guard2Status != GUARDSTAT_UP) + if (_awayMission->tug.guard1Status != GUARDSTAT_UP && _awayMission->tug.guard2Status != GUARDSTAT_UP) return; _roomVar.tug.elasiPhaserOnKill = 0; - if (_vm->_awayMission.tug.brigElasiPhasersOnKill) + if (_awayMission->tug.brigElasiPhasersOnKill) _roomVar.tug.elasiPhaserOnKill = 1; - switch (_vm->_awayMission.tug.elasiTargetIndex) { + switch (_awayMission->tug.elasiTargetIndex) { case 0: - _vm->_awayMission.tug.elasiTargetIndex++; - if (_vm->_awayMission.tug.guard2Status != GUARDSTAT_UP) { + _awayMission->tug.elasiTargetIndex++; + if (_awayMission->tug.guard2Status != GUARDSTAT_UP) { // BUGFIX: reset the timer to allow guard 1 to continue if guard 2 is down - _vm->_awayMission.timers[0] = 60; + _awayMission->timers[0] = 60; return; } @@ -638,59 +638,59 @@ void Room::tug2Timer0Expired() { showBitmapFor5Ticks("t2beem00", 5); playSoundEffectIndex(SND_PHASSHOT); loadActorAnim2(OBJECT_GUARD_2, "p6fire", -1, -1, 0); - _vm->_awayMission.tug.field4e = _roomVar.tug.elasiPhaserOnKill; - _vm->_awayMission.timers[0] = 60; + _awayMission->tug.field4e = _roomVar.tug.elasiPhaserOnKill; + _awayMission->timers[0] = 60; break; case 1: // Guard shoots redshirt - _vm->_awayMission.tug.elasiTargetIndex++; - if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_REDSHIRT]) { + _awayMission->tug.elasiTargetIndex++; + if (!_awayMission->tug.crewmanKilled[OBJECT_REDSHIRT]) { tug2DetermineElasiShooter(); _roomVar.tug.shootingTarget = OBJECT_REDSHIRT; - _vm->_awayMission.timers[0] = 60; + _awayMission->timers[0] = 60; tug2GuardShootsCrewman(); } break; case 2: // Guard shoots spock (or kirk) - _vm->_awayMission.tug.elasiTargetIndex++; + _awayMission->tug.elasiTargetIndex++; _roomVar.tug.shootKirkOverride = false; - if (_vm->_awayMission.tug.brigElasiPhasersOnKill) + if (_awayMission->tug.brigElasiPhasersOnKill) _roomVar.tug.shootKirkOverride = true; tug2DetermineElasiShooter(); if (_roomVar.tug.shootKirkOverride) _roomVar.tug.shootingTarget = OBJECT_KIRK; else _roomVar.tug.shootingTarget = OBJECT_SPOCK; - _vm->_awayMission.timers[0] = 60; + _awayMission->timers[0] = 60; tug2GuardShootsCrewman(); break; case 3: // Guard shoots Mccoy - _vm->_awayMission.tug.elasiTargetIndex++; - if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_MCCOY]) { + _awayMission->tug.elasiTargetIndex++; + if (!_awayMission->tug.crewmanKilled[OBJECT_MCCOY]) { tug2DetermineElasiShooter(); _roomVar.tug.shootingTarget = OBJECT_MCCOY; - _vm->_awayMission.timers[0] = 80; + _awayMission->timers[0] = 80; tug2GuardShootsCrewman(); } break; case 4: // Guard shoots kirk (or Spock) - _vm->_awayMission.tug.elasiTargetIndex++; + _awayMission->tug.elasiTargetIndex++; if (_roomVar.tug.shootKirkOverride) { tug2DetermineElasiShooter(); _roomVar.tug.shootingTarget = OBJECT_SPOCK; - _vm->_awayMission.timers[2] = 40; + _awayMission->timers[2] = 40; tug2GuardShootsCrewman(); } else { tug2DetermineElasiShooter(); _roomVar.tug.shootingTarget = OBJECT_KIRK; - _vm->_awayMission.timers[2] = 40; + _awayMission->timers[2] = 40; tug2GuardShootsCrewman(); } break; @@ -726,7 +726,7 @@ void Room::tug2GuardShootsCrewman() { const char *crewPrefixes = "ksmr"; if (!_roomVar.tug.elasiPhaserOnKill) - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.tug.shootingTarget] = DIR_W; + _awayMission->crewDirectionsAfterWalk[_roomVar.tug.shootingTarget] = DIR_W; Common::String anim; const char **bitmapArray; @@ -760,17 +760,17 @@ void Room::tug2GuardShootsCrewman() { else loadActorAnim2(OBJECT_GUARD_2, "p6fire", -1, -1, 0); - _vm->_awayMission.tug.crewmanKilled[_roomVar.tug.shootingTarget] = _roomVar.tug.elasiPhaserOnKill; + _awayMission->tug.crewmanKilled[_roomVar.tug.shootingTarget] = _roomVar.tug.elasiPhaserOnKill; if (!_roomVar.tug.elasiPhaserOnKill) { // BUG: crew goes down for 120 frames, but they start to get up before the fight // is over. Perhaps this number should be increased. - _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.tug.shootingTarget] = DIR_W; - _vm->_awayMission.crewGetupTimers[_roomVar.tug.shootingTarget] = 120; - _vm->_awayMission.crewDownBitset |= (1 << _roomVar.tug.shootingTarget); + _awayMission->crewDirectionsAfterWalk[_roomVar.tug.shootingTarget] = DIR_W; + _awayMission->crewGetupTimers[_roomVar.tug.shootingTarget] = 120; + _awayMission->crewDownBitset |= (1 << _roomVar.tug.shootingTarget); } if (_roomVar.tug.elasiPhaserOnKill && _roomVar.tug.shootingTarget == OBJECT_REDSHIRT) - _vm->_awayMission.redshirtDead = true; + _awayMission->redshirtDead = true; } void Room::tug2Timer2Expired() { @@ -784,27 +784,27 @@ void Room::tug2UseSTricorderOnBomb() { } void Room::tug2UseMTricorderOnGuard1() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED) mccoyScan(DIR_E, TX_TUG2_016, true); } void Room::tug2UseMTricorderOnGuard2() { // BUGFIX: original didn't play audio for this (despite being the same as above). - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.guard2Status == GUARDSTAT_STUNNED) mccoyScan(DIR_E, TX_TUG2_016, true); } void Room::tug2TalkToGuard1() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_TIED) + if (_awayMission->tug.guard1Status == GUARDSTAT_TIED) showText(TX_SPEAKER_ELASI_GUARD, TX_TUG2L086); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED) + else if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED) showText(TX_SPEAKER_MCCOY, TX_TUG2_012); } void Room::tug2TalkToGuard2() { - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_TIED) + if (_awayMission->tug.guard2Status == GUARDSTAT_TIED) showText(TX_SPEAKER_ELASI_GUARD, TX_TUG2L086); - else if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED) + else if (_awayMission->tug.guard2Status == GUARDSTAT_STUNNED) showText(TX_SPEAKER_MCCOY, TX_TUG2_013); } @@ -813,27 +813,27 @@ void Room::tug2UseMedkitOnBomb() { } void Room::tug2UseMedkitOnGuard1() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED) showText(TX_SPEAKER_MCCOY, TX_TUG2_014); } void Room::tug2UseMedkitOnGuard2() { - if (_vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.guard2Status == GUARDSTAT_STUNNED) showText(TX_SPEAKER_MCCOY, TX_TUG2_014); } void Room::tug2LookAnywhere() { - if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_DEAD && _vm->_awayMission.tug.guard2Status == GUARDSTAT_DEAD && _vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.guard1Status == GUARDSTAT_DEAD && _awayMission->tug.guard2Status == GUARDSTAT_DEAD && _awayMission->tug.field35 == 6) showText(TX_TUG2N019); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_DEAD && _vm->_awayMission.tug.guard2Status == GUARDSTAT_DEAD && !_vm->_awayMission.tug.brigForceFieldDown) + else if (_awayMission->tug.guard1Status == GUARDSTAT_DEAD && _awayMission->tug.guard2Status == GUARDSTAT_DEAD && !_awayMission->tug.brigForceFieldDown) showText(TX_TUG2N017); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED && _vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED && _vm->_awayMission.tug.field35 == 6) + else if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED && _awayMission->tug.guard2Status == GUARDSTAT_STUNNED && _awayMission->tug.field35 == 6) showText(TX_TUG2N020); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED && _vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED && !_vm->_awayMission.tug.brigForceFieldDown) + else if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED && _awayMission->tug.guard2Status == GUARDSTAT_STUNNED && !_awayMission->tug.brigForceFieldDown) showText(TX_TUG2N018); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED && _vm->_awayMission.tug.guard2Status == GUARDSTAT_STUNNED && _vm->_awayMission.tug.brigForceFieldDown) + else if (_awayMission->tug.guard1Status == GUARDSTAT_STUNNED && _awayMission->tug.guard2Status == GUARDSTAT_STUNNED && _awayMission->tug.brigForceFieldDown) showText(TX_TUG2N021); - else if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_DEAD && _vm->_awayMission.tug.guard2Status == GUARDSTAT_DEAD && _vm->_awayMission.tug.brigForceFieldDown) + else if (_awayMission->tug.guard1Status == GUARDSTAT_DEAD && _awayMission->tug.guard2Status == GUARDSTAT_DEAD && _awayMission->tug.brigForceFieldDown) showText(TX_TUG2N022); else showText(TX_TUG2N023); @@ -843,27 +843,27 @@ void Room::tug2TalkToBrig() { // The "brig" can also be a masada crewman, when the force field is down, so there are // at least two cases here. - if (_vm->_awayMission.tug.brigForceFieldDown && !_vm->_awayMission.tug.talkedToBrigCrewman) { + if (_awayMission->tug.brigForceFieldDown && !_awayMission->tug.talkedToBrigCrewman) { loadActorAnim2(OBJECT_BRIG, "fld10d", 0, 0, 0); showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_026); - _vm->_awayMission.tug.talkedToBrigCrewman = true; + _awayMission->tug.talkedToBrigCrewman = true; } - if (_vm->_awayMission.tug.brigForceFieldDown && _vm->_awayMission.tug.talkedToBrigCrewman) + if (_awayMission->tug.brigForceFieldDown && _awayMission->tug.talkedToBrigCrewman) showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_027); - else if (!_vm->_awayMission.tug.brigForceFieldDown) + else if (!_awayMission->tug.brigForceFieldDown) mccoyScan(DIR_E, TX_TUG2_015, true); } void Room::tug2UseMTricorderOnBrig() { - if (_vm->_awayMission.tug.field35 == 6) + if (_awayMission->tug.field35 == 6) mccoyScan(DIR_E, TX_TUG2_019, true); - else if (!_vm->_awayMission.tug.brigForceFieldDown) + else if (!_awayMission->tug.brigForceFieldDown) mccoyScan(DIR_E, TX_TUG2_015, true); } void Room::tug2UseMTricorderOnOpenBrig() { - if (_vm->_awayMission.tug.brigForceFieldDown) + if (_awayMission->tug.brigForceFieldDown) mccoyScan(DIR_E, TX_TUG2_015, true); } diff --git a/engines/startrek/rooms/tug3.cpp b/engines/startrek/rooms/tug3.cpp index c0a0b97263..0d7537cea9 100644 --- a/engines/startrek/rooms/tug3.cpp +++ b/engines/startrek/rooms/tug3.cpp @@ -42,7 +42,7 @@ namespace StarTrek { void Room::tug3Tick1() { playVoc("TUG3LOOP"); - _vm->_awayMission.disableWalking = true; + _awayMission->disableWalking = true; loadActorAnim2(OBJECT_ELASI_1, "p1turn", 0xa4, 0x98, 0); loadActorAnim2(OBJECT_ELASI_2, "p2turn", 0xd1, 0x88, 0); loadActorAnim2(OBJECT_ELASI_3, "p3turn", 0xfb, 0xc4, 0); @@ -63,31 +63,31 @@ void Room::tug3ElasiSurrendered() { // they could shoot Kirk as he's beaming out and the mission is "successful". To // prevent that, the below condition is removed in ScummVM. /* - if (_vm->_awayMission.tug.bridgeElasiDrewPhasers) + if (_awayMission->tug.bridgeElasiDrewPhasers) return; */ // Also part of the bugfix (stop shooting) - _vm->_awayMission.timers[0] = 0; + _awayMission->timers[0] = 0; - _vm->_awayMission.tug.elasiSurrendered = true; + _awayMission->tug.elasiSurrendered = true; loadActorAnim2(OBJECT_ELASI_1, "p1surr", -1, -1, 0); - _vm->_awayMission.tug.bridgeElasi1Status = GUARDSTAT_SURRENDERED; + _awayMission->tug.bridgeElasi1Status = GUARDSTAT_SURRENDERED; - if (_vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_UP) { + if (_awayMission->tug.bridgeElasi2Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_ELASI_2, "p2surr", -1, -1, 0); - _vm->_awayMission.tug.bridgeElasi2Status = GUARDSTAT_SURRENDERED; + _awayMission->tug.bridgeElasi2Status = GUARDSTAT_SURRENDERED; } - if (_vm->_awayMission.tug.bridgeElasi3Status == GUARDSTAT_UP) { + if (_awayMission->tug.bridgeElasi3Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_ELASI_3, "p3surr", -1, -1, 0); - _vm->_awayMission.tug.bridgeElasi3Status = GUARDSTAT_SURRENDERED; + _awayMission->tug.bridgeElasi3Status = GUARDSTAT_SURRENDERED; } - if (_vm->_awayMission.tug.bridgeElasi4Status == GUARDSTAT_UP) { + if (_awayMission->tug.bridgeElasi4Status == GUARDSTAT_UP) { loadActorAnim2(OBJECT_ELASI_4, "p4surr", -1, -1, 0); - _vm->_awayMission.tug.bridgeElasi4Status = GUARDSTAT_SURRENDERED; + _awayMission->tug.bridgeElasi4Status = GUARDSTAT_SURRENDERED; } - _vm->_awayMission.tug.missionScore += 4; + _awayMission->tug.missionScore += 4; } void Room::tug3UsePhaserAnywhere() { @@ -95,134 +95,134 @@ void Room::tug3UsePhaserAnywhere() { } void Room::tug3ElasiDrawPhasers() { - if (_vm->_awayMission.tug.bridgeElasiDrewPhasers) + if (_awayMission->tug.bridgeElasiDrewPhasers) return; - _vm->_awayMission.tug.bridgeElasiDrewPhasers = true; + _awayMission->tug.bridgeElasiDrewPhasers = true; // If brig guards are alive & untied, kill the hostages - if (_vm->_awayMission.tug.guard1Status == 0 || _vm->_awayMission.tug.guard2Status == 0) { + if (_awayMission->tug.guard1Status == 0 || _awayMission->tug.guard2Status == 0) { showText(TX_SPEAKER_ELASI_CLANSMAN, TX_TUG3L081); - _vm->_awayMission.tug.missionScore = 0; + _awayMission->tug.missionScore = 0; } - if (_vm->_awayMission.timers[0] == 0) - _vm->_awayMission.timers[0] = 10; + if (_awayMission->timers[0] == 0) + _awayMission->timers[0] = 10; // Make all elasi draw their phasers - if (_vm->_awayMission.tug.bridgeElasi1Status == 0) + if (_awayMission->tug.bridgeElasi1Status == 0) loadActorAnim2(OBJECT_ELASI_1, "p1draw", -1, -1, 0); - if (_vm->_awayMission.tug.bridgeElasi2Status == 0) + if (_awayMission->tug.bridgeElasi2Status == 0) loadActorAnim2(OBJECT_ELASI_2, "p2draw", -1, -1, 0); - if (_vm->_awayMission.tug.bridgeElasi3Status == 0) + if (_awayMission->tug.bridgeElasi3Status == 0) loadActorAnim2(OBJECT_ELASI_3, "p3draw", -1, -1, 0); - if (_vm->_awayMission.tug.bridgeElasi4Status == 0) + if (_awayMission->tug.bridgeElasi4Status == 0) loadActorAnim2(OBJECT_ELASI_4, "p4draw", -1, -1, 0); } void Room::tug3UseStunPhaserOnElasi1() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi1Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_1, "p1stun", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem05", 5); - _vm->_awayMission.tug.bridgeElasi1Status = GUARDSTAT_STUNNED; + _awayMission->tug.bridgeElasi1Status = GUARDSTAT_STUNNED; tug3ElasiDrawPhasers(); } void Room::tug3UseStunPhaserOnElasi2() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi2Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi2Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_2, "p2stun", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem06", 5); - _vm->_awayMission.tug.bridgeElasi2Status = GUARDSTAT_STUNNED; + _awayMission->tug.bridgeElasi2Status = GUARDSTAT_STUNNED; tug3ElasiDrawPhasers(); } void Room::tug3UseStunPhaserOnElasi3() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi3Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi3Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_3, "p3stun", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem07", 5); - _vm->_awayMission.tug.bridgeElasi3Status = GUARDSTAT_STUNNED; + _awayMission->tug.bridgeElasi3Status = GUARDSTAT_STUNNED; tug3ElasiDrawPhasers(); } void Room::tug3UseStunPhaserOnElasi4() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi4Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi4Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_4, "p4stun", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem04", 5); - _vm->_awayMission.tug.bridgeElasi4Status = GUARDSTAT_STUNNED; + _awayMission->tug.bridgeElasi4Status = GUARDSTAT_STUNNED; tug3ElasiDrawPhasers(); } void Room::tug3UseKillPhaserOnElasi1() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi1Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_1, "p1Kill", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem25", 5); - _vm->_awayMission.tug.bridgeElasi1Status = GUARDSTAT_DEAD; - _vm->_awayMission.tug.missionScore -= 2; + _awayMission->tug.bridgeElasi1Status = GUARDSTAT_DEAD; + _awayMission->tug.missionScore -= 2; tug3ElasiDrawPhasers(); } void Room::tug3UseKillPhaserOnElasi2() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi2Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi2Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_2, "p2Kill", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem27", 5); - _vm->_awayMission.tug.bridgeElasi2Status = GUARDSTAT_DEAD; - _vm->_awayMission.tug.missionScore -= 2; + _awayMission->tug.bridgeElasi2Status = GUARDSTAT_DEAD; + _awayMission->tug.missionScore -= 2; tug3ElasiDrawPhasers(); } void Room::tug3UseKillPhaserOnElasi3() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi3Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi3Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_3, "p3Kill", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem26", 5); - _vm->_awayMission.tug.bridgeElasi3Status = GUARDSTAT_DEAD; - _vm->_awayMission.tug.missionScore -= 2; + _awayMission->tug.bridgeElasi3Status = GUARDSTAT_DEAD; + _awayMission->tug.missionScore -= 2; tug3ElasiDrawPhasers(); } void Room::tug3UseKillPhaserOnElasi4() { - if (_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] || _vm->_awayMission.tug.bridgeElasi4Status != GUARDSTAT_UP) + if (_awayMission->tug.crewmanKilled[OBJECT_KIRK] || _awayMission->tug.bridgeElasi4Status != GUARDSTAT_UP) return; loadActorAnim2(OBJECT_ELASI_4, "p4Kill", -1, -1, 12); playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks("t3beem24", 5); - _vm->_awayMission.tug.bridgeElasi4Status = GUARDSTAT_DEAD; - _vm->_awayMission.tug.missionScore -= 2; + _awayMission->tug.bridgeElasi4Status = GUARDSTAT_DEAD; + _awayMission->tug.missionScore -= 2; tug3ElasiDrawPhasers(); } void Room::tug3ElasiStunnedOrKilled() { - if (_vm->_awayMission.tug.bridgeWinMethod == 1) + if (_awayMission->tug.bridgeWinMethod == 1) return; - if (_vm->_awayMission.tug.bridgeElasi1Status == GUARDSTAT_UP || _vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_UP - || _vm->_awayMission.tug.bridgeElasi3Status == GUARDSTAT_UP || _vm->_awayMission.tug.bridgeElasi4Status == GUARDSTAT_UP) + if (_awayMission->tug.bridgeElasi1Status == GUARDSTAT_UP || _awayMission->tug.bridgeElasi2Status == GUARDSTAT_UP + || _awayMission->tug.bridgeElasi3Status == GUARDSTAT_UP || _awayMission->tug.bridgeElasi4Status == GUARDSTAT_UP) return; // BUGFIX: if the ship is deorbiting, the mission isn't won yet. - if (_vm->_awayMission.tug.orbitalDecayCounter != 0) + if (_awayMission->tug.orbitalDecayCounter != 0) return; - _vm->_awayMission.tug.bridgeWinMethod = 1; + _awayMission->tug.bridgeWinMethod = 1; tug3EndMission(); } void Room::tug3TalkToElasi1() { - if (_vm->_awayMission.tug.bridgeElasi1Status != GUARDSTAT_UP || _vm->_awayMission.tug.talkedToCereth) + if (_awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP || _awayMission->tug.talkedToCereth) return; - _vm->_awayMission.tug.talkedToCereth = true; + _awayMission->tug.talkedToCereth = true; const int choices[] = { TX_SPEAKER_KIRK, @@ -236,27 +236,27 @@ void Room::tug3TalkToElasi1() { switch (choice) { case 0: // They surrender showText(TX_SPEAKER_ELASI_CERETH, TX_TUG3L084); - _vm->_awayMission.tug.bridgeElasi1Status = GUARDSTAT_SURRENDERED; + _awayMission->tug.bridgeElasi1Status = GUARDSTAT_SURRENDERED; loadActorAnim2(OBJECT_ELASI_1, "p1surr", -1, -1, 0); tug3ElasiSurrendered(); - _vm->_awayMission.tug.bridgeWinMethod = 2; - _vm->_awayMission.tug.missionScore += 8; + _awayMission->tug.bridgeWinMethod = 2; + _awayMission->tug.missionScore += 8; tug3EndMission(); break; case 1: // Cereth shoots console, doesn't surrender - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; showText(TX_SPEAKER_ELASI_CERETH, TX_TUG3_F27); loadActorAnim2(OBJECT_ELASI_1, "p1draw", -1, -1, 3); break; case 2: // Cereth shoots console and surrenders - _vm->_awayMission.disableInput = true; + _awayMission->disableInput = true; showText(TX_SPEAKER_ELASI_CERETH, TX_TUG3L083); loadActorAnim2(OBJECT_ELASI_1, "p1draw", -1, -1, 5); // BUGFIX: they're going to surrender, so stop the firefight. - _vm->_awayMission.timers[0] = 0; + _awayMission->timers[0] = 0; break; } } @@ -270,9 +270,9 @@ void Room::tug3Elasi1DrewPhaser() { void Room::tug3Elasi1ShotConsole() { tug3ElasiDrawPhasers(); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.bridgeWinMethod = 3; - _vm->_awayMission.timers[1] = 10; + _awayMission->disableInput = false; + _awayMission->tug.bridgeWinMethod = 3; + _awayMission->timers[1] = 10; } void Room::tug3Elasi1DrewPhaser2() { @@ -284,9 +284,9 @@ void Room::tug3Elasi1DrewPhaser2() { void Room::tug3Elasi1ShotConsoleAndSurrenders() { showText(TX_SPEAKER_ELASI_CERETH, TX_TUG3L080); tug3ElasiSurrendered(); - _vm->_awayMission.disableInput = false; - _vm->_awayMission.tug.bridgeWinMethod = 3; - _vm->_awayMission.timers[1] = 10; + _awayMission->disableInput = false; + _awayMission->tug.bridgeWinMethod = 3; + _awayMission->timers[1] = 10; } void Room::tug3LookAtMccoy() { @@ -308,7 +308,7 @@ void Room::tug3LookAtElasi1() { // The function itself is changed by checking both if he's stunned or if he's dead, // instead of just checking if he's stunned. - if (_vm->_awayMission.tug.bridgeElasi1Status == GUARDSTAT_STUNNED || _vm->_awayMission.tug.bridgeElasi1Status == GUARDSTAT_DEAD) + if (_awayMission->tug.bridgeElasi1Status == GUARDSTAT_STUNNED || _awayMission->tug.bridgeElasi1Status == GUARDSTAT_DEAD) showText(TX_TUG3N003); else showText(TX_TUG3N008); @@ -317,32 +317,32 @@ void Room::tug3LookAtElasi1() { void Room::tug3LookAtElasi2() { // BUGFIX: also check if stunned. They can't "glare at the crewmembers" if they're // unconscious. (applies to below functions too.) - if (_vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_DEAD || _vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.bridgeElasi2Status == GUARDSTAT_DEAD || _awayMission->tug.bridgeElasi2Status == GUARDSTAT_STUNNED) showText(TX_TUG3N004); else showText(TX_TUG3N005); } void Room::tug3LookAtElasi3() { - if (_vm->_awayMission.tug.bridgeElasi3Status == GUARDSTAT_DEAD || _vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.bridgeElasi3Status == GUARDSTAT_DEAD || _awayMission->tug.bridgeElasi2Status == GUARDSTAT_STUNNED) showText(TX_TUG3N004); else showText(TX_TUG3N005); } void Room::tug3LookAtElasi4() { - if (_vm->_awayMission.tug.bridgeElasi4Status == GUARDSTAT_DEAD || _vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_STUNNED) + if (_awayMission->tug.bridgeElasi4Status == GUARDSTAT_DEAD || _awayMission->tug.bridgeElasi2Status == GUARDSTAT_STUNNED) showText(TX_TUG3N004); else showText(TX_TUG3N005); } void Room::tug3TalkToMccoy() { - if (_vm->_awayMission.tug.orbitalDecayCounter != 0 || _vm->_awayMission.tug.bridgeElasi1Status != GUARDSTAT_UP) { - if (_vm->_awayMission.tug.orbitalDecayCounter >= 10) { - if (_vm->_awayMission.tug.orbitalDecayCounter < 16) + if (_awayMission->tug.orbitalDecayCounter != 0 || _awayMission->tug.bridgeElasi1Status != GUARDSTAT_UP) { + if (_awayMission->tug.orbitalDecayCounter >= 10) { + if (_awayMission->tug.orbitalDecayCounter < 16) showText(TX_SPEAKER_MCCOY, TX_TUG3_011); - } else if (_vm->_awayMission.tug.orbitalDecayCounter != 0) { + } else if (_awayMission->tug.orbitalDecayCounter != 0) { // BUGFIX: original game displays a blank textbox. An appropriate audio file // exists, but the corresponding text was written from scratch for ScummVM. // TODO: check if original floppy version has text for this. @@ -353,9 +353,9 @@ void Room::tug3TalkToMccoy() { } void Room::tug3TalkToSpock() { - if (_vm->_awayMission.tug.orbitalDecayCounter != 0) { - if (_vm->_awayMission.tug.orbitalDecayCounter >= 10) { - if (_vm->_awayMission.tug.orbitalDecayCounter < 16) + if (_awayMission->tug.orbitalDecayCounter != 0) { + if (_awayMission->tug.orbitalDecayCounter >= 10) { + if (_awayMission->tug.orbitalDecayCounter < 16) showText(TX_SPEAKER_SPOCK, TX_TUG3_008); } else showText(TX_SPEAKER_SPOCK, TX_TUG3_009); @@ -367,36 +367,36 @@ void Room::tug3TalkToRedshirt() { } void Room::tug3UseCommunicator() { - if (_vm->_awayMission.tug.orbitalDecayCounter == 0) + if (_awayMission->tug.orbitalDecayCounter == 0) return; - if (_vm->_awayMission.tug.orbitalDecayCounter < 10) { + if (_awayMission->tug.orbitalDecayCounter < 10) { showText(TX_SPEAKER_KIRK, TX_TUG3_007); showText(TX_SPEAKER_SULU, TX_TUG3_015); showText(TX_SPEAKER_SHIPS_COMPUTER, TX_COMPA180); - _vm->_awayMission.timers[1] = 0; + _awayMission->timers[1] = 0; // BUGFIX: if still fighting the elasi, the mission isn't done yet. - _vm->_awayMission.tug.orbitalDecayCounter = 0; - if (!_vm->_awayMission.tug.elasiSurrendered && - (_vm->_awayMission.tug.bridgeElasi1Status == GUARDSTAT_UP - || _vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_UP - || _vm->_awayMission.tug.bridgeElasi3Status == GUARDSTAT_UP - || _vm->_awayMission.tug.bridgeElasi4Status == GUARDSTAT_UP)) + _awayMission->tug.orbitalDecayCounter = 0; + if (!_awayMission->tug.elasiSurrendered && + (_awayMission->tug.bridgeElasi1Status == GUARDSTAT_UP + || _awayMission->tug.bridgeElasi2Status == GUARDSTAT_UP + || _awayMission->tug.bridgeElasi3Status == GUARDSTAT_UP + || _awayMission->tug.bridgeElasi4Status == GUARDSTAT_UP)) return; tug3EndMission(); } else { - if (_vm->_awayMission.tug.orbitalDecayCounter < 16) { + if (_awayMission->tug.orbitalDecayCounter < 16) { showText(TX_SPEAKER_KIRK, TX_TUG3_006); showText(TX_SPEAKER_SCOTT, TX_TUG3_S07); playMidiMusicTracks(-1, -1); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.missionScore < 0) - _vm->_awayMission.tug.missionScore = 0; - endMission(_vm->_awayMission.tug.missionScore, _vm->_awayMission.tug.field2b, _vm->_awayMission.tug.field2d); + _awayMission->disableInput = true; + if (_awayMission->tug.missionScore < 0) + _awayMission->tug.missionScore = 0; + endMission(_awayMission->tug.missionScore, _awayMission->tug.field2b, _awayMission->tug.field2d); } } } @@ -411,31 +411,31 @@ void Room::tug3Timer0Expired() { int elasiShooter, elasiTarget; - if (_vm->_awayMission.tug.bridgeElasi2Status == GUARDSTAT_UP) + if (_awayMission->tug.bridgeElasi2Status == GUARDSTAT_UP) elasiShooter = 0; - else if (_vm->_awayMission.tug.bridgeElasi3Status == GUARDSTAT_UP) + else if (_awayMission->tug.bridgeElasi3Status == GUARDSTAT_UP) elasiShooter = 1; - else if (_vm->_awayMission.tug.bridgeElasi4Status == GUARDSTAT_UP) + else if (_awayMission->tug.bridgeElasi4Status == GUARDSTAT_UP) elasiShooter = 2; else return; - if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_REDSHIRT]) { - _vm->_awayMission.tug.crewmanKilled[OBJECT_REDSHIRT] = 2; - _vm->_awayMission.redshirtDead = true; + if (!_awayMission->tug.crewmanKilled[OBJECT_REDSHIRT]) { + _awayMission->tug.crewmanKilled[OBJECT_REDSHIRT] = 2; + _awayMission->redshirtDead = true; loadActorAnim2(OBJECT_REDSHIRT, "rkills", -1, -1, 0); elasiTarget = OBJECT_REDSHIRT; - } else if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK]) { - _vm->_awayMission.tug.crewmanKilled[OBJECT_KIRK] = 2; - _vm->_awayMission.disableInput = true; + } else if (!_awayMission->tug.crewmanKilled[OBJECT_KIRK]) { + _awayMission->tug.crewmanKilled[OBJECT_KIRK] = 2; + _awayMission->disableInput = true; loadActorAnim2(OBJECT_KIRK, "kkills", -1, -1, 0); elasiTarget = OBJECT_KIRK; - } else if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_SPOCK]) { - _vm->_awayMission.tug.crewmanKilled[OBJECT_SPOCK] = 2; + } else if (!_awayMission->tug.crewmanKilled[OBJECT_SPOCK]) { + _awayMission->tug.crewmanKilled[OBJECT_SPOCK] = 2; loadActorAnim2(OBJECT_SPOCK, "skills", -1, -1, 0); elasiTarget = OBJECT_SPOCK; - } else if (!_vm->_awayMission.tug.crewmanKilled[OBJECT_MCCOY]) { - _vm->_awayMission.tug.crewmanKilled[OBJECT_MCCOY] = 2; + } else if (!_awayMission->tug.crewmanKilled[OBJECT_MCCOY]) { + _awayMission->tug.crewmanKilled[OBJECT_MCCOY] = 2; loadActorAnim2(OBJECT_MCCOY, "mkills", -1, -1, 13); elasiTarget = OBJECT_MCCOY; } else @@ -443,7 +443,7 @@ void Room::tug3Timer0Expired() { playSoundEffectIndex(SND_PHASSHOT); showBitmapFor5Ticks(beamAnims[elasiShooter][elasiTarget], 5); - _vm->_awayMission.timers[0] = 50; + _awayMission->timers[0] = 50; } void Room::tug3AllCrewmenDead() { @@ -453,14 +453,14 @@ void Room::tug3AllCrewmenDead() { // "Orbital decay" countdown timer void Room::tug3Timer1Expired() { - if (_vm->_awayMission.tug.orbitalDecayCounter < 10) { // Decay still preventable + if (_awayMission->tug.orbitalDecayCounter < 10) { // Decay still preventable showText(TX_SPEAKER_SHIPS_COMPUTER, TX_COMPU182); - _vm->_awayMission.timers[1] = 100; - _vm->_awayMission.tug.orbitalDecayCounter++; - } else if (_vm->_awayMission.tug.orbitalDecayCounter < 16) { // Decay now unavoidable + _awayMission->timers[1] = 100; + _awayMission->tug.orbitalDecayCounter++; + } else if (_awayMission->tug.orbitalDecayCounter < 16) { // Decay now unavoidable showText(TX_SPEAKER_SHIPS_COMPUTER, TX_COMPU181); - _vm->_awayMission.timers[1] = 100; - _vm->_awayMission.tug.orbitalDecayCounter++; + _awayMission->timers[1] = 100; + _awayMission->tug.orbitalDecayCounter++; } else { // Game over showText(TX_TUG3N006); showGameOverMenu(); @@ -485,10 +485,10 @@ void Room::tug3SecurityTeamBeamedIn() { showText(TX_SPEAKER_SCOTT, TX_TUG3_S08); playMidiMusicTracks(-1, -1); - _vm->_awayMission.disableInput = true; - if (_vm->_awayMission.tug.missionScore < 0) - _vm->_awayMission.tug.missionScore = 0; - endMission(_vm->_awayMission.tug.missionScore, _vm->_awayMission.tug.field2b, _vm->_awayMission.tug.field2d); + _awayMission->disableInput = true; + if (_awayMission->tug.missionScore < 0) + _awayMission->tug.missionScore = 0; + endMission(_awayMission->tug.missionScore, _awayMission->tug.field2b, _awayMission->tug.field2d); } } diff --git a/engines/startrek/sound.h b/engines/startrek/sound.h index 5354d92fd9..1b7021a30c 100644 --- a/engines/startrek/sound.h +++ b/engines/startrek/sound.h @@ -23,6 +23,7 @@ #ifndef STARTREK_SOUND_H #define STARTREK_SOUND_H +#include "startrek/soundeffects.h" #include "startrek/startrek.h" #include "audio/midiparser.h" @@ -38,66 +39,6 @@ namespace StarTrek { class StarTrekEngine; -// Sound effects for "playSoundEffectIndex" function -enum SoundEffects { - SND_TRICORDER = 4, - SND_DOOR1 = 5, - SND_PHASSHOT = 6, - SND_07 = 7, - SND_TRANSDEM = 8, - SND_TRANSMAT = 9, - SND_TRANSENE = 0x0a, - SND_BLANK_0b = 0x0b, - SND_SELECTION = 0x10, - SND_BLANK_14 = 0x14, - SND_BLANK_16 = 0x16, - SND_HAILING = 0x22, - SND_PHASSHOT_2 = 0x24, - SND_PHOTSHOT = 0x25, - SND_HITSHIEL = 0x26, - SND_27 = 0x27, - SND_REDALERT = 0x28, - SND_WARP = 0x29 -}; - - -enum MidiTracks { - MIDITRACK_0, - MIDITRACK_1, - MIDITRACK_2, - MIDITRACK_3, - MIDITRACK_4, - MIDITRACK_5, - MIDITRACK_6, - MIDITRACK_7, - MIDITRACK_8, - MIDITRACK_9, - MIDITRACK_10, - MIDITRACK_11, - MIDITRACK_12, - MIDITRACK_13, - MIDITRACK_14, - MIDITRACK_15, - MIDITRACK_16, - MIDITRACK_17, - MIDITRACK_18, - MIDITRACK_19, - MIDITRACK_20, - MIDITRACK_21, - MIDITRACK_22, - MIDITRACK_23, - MIDITRACK_24, - MIDITRACK_25, - MIDITRACK_26, - MIDITRACK_27, - MIDITRACK_28, - MIDITRACK_29, - MIDITRACK_30, - MIDITRACK_31, - MIDITRACK_32, - MIDITRACK_33 -}; - // Max # of VOC files that can play at once const int MAX_SFX_PLAYING = 4; diff --git a/engines/startrek/soundeffects.h b/engines/startrek/soundeffects.h new file mode 100644 index 0000000000..357c36eb08 --- /dev/null +++ b/engines/startrek/soundeffects.h @@ -0,0 +1,87 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef STARTREK_SOUNDEFFECTS_H +#define STARTREK_SOUNDEFFECTS_H + + +// Sound effects for "playSoundEffectIndex" function +enum SoundEffects { + SND_TRICORDER = 4, + SND_DOOR1 = 5, + SND_PHASSHOT = 6, + SND_07 = 7, + SND_TRANSDEM = 8, + SND_TRANSMAT = 9, + SND_TRANSENE = 0x0a, + SND_BLANK_0b = 0x0b, + SND_SELECTION = 0x10, + SND_BLANK_14 = 0x14, + SND_BLANK_16 = 0x16, + SND_HAILING = 0x22, + SND_PHASSHOT_2 = 0x24, + SND_PHOTSHOT = 0x25, + SND_HITSHIEL = 0x26, + SND_27 = 0x27, + SND_REDALERT = 0x28, + SND_WARP = 0x29 +}; + + +enum MidiTracks { + MIDITRACK_0, + MIDITRACK_1, + MIDITRACK_2, + MIDITRACK_3, + MIDITRACK_4, + MIDITRACK_5, + MIDITRACK_6, + MIDITRACK_7, + MIDITRACK_8, + MIDITRACK_9, + MIDITRACK_10, + MIDITRACK_11, + MIDITRACK_12, + MIDITRACK_13, + MIDITRACK_14, + MIDITRACK_15, + MIDITRACK_16, + MIDITRACK_17, + MIDITRACK_18, + MIDITRACK_19, + MIDITRACK_20, + MIDITRACK_21, + MIDITRACK_22, + MIDITRACK_23, + MIDITRACK_24, + MIDITRACK_25, + MIDITRACK_26, + MIDITRACK_27, + MIDITRACK_28, + MIDITRACK_29, + MIDITRACK_30, + MIDITRACK_31, + MIDITRACK_32, + MIDITRACK_33 +}; + +#endif -- cgit v1.2.3