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