aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/startrek/room.h9
-rw-r--r--engines/startrek/rooms/tug2.cpp16
2 files changed, 14 insertions, 11 deletions
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index a6a2e70557..05db770347 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -120,9 +120,12 @@ private:
void showGameOverMenu(); // Cmd 0x12
void playVoc(Common::String filename); // Cmd 0x15
- // Helper functions for repetitive stuff
- void spockScan(int direction, int text, bool changeDirection = true);
- void mccoyScan(int direction, int text, bool changeDirection = true);
+ // Helper functions for repetitive stuff.
+
+ // If "changeDirection" is true, they remain facing that direction even after their
+ // animation is finished. The game is inconsistent about doing this.
+ void spockScan(int direction, int text, bool changeDirection);
+ void mccoyScan(int direction, int text, bool changeDirection);
// Room-specific code
public:
diff --git a/engines/startrek/rooms/tug2.cpp b/engines/startrek/rooms/tug2.cpp
index 3c6aad2ed5..8c24a36ac4 100644
--- a/engines/startrek/rooms/tug2.cpp
+++ b/engines/startrek/rooms/tug2.cpp
@@ -188,7 +188,7 @@ void Room::tug2LookAtWires() {
void Room::tug2UseSTricorderOnButton() {
if (_vm->_awayMission.tug.field35 != 0)
return;
- spockScan(DIR_E, TX_TUG2_007);
+ spockScan(DIR_E, TX_TUG2_007, true);
}
void Room::tug2UseMccoyOnWires() {
@@ -783,18 +783,18 @@ void Room::tug2Timer2Expired() {
}
void Room::tug2UseSTricorderOnBomb() {
- spockScan(DIR_E, TX_TUG2_004);
+ spockScan(DIR_E, TX_TUG2_004, true);
}
void Room::tug2UseMTricorderOnGuard1() {
if (_vm->_awayMission.tug.guard1Status == GUARDSTAT_STUNNED)
- mccoyScan(DIR_E, TX_TUG2_016);
+ 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)
- mccoyScan(DIR_E, TX_TUG2_016);
+ mccoyScan(DIR_E, TX_TUG2_016, true);
}
void Room::tug2TalkToGuard1() {
@@ -855,19 +855,19 @@ void Room::tug2TalkToBrig() {
if (_vm->_awayMission.tug.brigForceFieldDown && _vm->_awayMission.tug.talkedToBrigCrewman)
showText(TX_SPEAKER_MASADA_CREWMAN, TX_TUG2_027);
else if (!_vm->_awayMission.tug.brigForceFieldDown)
- mccoyScan(DIR_E, TX_TUG2_015);
+ mccoyScan(DIR_E, TX_TUG2_015, true);
}
void Room::tug2UseMTricorderOnBrig() {
if (_vm->_awayMission.tug.field35 == 6)
- mccoyScan(DIR_E, TX_TUG2_019);
+ mccoyScan(DIR_E, TX_TUG2_019, true);
else if (!_vm->_awayMission.tug.brigForceFieldDown)
- mccoyScan(DIR_E, TX_TUG2_015);
+ mccoyScan(DIR_E, TX_TUG2_015, true);
}
void Room::tug2UseMTricorderOnOpenBrig() {
if (_vm->_awayMission.tug.brigForceFieldDown)
- mccoyScan(DIR_E, TX_TUG2_015);
+ mccoyScan(DIR_E, TX_TUG2_015, true);
}
void Room::tug2UsePhaserAnywhere() {