aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/rooms/tug2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/startrek/rooms/tug2.cpp')
-rw-r--r--engines/startrek/rooms/tug2.cpp386
1 files changed, 193 insertions, 193 deletions
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);
}