aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/rooms
diff options
context:
space:
mode:
authorMatthew Stewart2018-05-29 16:51:05 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commite5a97d91373e20815c4f093803dc569112e0c922 (patch)
tree3a6aaff70afee05cb00f3a61b571a67e8423d383 /engines/startrek/rooms
parent2e80a35e08bf360a65592784631425e5d1081d65 (diff)
downloadscummvm-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.cpp4
-rw-r--r--engines/startrek/rooms/demon1.cpp12
-rw-r--r--engines/startrek/rooms/demon2.cpp2
-rw-r--r--engines/startrek/rooms/demon3.cpp8
-rw-r--r--engines/startrek/rooms/demon4.cpp2
-rw-r--r--engines/startrek/rooms/demon5.cpp338
-rw-r--r--engines/startrek/rooms/function_map.h55
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