diff options
author | Matthew Stewart | 2018-05-29 16:51:05 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | e5a97d91373e20815c4f093803dc569112e0c922 (patch) | |
tree | 3a6aaff70afee05cb00f3a61b571a67e8423d383 /engines/startrek/rooms | |
parent | 2e80a35e08bf360a65592784631425e5d1081d65 (diff) | |
download | scummvm-rg350-e5a97d91373e20815c4f093803dc569112e0c922.tar.gz scummvm-rg350-e5a97d91373e20815c4f093803dc569112e0c922.tar.bz2 scummvm-rg350-e5a97d91373e20815c4f093803dc569112e0c922.zip |
STARTREK: Demon5
Diffstat (limited to 'engines/startrek/rooms')
-rw-r--r-- | engines/startrek/rooms/demon0.cpp | 4 | ||||
-rw-r--r-- | engines/startrek/rooms/demon1.cpp | 12 | ||||
-rw-r--r-- | engines/startrek/rooms/demon2.cpp | 2 | ||||
-rw-r--r-- | engines/startrek/rooms/demon3.cpp | 8 | ||||
-rw-r--r-- | engines/startrek/rooms/demon4.cpp | 2 | ||||
-rw-r--r-- | engines/startrek/rooms/demon5.cpp | 338 | ||||
-rw-r--r-- | engines/startrek/rooms/function_map.h | 55 |
7 files changed, 407 insertions, 14 deletions
diff --git a/engines/startrek/rooms/demon0.cpp b/engines/startrek/rooms/demon0.cpp index 397a3eb120..d69f8f1db7 100644 --- a/engines/startrek/rooms/demon0.cpp +++ b/engines/startrek/rooms/demon0.cpp @@ -61,7 +61,7 @@ void Room::demon0TouchedWarp0() { } void Room::demon0WalkToBottomDoor() { - _vm->_awayMission.transitioningIntoRoom = 1; + _vm->_awayMission.disableInput = 1; _rdfData[0xcd] = 1; // FIXME _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 243, 158, 1); @@ -81,7 +81,7 @@ void Room::demon0ReachedBottomDoor() { } void Room::demon0WalkToTopDoor() { - _vm->_awayMission.transitioningIntoRoom = 1; + _vm->_awayMission.disableInput = 1; _rdfData[0xcc] = 1; // FIXME _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_KIRK] = DIR_E; walkCrewman(OBJECT_KIRK, 157, 134, 2); diff --git a/engines/startrek/rooms/demon1.cpp b/engines/startrek/rooms/demon1.cpp index fb5a66e1fc..325f13c843 100644 --- a/engines/startrek/rooms/demon1.cpp +++ b/engines/startrek/rooms/demon1.cpp @@ -216,7 +216,7 @@ void Room::demon1UsePhaserOnAnything() { void Room::demon1UsePhaserOnKlingon1() { if (_rdfData[0xca] != 0) return; - _vm->_awayMission.transitioningIntoRoom = 1; + _vm->_awayMission.disableInput = 1; _rdfData[0xca] = 1; if (_roomVar.demon1.kirkShooting) { @@ -245,7 +245,7 @@ void Room::demon1ShootKlingon1() { void Room::demon1KlingonDropsHand() { loadActorAnim(13, "klghnd", 0x10b, 0x8e, 0); - _vm->_awayMission.transitioningIntoRoom = 0; + _vm->_awayMission.disableInput = 0; _vm->_awayMission.timers[1] = 0; showText(TX_DEM1N020); @@ -265,7 +265,7 @@ void Room::demon1KlingonDropsHand() { void Room::demon1UsePhaserOnKlingon2() { if (_rdfData[0xcb] != 0) return; - _vm->_awayMission.transitioningIntoRoom = 1; + _vm->_awayMission.disableInput = 1; _rdfData[0xcb] = 1; if (_roomVar.demon1.kirkShooting) { @@ -289,13 +289,13 @@ void Room::demon1ShootKlingon2() { loadActorAnim(12, "s0ks2", 0, 0, 0); playSoundEffectIndex(0x06); loadActorAnim2(9, "klg2d", 0xaa, 0x7c, 0); - _vm->_awayMission.transitioningIntoRoom = 0; + _vm->_awayMission.disableInput = 0; } void Room::demon1UsePhaserOnKlingon3() { if (_rdfData[0xcc] != 0) return; - _vm->_awayMission.transitioningIntoRoom = 1; + _vm->_awayMission.disableInput = 1; _rdfData[0xcc] = 1; if (_roomVar.demon1.kirkShooting) { @@ -319,7 +319,7 @@ void Room::demon1ShootKlingon3() { loadActorAnim(12, "s0ks3", 0, 0, 0); playSoundEffectIndex(0x06); loadActorAnim2(10, "klg3d", 0, 0, 0); - _vm->_awayMission.transitioningIntoRoom = 0; + _vm->_awayMission.disableInput = 0; } // Timer 6 expired diff --git a/engines/startrek/rooms/demon2.cpp b/engines/startrek/rooms/demon2.cpp index c707e25308..9f54cded0c 100644 --- a/engines/startrek/rooms/demon2.cpp +++ b/engines/startrek/rooms/demon2.cpp @@ -141,7 +141,7 @@ void Room::demon2UseMTricorderOnBerries() { loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); playSoundEffectIndex(0x04); - if (_vm->_awayMission.demon.curedBrother) + if (_vm->_awayMission.demon.curedChub) showText(TX_SPEAKER_MCCOY, TX_DEM2_013); else if (_vm->_awayMission.demon.madeHypoDytoxin) showText(TX_SPEAKER_MCCOY, TX_DEM2_009); diff --git a/engines/startrek/rooms/demon3.cpp b/engines/startrek/rooms/demon3.cpp index 4a62282694..07bb4541e4 100644 --- a/engines/startrek/rooms/demon3.cpp +++ b/engines/startrek/rooms/demon3.cpp @@ -71,7 +71,7 @@ void Room::demon3Timer0Expired() { _vm->_awayMission.timers[1] = 13; _vm->_awayMission.demon.boulder1Gone = true; _vm->_awayMission.demon.numBouldersGone++; - _vm->_awayMission.transitioningIntoRoom = true; + _vm->_awayMission.disableInput = true; playMidiMusicTracks(2, -1); playVoc("BOULDERK"); } @@ -116,7 +116,7 @@ void Room::demon3FinishedWalking5() { playSoundEffectIndex(0x04); showText(TX_SPEAKER_MCCOY, TX_DEM3_019); - _vm->_awayMission.transitioningIntoRoom = false; + _vm->_awayMission.disableInput = false; } void Room::demon3McCoyInFiringPosition() { @@ -194,7 +194,7 @@ void Room::demon3FireAtBoulder() { playSoundEffectIndex(0x06); if (!_roomVar.demon3.boulder1Shot) _vm->_awayMission.timers[0] = 1; - _vm->_awayMission.transitioningIntoRoom = false; + _vm->_awayMission.disableInput = false; } void Room::demon3UsePhaserOnRedshirt() { @@ -262,7 +262,7 @@ void Room::demon3UsePhaserOnBoulder4() { } void Room::demon3BoulderCommon() { - _vm->_awayMission.transitioningIntoRoom = true; + _vm->_awayMission.disableInput = true; Common::Point pos = getActorPos(OBJECT_KIRK); if (!(pos.x == 0x79 && pos.y == 0xa0)) { _roomVar.demon3.inFiringPosition = false; diff --git a/engines/startrek/rooms/demon4.cpp b/engines/startrek/rooms/demon4.cpp index 3596761c7d..2993c176d3 100644 --- a/engines/startrek/rooms/demon4.cpp +++ b/engines/startrek/rooms/demon4.cpp @@ -137,7 +137,7 @@ void Room::demon4UseCrewmanOnPanel() { return; walkCrewman(_roomVar.demon4.crewmanUsingPanel, 0xda, 0x83, 3); _vm->_awayMission.crewDirectionsAfterWalk[_roomVar.demon4.crewmanUsingPanel] = DIR_N; - _vm->_awayMission.transitioningIntoRoom = true; + _vm->_awayMission.disableInput = true; } void Room::demon4CrewmanReachedPanel() { diff --git a/engines/startrek/rooms/demon5.cpp b/engines/startrek/rooms/demon5.cpp new file mode 100644 index 0000000000..94962db22c --- /dev/null +++ b/engines/startrek/rooms/demon5.cpp @@ -0,0 +1,338 @@ +/* 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. + * + */ + +#include "startrek/room.h" + +namespace StarTrek { + +void Room::demon5Tick1() { + playVoc("DEM5LOOP"); + + if (!_vm->_awayMission.demon.curedChub || _vm->_awayMission.demon.field37 != 1) + loadActorAnim(11, "oldman", 0x7a, 0xb0, 0); + loadActorAnim(8, "brorob", 0xc9, 0xa8, 0); + loadActorAnim(9, "crip", 0xe3, 0xa8, 0); + loadActorAnim(10, "brotel", 0xf9, 0xbc, 0); + loadActorAnim(12, "s0r6d2", 0xa0, 0x92, 0); +} + +void Room::demon5WalkToDoor() { + _vm->_awayMission.disableInput = true; + _roomVar.demon5.movingToDoor = true; + walkCrewman(OBJECT_KIRK, 0xa0, 0x94, 1); +} + +void Room::demon5TouchedDoorOpenTrigger() { + if (!_roomVar.demon5.movingToDoor) + return; + loadActorAnim(12, "s0r6d1", 0xa0, 0x92, 1); + playSoundEffectIndex(0x05); +} + +void Room::demon5DoorOpenedOrReachedDoor() { + // This is invoked when the door opens and when Kirk reaches the door. + // Must wait for both to occur. + _roomVar.demon5.doorCounter++; + if (_roomVar.demon5.doorCounter == 2) + loadRoomIndex(0, 1); +} + +void Room::demon5UseSTricorderOnCrate() { + loadActorAnim(OBJECT_SPOCK, "sscans", -1, -1, 0); + playSoundEffectIndex(0x04); + showText(TX_SPEAKER_SPOCK, TX_DEM5_006); +} + +void Room::demon5UsePhaserOnAnything() { + showText(TX_SPEAKER_SPOCK, TX_DEM5_007); +} + +void Room::demon5UseHandOnStephen() { + if (_vm->_awayMission.demon.field3b) + showText(TX_SPEAKER_STEPHEN, TX_DEM5_036); + else + showText(TX_SPEAKER_STEPHEN, TX_DEM5_039); +} + +void Room::demon5UseBerryOnStephen() { + if (_vm->_awayMission.demon.knowAboutHypoDytoxin) + showText(TX_SPEAKER_STEPHEN, TX_DEM5_033); + else + showText(TX_SPEAKER_STEPHEN, TX_DEM5_037); +} + +void Room::demon5UseHypoDytoxinOnChub() { + walkCrewman(OBJECT_MCCOY, 0xe1, 0xb0, 2); +} + +void Room::demon5MccoyReachedChub() { + loadActorAnim2(OBJECT_MCCOY, "musemn", -1, -1, 2); +} + +void Room::demon5MccoyHealedChub() { + walkCrewman(OBJECT_MCCOY, 0xc8, 0xba, 0); + _vm->_awayMission.crewDirectionsAfterWalk[OBJECT_MCCOY] = DIR_W; + showText(TX_SPEAKER_CHUB, TX_DEM5L027); + loseItem(OBJECT_IDETOXIN); + _vm->_awayMission.demon.curedChub = true; + _vm->_awayMission.missionScore += 2; +} + +void Room::demon5UseHypoDytoxinOnAnything() { + showText(TX_SPEAKER_MCCOY, TX_DEM5_008); +} + +void Room::demon5UseBerryOnChub() { + showText(TX_SPEAKER_MCCOY, TX_DEM5_009); +} + +void Room::demon5LookAtRoberts() { + showText(TX_DEM5N001); +} + +void Room::demon5LookAtGrisnash() { + showText(TX_DEM5N009); +} + +void Room::demon5LookAtStephen() { + showText(TX_DEM5N003); +} + +void Room::demon5LookAtKirk() { + showText(TX_DEM5N006); +} + +void Room::demon5LookAtSpock() { + showText(TX_DEM5N008); +} + +void Room::demon5LookAtMccoy() { + showText(TX_DEM5N007); +} + +void Room::demon5LookAtRedshirt() { + showText(TX_DEM5N005); +} + +void Room::demon5LookAtMountain() { + showText(TX_DEM5N002); +} + +void Room::demon5LookAtCrate() { + showText(TX_DEM5N004); +} + +void Room::demon5LookAnywhere() { + showText(TX_DEM5N000); +} + +void Room::demon5LookAtChub() { + showText(TX_SPEAKER_CHUB, TX_DEM5L028); +} + +void Room::demon5TalkToRoberts() { + if (_vm->_awayMission.demon.curedChub) { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_030); + if (!_roomVar.demon5.talkedToRoberts) { + _roomVar.demon5.talkedToRoberts = true; + _roomVar.demon5.numTalkedTo++; + demon5CheckCompletedStudy(); + } + } + else { + showText(TX_DEM5N010); + } +} + +void Room::demon5TalkToChub() { + if (_vm->_awayMission.demon.curedChub) { + showText(TX_SPEAKER_CHUB, TX_DEM5L029); + showText(TX_SPEAKER_KIRK, TX_DEM5_002); + showText(TX_SPEAKER_CHUB, TX_DEM5L030); + showText(TX_SPEAKER_KIRK, TX_DEM5_005); + showText(TX_SPEAKER_CHUB, TX_DEM5L031); + + if (!_roomVar.demon5.talkedToChub) { + _roomVar.demon5.talkedToChub = true; + _roomVar.demon5.numTalkedTo++; + demon5CheckCompletedStudy(); + } + } + else { + showText(TX_DEM5N013); + } +} + +void Room::demon5TalkToGrisnash() { + if (_vm->_awayMission.demon.curedChub) { + showText(TX_SPEAKER_GRISNASH, TX_DEM5_028); + showText(TX_SPEAKER_SPOCK, TX_DEM5_024); + showText(TX_SPEAKER_GRISNASH, TX_DEM5_029); + showText(TX_SPEAKER_SPOCK, TX_DEM5_025); + + if (!_roomVar.demon5.talkedToGrisnash) { + _roomVar.demon5.talkedToGrisnash = true; + _roomVar.demon5.numTalkedTo++; + demon5CheckCompletedStudy(); + } + } + else { + showText(TX_DEM5N011); + } +} + +void Room::demon5TalkToStephen() { + if (_vm->_awayMission.demon.curedChub) { + showText(TX_SPEAKER_STEPHEN, TX_DEM5_041); + showText(TX_SPEAKER_MCCOY, TX_DEM5_022); + showText(TX_SPEAKER_STEPHEN, TX_DEM5_043); + showText(TX_SPEAKER_ROBERTS, TX_DEM5_031); + showText(TX_SPEAKER_STEPHEN, TX_DEM5_042); + + if (!_roomVar.demon5.talkedToStephen) { + _roomVar.demon5.talkedToStephen = true; + _roomVar.demon5.numTalkedTo++; + demon5CheckCompletedStudy(); + } + } + else if (!_vm->_awayMission.demon.knowAboutHypoDytoxin) { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_034); + } + else if (_vm->_awayMission.demon.madeHypoDytoxin) { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_035); + } + else if (_vm->_awayMission.demon.gotBerries) { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_032); + _vm->_awayMission.demon.field3e = false; + } + else if (_vm->_awayMission.demon.field3e) { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_038); + } + else { + showText(TX_SPEAKER_ROBERTS, TX_DEM5_034); + } +} + +void Room::demon5TalkToKirk() { + showText(TX_SPEAKER_KIRK, TX_DEM5_001); +} + +void Room::demon5TalkToSpock() { + showText(TX_SPEAKER_SPOCK, TX_DEM5_027); + showText(TX_SPEAKER_MCCOY, TX_DEM5_018); +} + +void Room::demon5TalkToRedshirt() { + showText(TX_SPEAKER_EVERTS, TX_DEM5_045); + showText(TX_SPEAKER_MCCOY, TX_DEM5_021); + showText(TX_SPEAKER_KIRK, TX_DEM5_003); +} + +void Room::demon5TalkToMccoy() { + if (_vm->_awayMission.demon.curedChub) { + showText(TX_SPEAKER_MCCOY, TX_DEM5_023); + showText(TX_SPEAKER_KIRK, TX_DEM5_004); + if (!_vm->_awayMission.redshirtDead) { + showText(TX_SPEAKER_EVERTS, TX_DEM5_044); + showText(TX_SPEAKER_MCCOY, TX_DEM5_020); + showText(TX_SPEAKER_SPOCK, TX_DEM5_026); + showText(TX_SPEAKER_MCCOY, TX_DEM5_019); + } + } + else { + showText(TX_SPEAKER_MCCOY, TX_DEM5_017); + } +} + +void Room::demon5UseMTricorderOnRoberts() { + if (_roomVar.demon5.scannedRoberts) + return; + loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); + playSoundEffectIndex(0x04); + showText(TX_SPEAKER_MCCOY, TX_DEM5_015); + + _roomVar.demon5.scannedRoberts = true; + _roomVar.demon5.numScanned++; + demon5CheckCompletedStudy(); +} + +void Room::demon5UseMTricorderOnChub() { + loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); + playSoundEffectIndex(0x04); + + if (_vm->_awayMission.demon.curedChub) { + if (_roomVar.demon5.scannedChub) + return; + showText(TX_SPEAKER_MCCOY, TX_DEM5_016); + _roomVar.demon5.scannedChub = true; + _roomVar.demon5.numScanned++; + demon5CheckCompletedStudy(); + } + else { + if (_vm->_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; + } + } +} + + +void Room::demon5UseMTricorderOnGrisnash() { + if (_roomVar.demon5.scannedGrisnash) + return; + loadActorAnim2(OBJECT_MCCOY, "mscane", -1, -1, 0); + playSoundEffectIndex(0x04); + showText(TX_SPEAKER_MCCOY, TX_DEM5_013); + + _roomVar.demon5.scannedGrisnash = true; + _roomVar.demon5.numScanned++; + demon5CheckCompletedStudy(); +} + +void Room::demon5UseMTricorderOnStephen() { + if (_roomVar.demon5.scannedStephen) + return; + loadActorAnim2(OBJECT_MCCOY, "mscanw", -1, -1, 0); + playSoundEffectIndex(0x04); + showText(TX_SPEAKER_MCCOY, TX_DEM5_014); + + _roomVar.demon5.scannedStephen = true; + _roomVar.demon5.numScanned++; + demon5CheckCompletedStudy(); +} + +void Room::demon5CheckCompletedStudy() { + if (_roomVar.demon5.numScanned == 4 && _roomVar.demon5.numTalkedTo == 4) { + showText(TX_SPEAKER_MCCOY, TX_DEM5_011); + _roomVar.demon5.numTalkedTo = 5; + } +} + +void Room::demon5GetCrate() { + showText(TX_DEM5N012); +} + +} diff --git a/engines/startrek/rooms/function_map.h b/engines/startrek/rooms/function_map.h index 1761bda314..d0cbff81df 100644 --- a/engines/startrek/rooms/function_map.h +++ b/engines/startrek/rooms/function_map.h @@ -344,6 +344,61 @@ RoomAction demon4ActionList[] = { { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::demon4CrewmanReachedPanel }, }; +RoomAction demon5ActionList[] = { + { Action(ACTION_TICK, 1, 0, 0), &Room::demon5Tick1 }, + { Action(ACTION_WALK, 0x22, 0, 0), &Room::demon5WalkToDoor }, + { Action(ACTION_WALK, 12, 0, 0), &Room::demon5WalkToDoor }, + { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::demon5TouchedDoorOpenTrigger }, + { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon5DoorOpenedOrReachedDoor }, + { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon5DoorOpenedOrReachedDoor }, + + { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon5UseSTricorderOnCrate }, + { Action(ACTION_USE, OBJECT_IPHASERK, -1, 0), &Room::demon5UsePhaserOnAnything }, + { Action(ACTION_USE, OBJECT_IPHASERS, -1, 0), &Room::demon5UsePhaserOnAnything }, + + { Action(ACTION_USE, OBJECT_IHAND, 11, 0), &Room::demon5UseHandOnStephen }, + { Action(ACTION_USE, OBJECT_IBERRY, 11, 0), &Room::demon5UseBerryOnStephen }, + { Action(ACTION_USE, OBJECT_IDETOXIN, 9, 0), &Room::demon5UseHypoDytoxinOnChub }, + { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon5MccoyReachedChub }, + { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon5MccoyHealedChub }, + + { Action(ACTION_USE, OBJECT_IDETOXIN, -1, 0), &Room::demon5UseHypoDytoxinOnAnything }, + { Action(ACTION_USE, OBJECT_IBERRY, 9, 0), &Room::demon5UseBerryOnChub }, + + { Action(ACTION_LOOK, 8, 0, 0), &Room::demon5LookAtRoberts }, + { Action(ACTION_LOOK, 10, 0, 0), &Room::demon5LookAtGrisnash }, + { Action(ACTION_LOOK, 11, 0, 0), &Room::demon5LookAtStephen }, + + { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon5LookAtKirk }, + { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon5LookAtSpock }, + { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon5LookAtMccoy }, + { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon5LookAtRedshirt }, + + { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon5LookAtMountain }, + { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon5LookAtCrate }, + { Action(ACTION_LOOK, -1, 0, 0), &Room::demon5LookAnywhere }, + { Action(ACTION_LOOK, 9, 0, 0), &Room::demon5LookAtChub }, + + { Action(ACTION_TALK, 8, 0, 0), &Room::demon5TalkToRoberts }, + { Action(ACTION_TALK, 9, 0, 0), &Room::demon5TalkToChub }, + { Action(ACTION_TALK, 10, 0, 0), &Room::demon5TalkToGrisnash }, + { Action(ACTION_TALK, 11, 0, 0), &Room::demon5TalkToStephen }, + + { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon5TalkToKirk }, + { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon5TalkToSpock }, + { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon5TalkToRedshirt }, + { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon5TalkToMccoy }, + + { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::demon5UseMTricorderOnRoberts }, + { Action(ACTION_USE, OBJECT_IMEDKIT, 9, 0), &Room::demon5UseMTricorderOnChub }, + { Action(ACTION_USE, OBJECT_MCCOY, 9, 0), &Room::demon5UseMTricorderOnChub }, + { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::demon5UseMTricorderOnChub }, + { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::demon5UseMTricorderOnGrisnash }, + { Action(ACTION_USE, OBJECT_IMTRICOR, 11, 0), &Room::demon5UseMTricorderOnStephen }, + + { Action(ACTION_GET, 0x21, 0, 0), &Room::demon5GetCrate }, +}; + } #endif |