aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Stewart2018-07-03 23:55:30 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commit8c71f2db84b06862b4fefbe3e79fb042e7a60666 (patch)
tree7391b512e479707aa14d6855606f00454f3e5662
parent051ea8c238510db03505cd146025c1db441ace84 (diff)
downloadscummvm-rg350-8c71f2db84b06862b4fefbe3e79fb042e7a60666.tar.gz
scummvm-rg350-8c71f2db84b06862b4fefbe3e79fb042e7a60666.tar.bz2
scummvm-rg350-8c71f2db84b06862b4fefbe3e79fb042e7a60666.zip
STARTREK: Make Action struct POD again
-rw-r--r--engines/startrek/action.h14
-rw-r--r--engines/startrek/awaymission.cpp27
-rw-r--r--engines/startrek/room.cpp15
-rw-r--r--engines/startrek/room.h6
-rw-r--r--engines/startrek/rooms/feather1.cpp184
-rw-r--r--engines/startrek/rooms/function_map.h3266
-rw-r--r--engines/startrek/startrek.cpp14
-rw-r--r--engines/startrek/startrek.h2
-rw-r--r--engines/startrek/text.cpp2
9 files changed, 1772 insertions, 1758 deletions
diff --git a/engines/startrek/action.h b/engines/startrek/action.h
index 55a08da738..f6178d8858 100644
--- a/engines/startrek/action.h
+++ b/engines/startrek/action.h
@@ -29,7 +29,7 @@ namespace StarTrek {
class Room;
-enum Acton {
+enum Acton { // TODO: rename
ACTION_TICK = 0,
ACTION_WALK = 1, // Actions 1-5 are directly usable on away missions.
@@ -46,20 +46,12 @@ enum Acton {
ACTION_OPTIONS = 13 // Not really an action, but selectable from action menu
};
-struct Action : Common::Serializable {
+struct Action {
byte type;
byte b1;
byte b2;
byte b3;
- Action() {}
- Action(int _type, int _b1, int _b2, int _b3)
- : type((byte)_type),
- b1((byte)_b1),
- b2((byte)_b2),
- b3((byte)_b3) {}
-
-
// ACTION_USE, ACTION_GET, ACTION_LOOK, ACTION_TALK
byte activeObject() { return b1; }
byte passiveObject() { return b2; }
@@ -85,7 +77,7 @@ struct Action : Common::Serializable {
return (type << 24) | (b1 << 16) | (b2 << 8) | (b3 << 0);
}
- virtual void saveLoadWithSerializer(Common::Serializer &ser) {
+ void saveLoadWithSerializer(Common::Serializer &ser) {
ser.syncAsByte(type);
ser.syncAsByte(b1);
ser.syncAsByte(b2);
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index 8ae11d4d7e..8c7f8db51e 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -189,7 +189,7 @@ void StarTrekEngine::handleAwayMissionEvents() {
updateAwayMissionTimers();
_frameIndex++;
_roomFrameCounter++;
- addAction(Action(ACTION_TICK, _roomFrameCounter & 0xff, (_roomFrameCounter >> 8) & 0xff, 0));
+ addAction(ACTION_TICK, _roomFrameCounter & 0xff, (_roomFrameCounter >> 8) & 0xff, 0);
if (_roomFrameCounter >= 2)
_gfx->incPaletteFadeLevel();
break;
@@ -258,16 +258,16 @@ useInventory:
if (clickedObject == -2)
goto checkAddAction;
- if (_room->actionHasCode(Action(ACTION_USE, _awayMission.activeObject, _awayMission.passiveObject, 0)))
+ if (_room->actionHasCode(ACTION_USE, _awayMission.activeObject, _awayMission.passiveObject, 0))
goto checkAddAction;
if (_awayMission.activeObject == OBJECT_MCCOY) {
- if (_room->actionHasCode(Action(ACTION_USE, OBJECT_IMEDKIT, _awayMission.passiveObject, 0)))
+ if (_room->actionHasCode(ACTION_USE, OBJECT_IMEDKIT, _awayMission.passiveObject, 0))
goto checkAddAction;
- if (_room->actionHasCode(Action(ACTION_USE, OBJECT_IMEDKIT, _awayMission.passiveObject, 0)))
+ if (_room->actionHasCode(ACTION_USE, OBJECT_IMEDKIT, _awayMission.passiveObject, 0))
goto checkAddAction;
}
else if (_awayMission.activeObject == OBJECT_SPOCK) {
- if (_room->actionHasCode(Action(ACTION_USE, OBJECT_ISTRICOR, _awayMission.passiveObject, 0)))
+ if (_room->actionHasCode(ACTION_USE, OBJECT_ISTRICOR, _awayMission.passiveObject, 0))
goto checkAddAction;
}
@@ -277,7 +277,7 @@ useInventory:
if (_awayMission.passiveObject == OBJECT_ICOMM) {
if (walkActiveObjectToHotspot())
break;
- addAction(Action(ACTION_USE, OBJECT_ICOMM, 0, 0));
+ addAction(ACTION_USE, OBJECT_ICOMM, 0, 0);
_sound->playVoc("commun30");
if (_awayMission.activeObject <= OBJECT_REDSHIRT) {
goto checkShowInventory;
@@ -296,7 +296,7 @@ checkAddAction:
if (!walkActiveObjectToHotspot())
{
if (clickedObject != -2)
- addAction(Action(_awayMission.activeAction, _awayMission.activeObject, _awayMission.passiveObject, 0));
+ addAction(_awayMission.activeAction, _awayMission.activeObject, _awayMission.passiveObject, 0);
checkShowInventory:
if (!(_awayMission.crewDownBitset & (1 << OBJECT_KIRK)))
@@ -325,7 +325,7 @@ lookInventory:
break;
if (clickedObject != -2)
- addAction(Action(_awayMission.activeAction, _awayMission.activeObject, 0, 0));
+ addAction(_awayMission.activeAction, _awayMission.activeObject, 0, 0);
if (_awayMission.activeAction == ACTION_LOOK && !(_awayMission.crewDownBitset & (1 << OBJECT_KIRK)))
showInventoryIcons(false);
@@ -358,7 +358,7 @@ checkSelectedAction:
if (_awayMission.activeAction == ACTION_USE
&& _awayMission.activeObject == OBJECT_ICOMM && (_awayMission.crewDownBitset & (1 << OBJECT_KIRK)) == 0) {
if (!walkActiveObjectToHotspot()) {
- addAction(Action(_awayMission.activeAction, _awayMission.activeObject, 0, 0));
+ addAction(_awayMission.activeAction, _awayMission.activeObject, 0, 0);
_sound->playVoc("communic");
_awayMission.activeAction = ACTION_WALK;
}
@@ -473,6 +473,11 @@ void StarTrekEngine::addAction(const Action &action) {
_actionQueue.push(action);
}
+void StarTrekEngine::addAction(byte type, byte b1, byte b2, byte b3) {
+ const Action a = {type, b1, b2, b3};
+ addAction(a);
+}
+
void StarTrekEngine::handleAwayMissionAction() {
Action action = _actionQueue.pop();
@@ -689,7 +694,7 @@ void StarTrekEngine::checkTouchedLoadingZone(int16 x, int16 y) {
uint16 var = _room->readRdfWord(offset);
if (_activeDoorWarpHotspot != var) {
_activeDoorWarpHotspot = var;
- addAction(Action(ACTION_TOUCHED_HOTSPOT, var & 0xff, 0, 0));
+ addAction(ACTION_TOUCHED_HOTSPOT, var & 0xff, 0, 0);
}
return;
}
@@ -707,7 +712,7 @@ void StarTrekEngine::checkTouchedLoadingZone(int16 x, int16 y) {
uint16 var = _room->readRdfWord(offset);
if (_activeWarpHotspot != var) {
_activeWarpHotspot = var;
- addAction(Action(ACTION_TOUCHED_WARP, var & 0xff, 0, 0));
+ addAction(ACTION_TOUCHED_WARP, var & 0xff, 0, 0);
}
return;
}
diff --git a/engines/startrek/room.cpp b/engines/startrek/room.cpp
index 0ce807b198..0430d34d78 100644
--- a/engines/startrek/room.cpp
+++ b/engines/startrek/room.cpp
@@ -191,6 +191,11 @@ bool Room::actionHasCode(const Action &action) {
return false;
}
+bool Room::actionHasCode(byte type, byte b1, byte b2, byte b3) {
+ const Action a = {type, b1, b2, b3};
+ return actionHasCode(a);
+}
+
bool Room::handleAction(const Action &action) {
const RoomAction *roomActionPtr = _roomActionList;
int n = _numRoomActions;
@@ -207,6 +212,11 @@ bool Room::handleAction(const Action &action) {
return false;
}
+bool Room::handleAction(byte type, byte b1, byte b2, byte b3) {
+ const Action a = {type, b1, b2, b3};
+ return handleAction(a);
+}
+
bool Room::handleActionWithBitmask(const Action &action) {
const RoomAction *roomActionPtr = _roomActionList;
int n = _numRoomActions;
@@ -224,6 +234,11 @@ bool Room::handleActionWithBitmask(const Action &action) {
return false;
}
+bool Room::handleActionWithBitmask(byte type, byte b1, byte b2, byte b3) {
+ Action a = {type, b1, b2, b3};
+ return handleActionWithBitmask(a);
+}
+
Common::Point Room::getBeamInPosition(int crewmanIndex) {
int base = RDF_BEAM_IN_POSITIONS + crewmanIndex * 4;
return Common::Point(readRdfWord(base), readRdfWord(base + 2));
diff --git a/engines/startrek/room.h b/engines/startrek/room.h
index bd6d7d9420..f4e7f30175 100644
--- a/engines/startrek/room.h
+++ b/engines/startrek/room.h
@@ -69,12 +69,14 @@ public:
// words 0x0e and 0x10 in RDF file are pointers to start and end of event code.
// That code is instead rewritten on a per-room basis.
bool actionHasCode(const Action &action);
+ bool actionHasCode(byte type, byte b1, byte b2, byte b3);
+
bool handleAction(const Action &action);
- bool handleAction(byte type, byte b1, byte b2, byte b3) { return handleAction(Action(type, b1, b2, b3)); };
+ bool handleAction(byte type, byte b1, byte b2, byte b3);
// Same as above, but if any byte in the action is -1 (0xff), it matches any value.
bool handleActionWithBitmask(const Action &action);
- bool handleActionWithBitmask(byte type, byte b1, byte b2, byte b3) { return handleActionWithBitmask(Action(type, b1, b2, b3)); };
+ bool handleActionWithBitmask(byte type, byte b1, byte b2, byte b3);
uint16 getFirstHotspot() { return readRdfWord(0x12); }
uint16 getHotspotEnd() { return readRdfWord(0x14); }
diff --git a/engines/startrek/rooms/feather1.cpp b/engines/startrek/rooms/feather1.cpp
index 488244e4dc..7a2312154a 100644
--- a/engines/startrek/rooms/feather1.cpp
+++ b/engines/startrek/rooms/feather1.cpp
@@ -47,98 +47,98 @@
namespace StarTrek {
extern const RoomAction feather1ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather1Tick1 },
- { Action(ACTION_TICK, 45, 0, 0), &Room::feather1Tick45 },
- { Action(ACTION_TICK, 85, 0, 0), &Room::feather1Tick85 },
- { Action(ACTION_TICK, 95, 0, 0), &Room::feather1Tick95 },
- { Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::feather1QuetzecoatlDisappeared },
- { Action(ACTION_GET, HOTSPOT_RIGHT_VINE, 0, 0), &Room::feather1GetRightVine },
- { Action(ACTION_GET, OBJECT_LEFT_VINE, 0, 0), &Room::feather1GetLeftVine },
- { Action(ACTION_GET, HOTSPOT_ROCKS, 0, 0), &Room::feather1GetRocks },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::feather1ReachedRocks },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::feather1PickedUpRocks },
- { Action(ACTION_GET, OBJECT_SNAKE, 0, 0), &Room::feather1GetSnake },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::feather1ReachedSnake },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::feather1Timer1Expired },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::feather1Timer2Expired },
- { Action(ACTION_FINISHED_ANIMATION, 8, 0, 0), &Room::feather1PickedUpSnake },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::feather1Timer0Expired },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::feather1UseCommunicator },
- { Action(ACTION_USE, OBJECT_IROCK, HOTSPOT_HOLE, 0), &Room::feather1UseRockOnHole },
- { Action(ACTION_FINISHED_WALKING, 9, 0, 0), &Room::feather1ReachedHole },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::feather1Timer3Expired },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::feather1PutRockInHole },
- { Action(ACTION_USE, OBJECT_ISNAKE, OBJECT_LEFT_VINE, 0), &Room::feather1UseSnakeOnLeftVine },
- { Action(ACTION_USE, OBJECT_ISNAKE, OBJECT_SPOCK, 0), &Room::feather1UseSnakeOnSpock },
- { Action(ACTION_USE, OBJECT_ISNAKE, OBJECT_KIRK, 0), &Room::feather1UseSnakeOnKirk },
- { Action(ACTION_USE, OBJECT_ISNAKE, OBJECT_MCCOY, 0), &Room::feather1UseSnakeOnMccoy },
- { Action(ACTION_USE, OBJECT_ISNAKE, OBJECT_REDSHIRT, 0), &Room::feather1UseSnakeOnRedshirt },
- { Action(ACTION_USE, OBJECT_IROCK, OBJECT_SNAKE, 0), &Room::feather1UseRockOnSnake },
- { Action(ACTION_USE, OBJECT_SPOCK, OBJECT_SNAKE, 0), &Room::feather1UseSpockOnSnake },
- { Action(ACTION_USE, OBJECT_MCCOY, OBJECT_SNAKE, 0), &Room::feather1UseMccoyOnSnake },
- { Action(ACTION_USE, OBJECT_REDSHIRT, OBJECT_SNAKE, 0), &Room::feather1UseRedshirtOnSnake },
- { Action(ACTION_USE, OBJECT_SPOCK, HOTSPOT_HOLE, 0), &Room::feather1UseSpockOnHole },
- { Action(ACTION_USE, OBJECT_MCCOY, HOTSPOT_HOLE, 0), &Room::feather1UseMccoyOnHole },
- { Action(ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_HOLE, 0), &Room::feather1UseRedshirtOnHole },
- { Action(ACTION_USE, OBJECT_IROCK, HOTSPOT_MOSS, 0), &Room::feather1UseRockOnMoss },
- { Action(ACTION_USE, OBJECT_IROCK, OBJECT_SPOCK, 0), &Room::feather1UseRockOnSpock },
- { Action(ACTION_USE, OBJECT_IROCK, OBJECT_MCCOY, 0), &Room::feather1UseRockOnMccoy },
- { Action(ACTION_USE, OBJECT_IROCK, OBJECT_REDSHIRT, 0), &Room::feather1UseRockOnRedshirt },
- { Action(ACTION_USE, OBJECT_SPOCK, HOTSPOT_MOSS, 0), &Room::feather1UseSpockOnMoss },
- { Action(ACTION_USE, OBJECT_MCCOY, HOTSPOT_MOSS, 0), &Room::feather1UseMccoyOnMoss },
- { Action(ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_MOSS, 0), &Room::feather1UseRedshirtOnMoss },
- { Action(ACTION_USE, OBJECT_IROCK, OBJECT_LEFT_VINE, 0), &Room::feather1UseRockOnLeftVine },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::feather1ReadyToThrowRock1 },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::feather1ThrewRock1 },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::feather1ReadyToThrowRock2 },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::feather1ThrewRock2 },
-
- { Action(ACTION_USE, OBJECT_SPOCK, OBJECT_LEFT_VINE, 0), &Room::feather1UseSpockOnVine },
- { Action(ACTION_USE, OBJECT_SPOCK, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseSpockOnVine },
- { Action(ACTION_USE, OBJECT_MCCOY, OBJECT_LEFT_VINE, 0), &Room::feather1UseMccoyOnVine },
- { Action(ACTION_USE, OBJECT_MCCOY, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseMccoyOnVine },
- { Action(ACTION_USE, OBJECT_REDSHIRT, OBJECT_LEFT_VINE, 0), &Room::feather1UseRedshirtOnVine },
- { Action(ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseRedshirtOnVine },
- { Action(ACTION_USE, OBJECT_KIRK, OBJECT_LEFT_VINE, 0), &Room::feather1UseKirkOnVine },
- { Action(ACTION_USE, OBJECT_KIRK, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseKirkOnVine },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::feather1ReachedVineToClimbUp },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::feather1ClimbedUpVine },
- { Action(ACTION_FINISHED_WALKING, 10, 0, 0), &Room::feather1ReachedVineToClimbDown },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::feather1ClimbedDownVine },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, -1, 0), &Room::feather1UsePhaser },
- { Action(ACTION_USE, OBJECT_IPHASERK, -1, 0), &Room::feather1UsePhaser },
- { Action(ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseSTricorderOnRightVine },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_SNAKE, 0), &Room::feather1UseSTricorderOnSnake },
- { Action(ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_MOSS, 0), &Room::feather1UseSTricorderOnMoss },
- { Action(ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_HOLE, 0), &Room::feather1UseSTricorderOnHole },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::feather1UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_ROCKS, 0), &Room::feather1UseSTricorderOnRocks },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_LEFT_VINE, 0), &Room::feather1UseMTricorderOnVine },
- { Action(ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_RIGHT_VINE, 0), &Room::feather1UseMTricorderOnVine },
- { Action(ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_MOSS, 0), &Room::feather1UseMTricorderOnMoss },
- { Action(ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_HOLE, 0), &Room::feather1UseMTricorderOnHole },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SNAKE, 0), &Room::feather1UseMTricorderOnSnake },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::feather1UseMedkit },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::feather1TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::feather1TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::feather1TalkToRedshirt },
- { Action(ACTION_WALK, HOTSPOT_EXIT, 0, 0), &Room::feather1WalkToExit },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::feather1LookAnywhere },
- { Action(ACTION_LOOK, OBJECT_SNAKE, 0, 0), &Room::feather1LookAtSnake },
- { Action(ACTION_LOOK, HOTSPOT_RIGHT_VINE, 0, 0), &Room::feather1LookAtRightVine },
- { Action(ACTION_LOOK, HOTSPOT_HOLE, 0, 0), &Room::feather1LookAtHole },
- { Action(ACTION_LOOK, HOTSPOT_MOSS, 0, 0), &Room::feather1LookAtMoss },
- { Action(ACTION_LOOK, HOTSPOT_ROCKS, 0, 0), &Room::feather1LookAtRocks },
- { Action(ACTION_LOOK, HOTSPOT_LIGHT, 0, 0), &Room::feather1LookAtLight },
- { Action(ACTION_LOOK, HOTSPOT_EYES_1, 0, 0), &Room::feather1LookAtEyes },
- { Action(ACTION_LOOK, HOTSPOT_EYES_2, 0, 0), &Room::feather1LookAtEyes },
- { Action(ACTION_LOOK, HOTSPOT_EYES_3, 0, 0), &Room::feather1LookAtEyes },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::feather1LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::feather1LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::feather1LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::feather1LookAtRedshirt },
- { Action(ACTION_LOOK, OBJECT_LEFT_VINE, 0, 0), &Room::feather1LookAtLeftVine },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather1Tick1 },
+ { {ACTION_TICK, 45, 0, 0}, &Room::feather1Tick45 },
+ { {ACTION_TICK, 85, 0, 0}, &Room::feather1Tick85 },
+ { {ACTION_TICK, 95, 0, 0}, &Room::feather1Tick95 },
+ { {ACTION_FINISHED_ANIMATION, 18, 0, 0}, &Room::feather1QuetzecoatlDisappeared },
+ { {ACTION_GET, HOTSPOT_RIGHT_VINE, 0, 0}, &Room::feather1GetRightVine },
+ { {ACTION_GET, OBJECT_LEFT_VINE, 0, 0}, &Room::feather1GetLeftVine },
+ { {ACTION_GET, HOTSPOT_ROCKS, 0, 0}, &Room::feather1GetRocks },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::feather1ReachedRocks },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::feather1PickedUpRocks },
+ { {ACTION_GET, OBJECT_SNAKE, 0, 0}, &Room::feather1GetSnake },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::feather1ReachedSnake },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::feather1Timer1Expired },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::feather1Timer2Expired },
+ { {ACTION_FINISHED_ANIMATION, 8, 0, 0}, &Room::feather1PickedUpSnake },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::feather1Timer0Expired },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::feather1UseCommunicator },
+ { {ACTION_USE, OBJECT_IROCK, HOTSPOT_HOLE, 0}, &Room::feather1UseRockOnHole },
+ { {ACTION_FINISHED_WALKING, 9, 0, 0}, &Room::feather1ReachedHole },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::feather1Timer3Expired },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::feather1PutRockInHole },
+ { {ACTION_USE, OBJECT_ISNAKE, OBJECT_LEFT_VINE, 0}, &Room::feather1UseSnakeOnLeftVine },
+ { {ACTION_USE, OBJECT_ISNAKE, OBJECT_SPOCK, 0}, &Room::feather1UseSnakeOnSpock },
+ { {ACTION_USE, OBJECT_ISNAKE, OBJECT_KIRK, 0}, &Room::feather1UseSnakeOnKirk },
+ { {ACTION_USE, OBJECT_ISNAKE, OBJECT_MCCOY, 0}, &Room::feather1UseSnakeOnMccoy },
+ { {ACTION_USE, OBJECT_ISNAKE, OBJECT_REDSHIRT, 0}, &Room::feather1UseSnakeOnRedshirt },
+ { {ACTION_USE, OBJECT_IROCK, OBJECT_SNAKE, 0}, &Room::feather1UseRockOnSnake },
+ { {ACTION_USE, OBJECT_SPOCK, OBJECT_SNAKE, 0}, &Room::feather1UseSpockOnSnake },
+ { {ACTION_USE, OBJECT_MCCOY, OBJECT_SNAKE, 0}, &Room::feather1UseMccoyOnSnake },
+ { {ACTION_USE, OBJECT_REDSHIRT, OBJECT_SNAKE, 0}, &Room::feather1UseRedshirtOnSnake },
+ { {ACTION_USE, OBJECT_SPOCK, HOTSPOT_HOLE, 0}, &Room::feather1UseSpockOnHole },
+ { {ACTION_USE, OBJECT_MCCOY, HOTSPOT_HOLE, 0}, &Room::feather1UseMccoyOnHole },
+ { {ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_HOLE, 0}, &Room::feather1UseRedshirtOnHole },
+ { {ACTION_USE, OBJECT_IROCK, HOTSPOT_MOSS, 0}, &Room::feather1UseRockOnMoss },
+ { {ACTION_USE, OBJECT_IROCK, OBJECT_SPOCK, 0}, &Room::feather1UseRockOnSpock },
+ { {ACTION_USE, OBJECT_IROCK, OBJECT_MCCOY, 0}, &Room::feather1UseRockOnMccoy },
+ { {ACTION_USE, OBJECT_IROCK, OBJECT_REDSHIRT, 0}, &Room::feather1UseRockOnRedshirt },
+ { {ACTION_USE, OBJECT_SPOCK, HOTSPOT_MOSS, 0}, &Room::feather1UseSpockOnMoss },
+ { {ACTION_USE, OBJECT_MCCOY, HOTSPOT_MOSS, 0}, &Room::feather1UseMccoyOnMoss },
+ { {ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_MOSS, 0}, &Room::feather1UseRedshirtOnMoss },
+ { {ACTION_USE, OBJECT_IROCK, OBJECT_LEFT_VINE, 0}, &Room::feather1UseRockOnLeftVine },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::feather1ReadyToThrowRock1 },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::feather1ThrewRock1 },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::feather1ReadyToThrowRock2 },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::feather1ThrewRock2 },
+
+ { {ACTION_USE, OBJECT_SPOCK, OBJECT_LEFT_VINE, 0}, &Room::feather1UseSpockOnVine },
+ { {ACTION_USE, OBJECT_SPOCK, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseSpockOnVine },
+ { {ACTION_USE, OBJECT_MCCOY, OBJECT_LEFT_VINE, 0}, &Room::feather1UseMccoyOnVine },
+ { {ACTION_USE, OBJECT_MCCOY, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseMccoyOnVine },
+ { {ACTION_USE, OBJECT_REDSHIRT, OBJECT_LEFT_VINE, 0}, &Room::feather1UseRedshirtOnVine },
+ { {ACTION_USE, OBJECT_REDSHIRT, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseRedshirtOnVine },
+ { {ACTION_USE, OBJECT_KIRK, OBJECT_LEFT_VINE, 0}, &Room::feather1UseKirkOnVine },
+ { {ACTION_USE, OBJECT_KIRK, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseKirkOnVine },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::feather1ReachedVineToClimbUp },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::feather1ClimbedUpVine },
+ { {ACTION_FINISHED_WALKING, 10, 0, 0}, &Room::feather1ReachedVineToClimbDown },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::feather1ClimbedDownVine },
+
+ { {ACTION_USE, OBJECT_IPHASERS, -1, 0}, &Room::feather1UsePhaser },
+ { {ACTION_USE, OBJECT_IPHASERK, -1, 0}, &Room::feather1UsePhaser },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseSTricorderOnRightVine },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_SNAKE, 0}, &Room::feather1UseSTricorderOnSnake },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_MOSS, 0}, &Room::feather1UseSTricorderOnMoss },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_HOLE, 0}, &Room::feather1UseSTricorderOnHole },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::feather1UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, HOTSPOT_ROCKS, 0}, &Room::feather1UseSTricorderOnRocks },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_LEFT_VINE, 0}, &Room::feather1UseMTricorderOnVine },
+ { {ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_RIGHT_VINE, 0}, &Room::feather1UseMTricorderOnVine },
+ { {ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_MOSS, 0}, &Room::feather1UseMTricorderOnMoss },
+ { {ACTION_USE, OBJECT_IMTRICOR, HOTSPOT_HOLE, 0}, &Room::feather1UseMTricorderOnHole },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SNAKE, 0}, &Room::feather1UseMTricorderOnSnake },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::feather1UseMedkit },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::feather1TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::feather1TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::feather1TalkToRedshirt },
+ { {ACTION_WALK, HOTSPOT_EXIT, 0, 0}, &Room::feather1WalkToExit },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::feather1LookAnywhere },
+ { {ACTION_LOOK, OBJECT_SNAKE, 0, 0}, &Room::feather1LookAtSnake },
+ { {ACTION_LOOK, HOTSPOT_RIGHT_VINE, 0, 0}, &Room::feather1LookAtRightVine },
+ { {ACTION_LOOK, HOTSPOT_HOLE, 0, 0}, &Room::feather1LookAtHole },
+ { {ACTION_LOOK, HOTSPOT_MOSS, 0, 0}, &Room::feather1LookAtMoss },
+ { {ACTION_LOOK, HOTSPOT_ROCKS, 0, 0}, &Room::feather1LookAtRocks },
+ { {ACTION_LOOK, HOTSPOT_LIGHT, 0, 0}, &Room::feather1LookAtLight },
+ { {ACTION_LOOK, HOTSPOT_EYES_1, 0, 0}, &Room::feather1LookAtEyes },
+ { {ACTION_LOOK, HOTSPOT_EYES_2, 0, 0}, &Room::feather1LookAtEyes },
+ { {ACTION_LOOK, HOTSPOT_EYES_3, 0, 0}, &Room::feather1LookAtEyes },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::feather1LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::feather1LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::feather1LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::feather1LookAtRedshirt },
+ { {ACTION_LOOK, OBJECT_LEFT_VINE, 0, 0}, &Room::feather1LookAtLeftVine },
};
extern const int feather1NumActions = sizeof(feather1ActionList) / sizeof(RoomAction);
diff --git a/engines/startrek/rooms/function_map.h b/engines/startrek/rooms/function_map.h
index cec0eae87e..67b19d9f3a 100644
--- a/engines/startrek/rooms/function_map.h
+++ b/engines/startrek/rooms/function_map.h
@@ -31,1785 +31,1785 @@ namespace StarTrek {
// FIXME: calling a constructor in global scope not allowed in scummvm?
RoomAction demon0ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon0Tick1 },
- { Action(ACTION_TICK, 2, 0, 0), &Room::demon0Tick2 },
- { Action(ACTION_TICK, 60, 0, 0), &Room::demon0Tick60 },
- { Action(ACTION_TICK, 100, 0, 0), &Room::demon0Tick100 },
- { Action(ACTION_TICK, 140, 0, 0), &Room::demon0Tick140 },
-
- { Action(ACTION_TOUCHED_WARP, 0, 0, 0), &Room::demon0TouchedWarp0 },
-
- { Action(ACTION_WALK, 0x27, 0, 0), &Room::demon0WalkToBottomDoor },
- { Action(ACTION_WALK, 9, 0, 0), &Room::demon0WalkToBottomDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::demon0TouchedHotspot1 },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon0ReachedBottomDoor },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon0ReachedBottomDoor },
-
- { Action(ACTION_WALK, 0x26, 0, 0), &Room::demon0WalkToTopDoor },
- { Action(ACTION_WALK, 10, 0, 0), &Room::demon0WalkToTopDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::demon0TouchedHotspot0 },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon0ReachedTopDoor },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon0ReachedTopDoor },
-
- { Action(ACTION_TALK, 8, 0, 0), &Room::demon0TalkToPrelate },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::demon0LookAtPrelate },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x23, 0), &Room::demon0UsePhaserOnSnow },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x23, 0), &Room::demon0UsePhaserOnSnow },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x25, 0), &Room::demon0UsePhaserOnSign },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x25, 0), &Room::demon0UsePhaserOnSign },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x20, 0), &Room::demon0UsePhaserOnShelter },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::demon0UsePhaserOnPrelate },
-
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::demon0LookAtSign },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon0LookAtTrees },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon0LookAtTrees },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::demon0LookAtSnow },
- { Action(ACTION_LOOK, 0xff, 0, 0), &Room::demon0LookAnywhere },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::demon0LookAtBushes },
-
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon0LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon0LookAtMcCoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon0LookAtRedShirt },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon0LookAtSpock },
-
- { Action(ACTION_LOOK, 9, 0, 0), &Room::demon0LookAtShelter }, // Door 1
- { Action(ACTION_LOOK, 10, 0, 0), &Room::demon0LookAtShelter }, // Door 2
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon0LookAtShelter }, // Shelter itself
-
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon0TalkToKirk },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon0TalkToRedshirt },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon0TalkToMcCoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon0TalkToSpock },
-
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::demon0UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::demon0UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::demon0UseMTricorderOnPrelate },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon0Tick1 },
+ { {ACTION_TICK, 2, 0, 0}, &Room::demon0Tick2 },
+ { {ACTION_TICK, 60, 0, 0}, &Room::demon0Tick60 },
+ { {ACTION_TICK, 100, 0, 0}, &Room::demon0Tick100 },
+ { {ACTION_TICK, 140, 0, 0}, &Room::demon0Tick140 },
+
+ { {ACTION_TOUCHED_WARP, 0, 0, 0}, &Room::demon0TouchedWarp0 },
+
+ { {ACTION_WALK, 0x27, 0, 0}, &Room::demon0WalkToBottomDoor },
+ { {ACTION_WALK, 9, 0, 0}, &Room::demon0WalkToBottomDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::demon0TouchedHotspot1 },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon0ReachedBottomDoor },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon0ReachedBottomDoor },
+
+ { {ACTION_WALK, 0x26, 0, 0}, &Room::demon0WalkToTopDoor },
+ { {ACTION_WALK, 10, 0, 0}, &Room::demon0WalkToTopDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::demon0TouchedHotspot0 },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon0ReachedTopDoor },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon0ReachedTopDoor },
+
+ { {ACTION_TALK, 8, 0, 0}, &Room::demon0TalkToPrelate },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon0LookAtPrelate },
+
+ { {ACTION_USE, OBJECT_IPHASERS, 0x23, 0}, &Room::demon0UsePhaserOnSnow },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x23, 0}, &Room::demon0UsePhaserOnSnow },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x25, 0}, &Room::demon0UsePhaserOnSign },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x25, 0}, &Room::demon0UsePhaserOnSign },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x20, 0}, &Room::demon0UsePhaserOnShelter },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::demon0UsePhaserOnPrelate },
+
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::demon0LookAtSign },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon0LookAtTrees },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon0LookAtTrees },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::demon0LookAtSnow },
+ { {ACTION_LOOK, 0xff, 0, 0}, &Room::demon0LookAnywhere },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::demon0LookAtBushes },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon0LookAtKirk },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon0LookAtMcCoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon0LookAtRedShirt },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon0LookAtSpock },
+
+ { {ACTION_LOOK, 9, 0, 0}, &Room::demon0LookAtShelter }, // Door 1
+ { {ACTION_LOOK, 10, 0, 0}, &Room::demon0LookAtShelter }, // Door 2
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon0LookAtShelter }, // Shelter itself
+
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon0TalkToKirk },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon0TalkToRedshirt },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon0TalkToMcCoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon0TalkToSpock },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::demon0UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::demon0UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::demon0UseMTricorderOnPrelate },
};
RoomAction demon1ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon1Tick1 },
-
- { Action(ACTION_WALK, 0x25, 0, 0), &Room::demon1WalkToCave },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon1TouchedTopWarp },
- { Action(ACTION_TOUCHED_WARP, 0, 0, 0), &Room::demon1TouchedTopWarp },
- { Action(ACTION_TOUCHED_WARP, 1, 0, 0), &Room::demon1TouchedBottomWarp },
-
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::demon1Timer2Expired },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::demon1Timer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::demon1Timer3Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::demon1Timer1Expired },
-
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon1KlingonFinishedAimingWeapon },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon1KirkShot },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, -1, 0), &Room::demon1UsePhaserOnAnything },
- { Action(ACTION_USE, OBJECT_IPHASERS, -1, 0), &Room::demon1UsePhaserOnAnything },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::demon1UsePhaserOnKlingon1 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::demon1UsePhaserOnKlingon1 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::demon1ShootKlingon1 },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::demon1KlingonDropsHand },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 9, 0), &Room::demon1UsePhaserOnKlingon2 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::demon1UsePhaserOnKlingon2 },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::demon1ShootKlingon2 },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 10, 0), &Room::demon1UsePhaserOnKlingon3 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 10, 0), &Room::demon1UsePhaserOnKlingon3 },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::demon1ShootKlingon3 },
-
- { Action(ACTION_TIMER_EXPIRED, 6, 0, 0), &Room::demon1AllKlingonsDead },
- { Action(ACTION_TIMER_EXPIRED, 5, 0, 0), &Room::demon1Timer5Expired },
-
- { Action(ACTION_USE, OBJECT_IMTRICOR, 13, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon1UseSTricorderOnTulips },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::demon1UseSTricorderOnPods },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::demon1UseSTricorderOnCattails },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::demon1UseSTricorderOnFerns },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 13, 0), &Room::demon1UseSTricorderOnHand },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::demon1UseSTricorderOnKlingon1 },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 10, 0), &Room::demon1UseSTricorderOnKlingon2Or3 },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::demon1UseSTricorderOnKlingon2Or3 },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 8, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 10, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 9, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::demon1UseMTricorderOnKlingon },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::demon1UseSTricorderOnKlingon2Or3 }, // This is redundant
-
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::demon1UseMTricorderOnKirk },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::demon1UseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::demon1UseMTricorderOnRedshirt },
-
- { Action(ACTION_GET, 13, 0, 0), &Room::demon1GetHand },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon1ReachedHand },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::demon1PickedUpHand },
- { Action(ACTION_TIMER_EXPIRED, 4, 0, 0), &Room::demon1FinishedGettingHand },
-
- { Action(ACTION_LOOK, 8, 0, 0), &Room::demon1LookAtKlingon },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::demon1LookAtKlingon },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::demon1LookAtKlingon },
-
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon1LookAtCattails },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon1LookAtTulips },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon1LookAtPods },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::demon1LookAtFerns },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::demon1LookAtStream },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::demon1LookAtMine },
- { Action(ACTION_LOOK, 0x26, 0, 0), &Room::demon1LookAtMountain },
- { Action(ACTION_LOOK, 13, 0, 0), &Room::demon1LookAtHand },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::demon1LookAnywhere },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon1LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon1LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon1LookAtMcCoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon1LookAtRedshirt },
-
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon1TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon1TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon1TalkToMcCoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon1TalkToRedshirt },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon1Tick1 },
+
+ { {ACTION_WALK, 0x25, 0, 0}, &Room::demon1WalkToCave },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon1TouchedTopWarp },
+ { {ACTION_TOUCHED_WARP, 0, 0, 0}, &Room::demon1TouchedTopWarp },
+ { {ACTION_TOUCHED_WARP, 1, 0, 0}, &Room::demon1TouchedBottomWarp },
+
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::demon1Timer2Expired },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::demon1Timer0Expired },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::demon1Timer3Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::demon1Timer1Expired },
+
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon1KlingonFinishedAimingWeapon },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon1KirkShot },
+
+ { {ACTION_USE, OBJECT_IPHASERK, -1, 0}, &Room::demon1UsePhaserOnAnything },
+ { {ACTION_USE, OBJECT_IPHASERS, -1, 0}, &Room::demon1UsePhaserOnAnything },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::demon1UsePhaserOnKlingon1 },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::demon1UsePhaserOnKlingon1 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::demon1ShootKlingon1 },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::demon1KlingonDropsHand },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 9, 0}, &Room::demon1UsePhaserOnKlingon2 },
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::demon1UsePhaserOnKlingon2 },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::demon1ShootKlingon2 },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 10, 0}, &Room::demon1UsePhaserOnKlingon3 },
+ { {ACTION_USE, OBJECT_IPHASERS, 10, 0}, &Room::demon1UsePhaserOnKlingon3 },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::demon1ShootKlingon3 },
+
+ { {ACTION_TIMER_EXPIRED, 6, 0, 0}, &Room::demon1AllKlingonsDead },
+ { {ACTION_TIMER_EXPIRED, 5, 0, 0}, &Room::demon1Timer5Expired },
+
+ { {ACTION_USE, OBJECT_IMTRICOR, 13, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon1UseSTricorderOnTulips },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::demon1UseSTricorderOnPods },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::demon1UseSTricorderOnCattails },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::demon1UseSTricorderOnFerns },
+ { {ACTION_USE, OBJECT_ISTRICOR, 13, 0}, &Room::demon1UseSTricorderOnHand },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::demon1UseSTricorderOnKlingon1 },
+ { {ACTION_USE, OBJECT_ISTRICOR, 10, 0}, &Room::demon1UseSTricorderOnKlingon2Or3 },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::demon1UseSTricorderOnKlingon2Or3 },
+ { {ACTION_USE, OBJECT_IMEDKIT, 8, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_IMEDKIT, 10, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_IMEDKIT, 9, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::demon1UseMTricorderOnKlingon },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::demon1UseSTricorderOnKlingon2Or3 }, // This is redundant
+
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::demon1UseMTricorderOnKirk },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::demon1UseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::demon1UseMTricorderOnRedshirt },
+
+ { {ACTION_GET, 13, 0, 0}, &Room::demon1GetHand },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon1ReachedHand },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::demon1PickedUpHand },
+ { {ACTION_TIMER_EXPIRED, 4, 0, 0}, &Room::demon1FinishedGettingHand },
+
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon1LookAtKlingon },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::demon1LookAtKlingon },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::demon1LookAtKlingon },
+
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon1LookAtCattails },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon1LookAtTulips },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon1LookAtPods },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::demon1LookAtFerns },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::demon1LookAtStream },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::demon1LookAtMine },
+ { {ACTION_LOOK, 0x26, 0, 0}, &Room::demon1LookAtMountain },
+ { {ACTION_LOOK, 13, 0, 0}, &Room::demon1LookAtHand },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon1LookAnywhere },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon1LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon1LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon1LookAtMcCoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon1LookAtRedshirt },
+
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon1TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon1TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon1TalkToMcCoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon1TalkToRedshirt },
};
RoomAction demon2ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon2Tick1 },
- { Action(ACTION_WALK, 0x27, 0, 0), &Room::demon2WalkToCave },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon2ReachedCave },
- { Action(ACTION_TOUCHED_WARP, 1, 0, 0), &Room::demon2TouchedWarp1 },
-
- { Action(ACTION_LOOK, 0x27, 0, 0), &Room::demon2LookAtCave },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon2LookAtCave },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon2LookAtMountain },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon2LookAtMountain },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::demon2LookAtBerries },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::demon2LookAtFern },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::demon2LookAtMoss },
- { Action(ACTION_LOOK, 0x26, 0, 0), &Room::demon2LookAtLights },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::demon2LookAtAnything },
-
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon2LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon2LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon2LookAtMcCoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon2LookAtRedshirt },
-
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon2TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon2TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon2TalkToMcCoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon2TalkToRedshirt },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x23, 0), &Room::demon2UsePhaserOnBerries },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x23, 0), &Room::demon2UsePhaserOnBerries },
-
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::demon2UseSTricorderOnBerries },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x25, 0), &Room::demon2UseSTricorderOnMoss },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x24, 0), &Room::demon2UseSTricorderOnFern },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::demon2UseSTricorderOnCave },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon2UseSTricorderOnCave },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::demon2UseSTricorderOnCave },
-
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x23, 0), &Room::demon2UseMTricorderOnBerries },
- { Action(ACTION_GET, 0x23, 0, 0), &Room::demon2GetBerries },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon2ReachedBerries },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon2PickedUpBerries },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon2Tick1 },
+ { {ACTION_WALK, 0x27, 0, 0}, &Room::demon2WalkToCave },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon2ReachedCave },
+ { {ACTION_TOUCHED_WARP, 1, 0, 0}, &Room::demon2TouchedWarp1 },
+
+ { {ACTION_LOOK, 0x27, 0, 0}, &Room::demon2LookAtCave },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon2LookAtCave },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon2LookAtMountain },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon2LookAtMountain },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::demon2LookAtBerries },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::demon2LookAtFern },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::demon2LookAtMoss },
+ { {ACTION_LOOK, 0x26, 0, 0}, &Room::demon2LookAtLights },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon2LookAtAnything },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon2LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon2LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon2LookAtMcCoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon2LookAtRedshirt },
+
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon2TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon2TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon2TalkToMcCoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon2TalkToRedshirt },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 0x23, 0}, &Room::demon2UsePhaserOnBerries },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x23, 0}, &Room::demon2UsePhaserOnBerries },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::demon2UseSTricorderOnBerries },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x25, 0}, &Room::demon2UseSTricorderOnMoss },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x24, 0}, &Room::demon2UseSTricorderOnFern },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::demon2UseSTricorderOnCave },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon2UseSTricorderOnCave },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::demon2UseSTricorderOnCave },
+
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x23, 0}, &Room::demon2UseMTricorderOnBerries },
+ { {ACTION_GET, 0x23, 0, 0}, &Room::demon2GetBerries },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon2ReachedBerries },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon2PickedUpBerries },
};
RoomAction demon3ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon3Tick1 },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::demon3Timer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::demon3Timer1Expired },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::demon3Timer3Expired },
-
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon3FinishedAnimation1 },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon3FinishedAnimation2 },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::demon3FinishedWalking5 },
-
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::demon3McCoyInFiringPosition },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon3SpockInFiringPosition },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::demon3RedShirtInFiringPosition },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon3KirkInFiringPosition },
-
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::demon3FireAtBoulder },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_REDSHIRT, 0), &Room::demon3UsePhaserOnRedshirt },
- { Action(ACTION_USE, OBJECT_IPHASERK, OBJECT_REDSHIRT, 0), &Room::demon3UsePhaserOnRedshirt },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::demon3UseStunPhaserOnBoulder },
- { Action(ACTION_USE, OBJECT_IPHASERS, 10, 0), &Room::demon3UseStunPhaserOnBoulder },
- { Action(ACTION_USE, OBJECT_IPHASERS, 11, 0), &Room::demon3UseStunPhaserOnBoulder },
- { Action(ACTION_USE, OBJECT_IPHASERS, 12, 0), &Room::demon3UseStunPhaserOnBoulder },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 9, 0), &Room::demon3UsePhaserOnBoulder1 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 10, 0), &Room::demon3UsePhaserOnBoulder2 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 11, 0), &Room::demon3UsePhaserOnBoulder3 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 12, 0), &Room::demon3UsePhaserOnBoulder4 },
-
- { Action(ACTION_USE, OBJECT_ISTRICOR, 13, 0), &Room::demon3UseSTricorderOnMiner },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::demon3UseSTricorderOnPanel },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::demon3UseSTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 10, 0), &Room::demon3UseSTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 11, 0), &Room::demon3UseSTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 12, 0), &Room::demon3UseSTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::demon3UseMTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::demon3UseMTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 11, 0), &Room::demon3UseMTricorderOnBoulder },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 12, 0), &Room::demon3UseMTricorderOnBoulder },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::demon3UseCrewmanOnPanel },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::demon3UseCrewmanOnPanel },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::demon3UseCrewmanOnPanel },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::demon3UseRedshirtOnPanel },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::demon3RedshirtReachedPanel },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::demon3RedshirtUsedPanel },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::demon3RedshirtElectrocuted },
-
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon3UseSTricorderOnDoor },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::demon3UseSTricorderOnAnything },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 14, 0), &Room::demon3UseMTricorderOnDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::demon3UseMTricorderOnDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x22, 0), &Room::demon3UseMTricorderOnDoor },
- { Action(ACTION_USE, OBJECT_IPHASERS, 14, 0), &Room::demon3UsePhaserOnDoor },
- { Action(ACTION_USE, OBJECT_IPHASERK, 14, 0), &Room::demon3UsePhaserOnDoor },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x21, 0), &Room::demon3UsePhaserOnDoor },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x21, 0), &Room::demon3UsePhaserOnDoor },
-
- { Action(ACTION_USE, OBJECT_IHAND, 0x20, 0), &Room::demon3UseHandOnPanel },
- { Action(ACTION_FINISHED_WALKING, 7, 0, 0), &Room::demon3KirkReachedHandPanel },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::demon3KirkUsedHandPanel },
-
- { Action(ACTION_USE, OBJECT_IMTRICOR, 13, 0), &Room::demon3UseMTricorderOnMiner },
- { Action(ACTION_USE, OBJECT_MCCOY, 13, 0), &Room::demon3UseMedkitOnMiner },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 13, 0), &Room::demon3UseMedkitOnMiner },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::demon3McCoyReachedMiner },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::demon3McCoyFinishedHealingMiner },
-
- { Action(ACTION_GET, 13, 0, 0), &Room::demon3GetMiner },
- { Action(ACTION_TALK, 13, 0, 0), &Room::demon3TalkToMiner },
-
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon3TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon3TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon3TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon3TalkToRedshirt },
-
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon3LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon3LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon3LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon3LookAtRedshirt },
-
- { Action(ACTION_LOOK, -1, 0, 0), &Room::demon3LookAnywhere },
- { Action(ACTION_LOOK, 13, 0, 0), &Room::demon3LookAtMiner },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::demon3LookAtBoulder1 },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::demon3LookAtBoulder2 },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::demon3LookAtBoulder3 },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::demon3LookAtBoulder4 },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon3LookAtStructure },
- { Action(ACTION_LOOK, 14, 0, 0), &Room::demon3LookAtDoor },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon3LookAtDoor },
- { Action(ACTION_LOOK, 15, 0, 0), &Room::demon3LookAtPanel },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon3LookAtPanel },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::demon3LookAtLight },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon3Tick1 },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::demon3Timer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::demon3Timer1Expired },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::demon3Timer3Expired },
+
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon3FinishedAnimation1 },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon3FinishedAnimation2 },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::demon3FinishedWalking5 },
+
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::demon3McCoyInFiringPosition },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon3SpockInFiringPosition },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::demon3RedShirtInFiringPosition },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon3KirkInFiringPosition },
+
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::demon3FireAtBoulder },
+
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_REDSHIRT, 0}, &Room::demon3UsePhaserOnRedshirt },
+ { {ACTION_USE, OBJECT_IPHASERK, OBJECT_REDSHIRT, 0}, &Room::demon3UsePhaserOnRedshirt },
+
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::demon3UseStunPhaserOnBoulder },
+ { {ACTION_USE, OBJECT_IPHASERS, 10, 0}, &Room::demon3UseStunPhaserOnBoulder },
+ { {ACTION_USE, OBJECT_IPHASERS, 11, 0}, &Room::demon3UseStunPhaserOnBoulder },
+ { {ACTION_USE, OBJECT_IPHASERS, 12, 0}, &Room::demon3UseStunPhaserOnBoulder },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 9, 0}, &Room::demon3UsePhaserOnBoulder1 },
+ { {ACTION_USE, OBJECT_IPHASERK, 10, 0}, &Room::demon3UsePhaserOnBoulder2 },
+ { {ACTION_USE, OBJECT_IPHASERK, 11, 0}, &Room::demon3UsePhaserOnBoulder3 },
+ { {ACTION_USE, OBJECT_IPHASERK, 12, 0}, &Room::demon3UsePhaserOnBoulder4 },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, 13, 0}, &Room::demon3UseSTricorderOnMiner },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::demon3UseSTricorderOnPanel },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::demon3UseSTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_ISTRICOR, 10, 0}, &Room::demon3UseSTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_ISTRICOR, 11, 0}, &Room::demon3UseSTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_ISTRICOR, 12, 0}, &Room::demon3UseSTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::demon3UseMTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::demon3UseMTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_IMTRICOR, 11, 0}, &Room::demon3UseMTricorderOnBoulder },
+ { {ACTION_USE, OBJECT_IMTRICOR, 12, 0}, &Room::demon3UseMTricorderOnBoulder },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::demon3UseCrewmanOnPanel },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::demon3UseCrewmanOnPanel },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::demon3UseCrewmanOnPanel },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::demon3UseRedshirtOnPanel },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::demon3RedshirtReachedPanel },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::demon3RedshirtUsedPanel },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::demon3RedshirtElectrocuted },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon3UseSTricorderOnDoor },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::demon3UseSTricorderOnAnything },
+ { {ACTION_USE, OBJECT_IMTRICOR, 14, 0}, &Room::demon3UseMTricorderOnDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::demon3UseMTricorderOnDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x22, 0}, &Room::demon3UseMTricorderOnDoor },
+ { {ACTION_USE, OBJECT_IPHASERS, 14, 0}, &Room::demon3UsePhaserOnDoor },
+ { {ACTION_USE, OBJECT_IPHASERK, 14, 0}, &Room::demon3UsePhaserOnDoor },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x21, 0}, &Room::demon3UsePhaserOnDoor },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x21, 0}, &Room::demon3UsePhaserOnDoor },
+
+ { {ACTION_USE, OBJECT_IHAND, 0x20, 0}, &Room::demon3UseHandOnPanel },
+ { {ACTION_FINISHED_WALKING, 7, 0, 0}, &Room::demon3KirkReachedHandPanel },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::demon3KirkUsedHandPanel },
+
+ { {ACTION_USE, OBJECT_IMTRICOR, 13, 0}, &Room::demon3UseMTricorderOnMiner },
+ { {ACTION_USE, OBJECT_MCCOY, 13, 0}, &Room::demon3UseMedkitOnMiner },
+ { {ACTION_USE, OBJECT_IMEDKIT, 13, 0}, &Room::demon3UseMedkitOnMiner },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::demon3McCoyReachedMiner },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::demon3McCoyFinishedHealingMiner },
+
+ { {ACTION_GET, 13, 0, 0}, &Room::demon3GetMiner },
+ { {ACTION_TALK, 13, 0, 0}, &Room::demon3TalkToMiner },
+
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon3TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon3TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon3TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon3TalkToRedshirt },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon3LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon3LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon3LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon3LookAtRedshirt },
+
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon3LookAnywhere },
+ { {ACTION_LOOK, 13, 0, 0}, &Room::demon3LookAtMiner },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::demon3LookAtBoulder1 },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::demon3LookAtBoulder2 },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::demon3LookAtBoulder3 },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::demon3LookAtBoulder4 },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon3LookAtStructure },
+ { {ACTION_LOOK, 14, 0, 0}, &Room::demon3LookAtDoor },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon3LookAtDoor },
+ { {ACTION_LOOK, 15, 0, 0}, &Room::demon3LookAtPanel },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon3LookAtPanel },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon3LookAtLight },
};
RoomAction demon4ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon4Tick1 },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon4FinishedAnimation1 },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon4FinishedAnimation2 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::demon4FinishedAnimation3 },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::demon4Timer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::demon4Timer1Expired },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::demon4CrewmanReachedBeamoutPosition },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::demon4Timer2Expired },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::demon4Timer3Expired },
- { Action(ACTION_TIMER_EXPIRED, 4, 0, 0), &Room::demon4Timer4Expired },
- { Action(ACTION_TIMER_EXPIRED, 5, 0, 0), &Room::demon4Timer5Expired },
- { Action(ACTION_TIMER_EXPIRED, 6, 0, 0), &Room::demon4Timer6Expired },
-
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::demon4UsePhaserOnNauian },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::demon4UsePhaserOnNauian },
- { Action(ACTION_USE, OBJECT_IMETAL, 0x22, 0), &Room::demon4UseMetalOnSecurityEquipment },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::demon4KirkReachedSecurityEquipment },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::demon4KirkFinishedUsingSecurityEquipment },
- { Action(ACTION_USE, OBJECT_IMETAL, 8, 0), &Room::demon4UseMetalOnNauian },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon4KirkReachedNauian },
- { Action(ACTION_USE, OBJECT_ISKULL, 8, 0), &Room::demon4UseSkullOnNauian },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon4KirkReachedNauianWithSkull },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x21, 0), &Room::demon4UsePhaserOnPanel },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x20, 0), &Room::demon4UsePhaserOnPattern },
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0), &Room::demon4UsePhaserOnMccoy },
-
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::demon4TalkToNauian },
- { Action(ACTION_TALK, 8, 0, 0), &Room::demon4TalkToNauian },
-
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon4LookAtPattern },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::demon4LookAtAlien },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::demon4LookAnywhere },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon4LookAtSecurityEquipment },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::demon4LookAtFloor },
-
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon4LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon4LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon4LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon4LookAtRedshirt },
-
- { Action(ACTION_LOOK, 10, 0, 0), &Room::demon4LookAtChamber },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon4LookAtPanel },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x21, 0), &Room::demon4UseKirkOnPanel },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::demon4UseSpockOnPanel },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::demon4UseMccoyOnPanel },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x21, 0), &Room::demon4UseRedshirtOnPanel },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::demon4CrewmanReachedPanel },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon4TalkToKirk },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon4TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon4TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon4TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 10, 0), &Room::demon4UseSTricorderOnChamber },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::demon4UseSTricorderOnPattern },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x20, 0), &Room::demon4UseMTricorderOnPattern },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon4UseSTricorderOnPanel },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::demon4UseMTricorderOnPanel },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::demon4UseSTricorderOnAnything },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::demon4UseSTricorderOnAnything },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x23, 0), &Room::demon4UseMTricorderOnAnything },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::demon4UseMTricorderOnAnything },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::demon4UseSTricorderOnNauian },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::demon4UseMTricorderOnNauian },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::demon4UseSTricorderOnSecurityEquipment },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x22, 0), &Room::demon4UseMTricorderOnSecurityEquipment },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon4Tick1 },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon4FinishedAnimation1 },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon4FinishedAnimation2 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::demon4FinishedAnimation3 },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::demon4Timer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::demon4Timer1Expired },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::demon4CrewmanReachedBeamoutPosition },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::demon4Timer2Expired },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::demon4Timer3Expired },
+ { {ACTION_TIMER_EXPIRED, 4, 0, 0}, &Room::demon4Timer4Expired },
+ { {ACTION_TIMER_EXPIRED, 5, 0, 0}, &Room::demon4Timer5Expired },
+ { {ACTION_TIMER_EXPIRED, 6, 0, 0}, &Room::demon4Timer6Expired },
+
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::demon4UsePhaserOnNauian },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::demon4UsePhaserOnNauian },
+ { {ACTION_USE, OBJECT_IMETAL, 0x22, 0}, &Room::demon4UseMetalOnSecurityEquipment },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::demon4KirkReachedSecurityEquipment },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::demon4KirkFinishedUsingSecurityEquipment },
+ { {ACTION_USE, OBJECT_IMETAL, 8, 0}, &Room::demon4UseMetalOnNauian },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon4KirkReachedNauian },
+ { {ACTION_USE, OBJECT_ISKULL, 8, 0}, &Room::demon4UseSkullOnNauian },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon4KirkReachedNauianWithSkull },
+
+ { {ACTION_USE, OBJECT_IPHASERS, 0x21, 0}, &Room::demon4UsePhaserOnPanel },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x20, 0}, &Room::demon4UsePhaserOnPattern },
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0}, &Room::demon4UsePhaserOnMccoy },
+
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::demon4TalkToNauian },
+ { {ACTION_TALK, 8, 0, 0}, &Room::demon4TalkToNauian },
+
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon4LookAtPattern },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon4LookAtAlien },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon4LookAnywhere },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon4LookAtSecurityEquipment },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::demon4LookAtFloor },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon4LookAtKirk },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon4LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon4LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon4LookAtRedshirt },
+
+ { {ACTION_LOOK, 10, 0, 0}, &Room::demon4LookAtChamber },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon4LookAtPanel },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x21, 0}, &Room::demon4UseKirkOnPanel },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::demon4UseSpockOnPanel },
+ { {ACTION_USE, OBJECT_MCCOY, 0x21, 0}, &Room::demon4UseMccoyOnPanel },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x21, 0}, &Room::demon4UseRedshirtOnPanel },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::demon4CrewmanReachedPanel },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon4TalkToKirk },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon4TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon4TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon4TalkToRedshirt },
+ { {ACTION_USE, OBJECT_ISTRICOR, 10, 0}, &Room::demon4UseSTricorderOnChamber },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::demon4UseSTricorderOnPattern },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x20, 0}, &Room::demon4UseMTricorderOnPattern },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon4UseSTricorderOnPanel },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::demon4UseMTricorderOnPanel },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::demon4UseSTricorderOnAnything },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::demon4UseSTricorderOnAnything },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x23, 0}, &Room::demon4UseMTricorderOnAnything },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::demon4UseMTricorderOnAnything },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::demon4UseSTricorderOnNauian },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::demon4UseMTricorderOnNauian },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::demon4UseSTricorderOnSecurityEquipment },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x22, 0}, &Room::demon4UseMTricorderOnSecurityEquipment },
};
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 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon5Tick1 },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::demon5WalkToDoor },
+ { {ACTION_WALK, 12, 0, 0}, &Room::demon5WalkToDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::demon5TouchedDoorOpenTrigger },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon5DoorOpenedOrReachedDoor },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon5DoorOpenedOrReachedDoor },
+
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon5UseSTricorderOnCrate },
+ { {ACTION_USE, OBJECT_IPHASERK, -1, 0}, &Room::demon5UsePhaserOnAnything },
+ { {ACTION_USE, OBJECT_IPHASERS, -1, 0}, &Room::demon5UsePhaserOnAnything },
+
+ { {ACTION_USE, OBJECT_IHAND, 11, 0}, &Room::demon5UseHandOnStephen },
+ { {ACTION_USE, OBJECT_IBERRY, 11, 0}, &Room::demon5UseBerryOnStephen },
+ { {ACTION_USE, OBJECT_IDETOXIN, 9, 0}, &Room::demon5UseHypoDytoxinOnChub },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon5MccoyReachedChub },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon5MccoyHealedChub },
+
+ { {ACTION_USE, OBJECT_IDETOXIN, -1, 0}, &Room::demon5UseHypoDytoxinOnAnything },
+ { {ACTION_USE, OBJECT_IBERRY, 9, 0}, &Room::demon5UseBerryOnChub },
+
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon5LookAtRoberts },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::demon5LookAtGrisnash },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::demon5LookAtStephen },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon5LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon5LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon5LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon5LookAtRedshirt },
+
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon5LookAtMountain },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon5LookAtCrate },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon5LookAnywhere },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::demon5LookAtChub },
+
+ { {ACTION_TALK, 8, 0, 0}, &Room::demon5TalkToRoberts },
+ { {ACTION_TALK, 9, 0, 0}, &Room::demon5TalkToChub },
+ { {ACTION_TALK, 10, 0, 0}, &Room::demon5TalkToGrisnash },
+ { {ACTION_TALK, 11, 0, 0}, &Room::demon5TalkToStephen },
+
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon5TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon5TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon5TalkToRedshirt },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon5TalkToMccoy },
+
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::demon5UseMTricorderOnRoberts },
+ { {ACTION_USE, OBJECT_IMEDKIT, 9, 0}, &Room::demon5UseMTricorderOnChub },
+ { {ACTION_USE, OBJECT_MCCOY, 9, 0}, &Room::demon5UseMTricorderOnChub },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::demon5UseMTricorderOnChub },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::demon5UseMTricorderOnGrisnash },
+ { {ACTION_USE, OBJECT_IMTRICOR, 11, 0}, &Room::demon5UseMTricorderOnStephen },
+
+ { {ACTION_GET, 0x21, 0, 0}, &Room::demon5GetCrate },
};
RoomAction demon6ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::demon6Tick1 },
- { Action(ACTION_TICK, 30, 0, 0), &Room::demon6Tick30 },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::demon6SpockReachedComputer },
-
- { Action(ACTION_WALK, 0x26, 0, 0), &Room::demon6WalkToDoor },
- { Action(ACTION_WALK, 10, 0, 0), &Room::demon6WalkToDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::demon6TouchedDoorOpenTrigger },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::demon6DoorOpenedOrReachedDoor },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::demon6DoorOpenedOrReachedDoor },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::demon6UsePhaserOnStephen },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::demon6UsePhaserOnStephen },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x20, 0), &Room::demon6UsePhaserOnCase },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x20, 0), &Room::demon6UsePhaserOnCase },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::demon6LookAtWorkspace },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::demon6LookAtCase },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::demon6LookAtTable },
- { Action(ACTION_LOOK, OBJECT_IMINERAL, 0, 0), &Room::demon6LookAtMineral },
- { Action(ACTION_LOOK, OBJECT_ISHELLS, 0, 0), &Room::demon6LookAtShells },
- { Action(ACTION_LOOK, OBJECT_ISKULL, 0, 0), &Room::demon6LookAtSkull },
- { Action(ACTION_LOOK, OBJECT_IMETAL, 0, 0), &Room::demon6LookAtMetal },
- { Action(ACTION_LOOK, OBJECT_IMETEOR, 0, 0), &Room::demon6LookAtMeteor },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::demon6LookAtMountain },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::demon6LookAtSynthesizer },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::demon6LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::demon6LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::demon6LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::demon6LookAtRedshirt },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::demon6LookAtComputer },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::demon6LookAtComputer },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::demon6LookAnywhere },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::demon6LookAtStephen },
-
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::demon6TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::demon6TalkToSpock },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::demon6TalkToKirk },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::demon6TalkToRedshirt },
- { Action(ACTION_TALK, 8, 0, 0), &Room::demon6TalkToStephen },
- { Action(ACTION_USE, OBJECT_IBERRY, 8, 0), &Room::demon6UseBerryOnStephen },
- { Action(ACTION_USE, OBJECT_IBERRY, 0x23, 0), &Room::demon6UseBerryOnSynthesizer },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::demon6MccoyReachedSynthesizer },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::demon6FinishedMakingHypoDytoxin },
- { Action(ACTION_USE, OBJECT_IHAND, 0x22, 0), &Room::demon6UseHandOnWorkspace },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::demon6SpockReachedWorkspace },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::demon6SpockFinishedRepairingHand },
- { Action(ACTION_USE, -1, 0x22, 0), &Room::demon6UseAnythingOnWorkspace },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::demon6UseCrewmanOnCase },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::demon6UseCrewmanOnCase },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::demon6UseCrewmanOnCase },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::demon6UseCrewmanOnCase },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x21, 0), &Room::demon6UseKirkOnComputer },
- { Action(ACTION_USE, OBJECT_KIRK, 9, 0), &Room::demon6UseKirkOnComputer },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::demon6UseMccoyOnComputer },
- { Action(ACTION_USE, OBJECT_MCCOY, 9, 0), &Room::demon6UseMccoyOnComputer },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x21, 0), &Room::demon6UseRedshirtOnComputer },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 9, 0), &Room::demon6UseRedshirtOnComputer },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::demon6UseSpockOnComputer },
- { Action(ACTION_USE, OBJECT_SPOCK, 9, 0), &Room::demon6UseSpockOnComputer },
- { Action(ACTION_USE, OBJECT_IMINERAL, 8, 0), &Room::demon6UseMineralOnStephen },
- { Action(ACTION_USE, OBJECT_ISHELLS, 8, 0), &Room::demon6UseShellsOnStephen },
- { Action(ACTION_USE, OBJECT_IMETEOR, 8, 0), &Room::demon6UseMeteorOnStephen },
- { Action(ACTION_USE, OBJECT_ISKULL, 8, 0), &Room::demon6UseSkullOnStephen },
- { Action(ACTION_USE, OBJECT_IMETAL, 8, 0), &Room::demon6UseMetalOnStephen },
- { Action(ACTION_USE, OBJECT_IHAND, 8, 0), &Room::demon6UseHandOnStephen },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::demon6UseMTricoderOnStephen },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x25, 0), &Room::demon6UseSTricoderOnTable },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::demon6UseSTricoderOnComputer },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::demon6UseSTricoderOnComputer },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMINERAL, 0), &Room::demon6UseSTricoderOnMineral },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_ISHELLS, 0), &Room::demon6UseSTricoderOnShells },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_ISKULL, 0), &Room::demon6UseSTricoderOnSkull },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMETAL, 0), &Room::demon6UseSTricoderOnMetal },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMETEOR, 0), &Room::demon6UseSTricoderOnMeteor },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::demon6UseSTricoderOnCase },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::demon6UseSTricoderOnSynthesizer },
- { Action(ACTION_GET, 0x20, 0, 0), &Room::demon6GetCase },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::demon6KirkReachedCase },
+ { {ACTION_TICK, 1, 0, 0}, &Room::demon6Tick1 },
+ { {ACTION_TICK, 30, 0, 0}, &Room::demon6Tick30 },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::demon6SpockReachedComputer },
+
+ { {ACTION_WALK, 0x26, 0, 0}, &Room::demon6WalkToDoor },
+ { {ACTION_WALK, 10, 0, 0}, &Room::demon6WalkToDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::demon6TouchedDoorOpenTrigger },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::demon6DoorOpenedOrReachedDoor },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::demon6DoorOpenedOrReachedDoor },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::demon6UsePhaserOnStephen },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::demon6UsePhaserOnStephen },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x20, 0}, &Room::demon6UsePhaserOnCase },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x20, 0}, &Room::demon6UsePhaserOnCase },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::demon6LookAtWorkspace },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::demon6LookAtCase },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::demon6LookAtTable },
+ { {ACTION_LOOK, OBJECT_IMINERAL, 0, 0}, &Room::demon6LookAtMineral },
+ { {ACTION_LOOK, OBJECT_ISHELLS, 0, 0}, &Room::demon6LookAtShells },
+ { {ACTION_LOOK, OBJECT_ISKULL, 0, 0}, &Room::demon6LookAtSkull },
+ { {ACTION_LOOK, OBJECT_IMETAL, 0, 0}, &Room::demon6LookAtMetal },
+ { {ACTION_LOOK, OBJECT_IMETEOR, 0, 0}, &Room::demon6LookAtMeteor },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::demon6LookAtMountain },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::demon6LookAtSynthesizer },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::demon6LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::demon6LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::demon6LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::demon6LookAtRedshirt },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::demon6LookAtComputer },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::demon6LookAtComputer },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::demon6LookAnywhere },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::demon6LookAtStephen },
+
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::demon6TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::demon6TalkToSpock },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::demon6TalkToKirk },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::demon6TalkToRedshirt },
+ { {ACTION_TALK, 8, 0, 0}, &Room::demon6TalkToStephen },
+ { {ACTION_USE, OBJECT_IBERRY, 8, 0}, &Room::demon6UseBerryOnStephen },
+ { {ACTION_USE, OBJECT_IBERRY, 0x23, 0}, &Room::demon6UseBerryOnSynthesizer },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::demon6MccoyReachedSynthesizer },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::demon6FinishedMakingHypoDytoxin },
+ { {ACTION_USE, OBJECT_IHAND, 0x22, 0}, &Room::demon6UseHandOnWorkspace },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::demon6SpockReachedWorkspace },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::demon6SpockFinishedRepairingHand },
+ { {ACTION_USE, -1, 0x22, 0}, &Room::demon6UseAnythingOnWorkspace },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::demon6UseCrewmanOnCase },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::demon6UseCrewmanOnCase },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::demon6UseCrewmanOnCase },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::demon6UseCrewmanOnCase },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x21, 0}, &Room::demon6UseKirkOnComputer },
+ { {ACTION_USE, OBJECT_KIRK, 9, 0}, &Room::demon6UseKirkOnComputer },
+ { {ACTION_USE, OBJECT_MCCOY, 0x21, 0}, &Room::demon6UseMccoyOnComputer },
+ { {ACTION_USE, OBJECT_MCCOY, 9, 0}, &Room::demon6UseMccoyOnComputer },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x21, 0}, &Room::demon6UseRedshirtOnComputer },
+ { {ACTION_USE, OBJECT_REDSHIRT, 9, 0}, &Room::demon6UseRedshirtOnComputer },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::demon6UseSpockOnComputer },
+ { {ACTION_USE, OBJECT_SPOCK, 9, 0}, &Room::demon6UseSpockOnComputer },
+ { {ACTION_USE, OBJECT_IMINERAL, 8, 0}, &Room::demon6UseMineralOnStephen },
+ { {ACTION_USE, OBJECT_ISHELLS, 8, 0}, &Room::demon6UseShellsOnStephen },
+ { {ACTION_USE, OBJECT_IMETEOR, 8, 0}, &Room::demon6UseMeteorOnStephen },
+ { {ACTION_USE, OBJECT_ISKULL, 8, 0}, &Room::demon6UseSkullOnStephen },
+ { {ACTION_USE, OBJECT_IMETAL, 8, 0}, &Room::demon6UseMetalOnStephen },
+ { {ACTION_USE, OBJECT_IHAND, 8, 0}, &Room::demon6UseHandOnStephen },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::demon6UseMTricoderOnStephen },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x25, 0}, &Room::demon6UseSTricoderOnTable },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::demon6UseSTricoderOnComputer },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::demon6UseSTricoderOnComputer },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMINERAL, 0}, &Room::demon6UseSTricoderOnMineral },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_ISHELLS, 0}, &Room::demon6UseSTricoderOnShells },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_ISKULL, 0}, &Room::demon6UseSTricoderOnSkull },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMETAL, 0}, &Room::demon6UseSTricoderOnMetal },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_IMETEOR, 0}, &Room::demon6UseSTricoderOnMeteor },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::demon6UseSTricoderOnCase },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::demon6UseSTricoderOnSynthesizer },
+ { {ACTION_GET, 0x20, 0, 0}, &Room::demon6GetCase },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::demon6KirkReachedCase },
};
RoomAction tug0ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::tug0Tick1 },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::tug0LookAtEngineer },
- { Action(ACTION_GET, 8, 0, 0), &Room::tug0GetEngineer },
-
- { Action(ACTION_LOOK, 11, 0, 0), &Room::tug0LookAtControls },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::tug0LookAtControls },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::tug0UseSpockOnControls },
- { Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::tug0SpockReachedControlsToExamine },
- { Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::tug0SpockExaminedControls },
- { Action(ACTION_USE, OBJECT_IRT, 0x21, 0), &Room::tug0UseTransmogrifierWithoutBitOnControls },
- { Action(ACTION_USE, OBJECT_IRTWB, 0x21, 0), &Room::tug0UseTransmogrifierWithBitOnControls },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::tug0SpockReachedControlsWithTransmogrifier },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::tug0SpockFinishedUsingTransmogrifier },
- { Action(ACTION_FINISHED_ANIMATION, 22, 0, 0), &Room::tug0TransporterScreenFullyLit },
- { Action(ACTION_USE, OBJECT_IWIRSCRP, 0x21, 0), &Room::tug0UseWireScrapsOnControls },
- { Action(ACTION_USE, OBJECT_IWIRING, 0x21, 0), &Room::tug0UseWireOnControls },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::tug0SpockReachedControlsWithWire },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::tug0SpockFinishedUsingWire },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 8, 0), &Room::tug0UseMedkitOnEngineer },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::tug0MccoyReachedEngineer },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::tug0MccoyHealedEngineer },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::tug0EngineerGotUp },
- { Action(ACTION_GET, 9, 0, 0), &Room::tug0GetTransmogrifier },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::tug0KirkReachedToolbox },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::tug0KirkGotTransmogrifier },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::tug0LookAtToolbox },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0), &Room::tug0UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0), &Room::tug0UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0), &Room::tug0UseWelderOnWireScraps },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0), &Room::tug0UseWelderOnMetalScraps },
- { Action(ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0), &Room::tug0UseCombBitOnTransmogrifier },
-
- { Action(ACTION_USE, OBJECT_SPOCK, 11, 0), &Room::tug0UseTransporter },
- { Action(ACTION_USE, OBJECT_KIRK, 0x22, 0), &Room::tug0UseTransporter },
- { Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::tug0SpockReachedControlsToTransport },
- { Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::tug0SpockPreparedTransporter },
- { Action(ACTION_FINISHED_WALKING, 20, 0, 0), &Room::tug0SpockReachedTransporter },
- { Action(ACTION_FINISHED_ANIMATION, 21, 0, 0), &Room::tug0FinishedTransporting },
-
- { Action(ACTION_USE, OBJECT_IBOMB, 0x22, 0), &Room::tug0UseBombOnTransporter },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::tug0KirkReachedTransporter },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::tug0KirkPlacedBomb },
- { Action(ACTION_FINISHED_WALKING, 15, 0, 0), &Room::tug0SpockReachedControlsForBomb },
- { Action(ACTION_FINISHED_ANIMATION, 19, 0, 0), &Room::tug0SpockBeginsBeamingBomb },
- { Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::tug0SpockFinishesBeamingBomb },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::tug0BombExploded },
-
- { Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::tug0UseMTricorderOnControls },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::tug0UseMTricorderOnControls },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::tug0UseSTricorderOnControls },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::tug0UseMTricorderOnEngineer },
- { Action(ACTION_FINISHED_WALKING, 24, 0, 0), &Room::tug0MccoyReachedEngineerToScan },
- { Action(ACTION_FINISHED_ANIMATION, 25, 0, 0), &Room::tug0MccoyFinishedScanningEngineer },
- { Action(ACTION_USE, OBJECT_SPOCK, 8, 0), &Room::tug0UseSTricorderOnEngineer },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::tug0UseSTricorderOnEngineer },
- { Action(ACTION_WALK, 0x23, 0, 0), &Room::tug0WalkToDoor },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::tug0LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::tug0LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::tug0LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::tug0LookAtRedshirt },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::tug0LookAtTransporter },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::tug0LookAtDoor },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::tug0TalkToKirk },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::tug0TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::tug0TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::tug0TalkToRedshirt },
- { Action(ACTION_TALK, 8, 0, 0), &Room::tug0TalkToEngineer },
- { Action(ACTION_USE, OBJECT_ICOMM, 0, 0), &Room::tug0UseCommunicator },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::tug0LookAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::tug0UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::tug0UseMTricorderAnywhere },
+ { {ACTION_TICK, 1, 0, 0}, &Room::tug0Tick1 },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::tug0LookAtEngineer },
+ { {ACTION_GET, 8, 0, 0}, &Room::tug0GetEngineer },
+
+ { {ACTION_LOOK, 11, 0, 0}, &Room::tug0LookAtControls },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::tug0LookAtControls },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::tug0UseSpockOnControls },
+ { {ACTION_FINISHED_WALKING, 16, 0, 0}, &Room::tug0SpockReachedControlsToExamine },
+ { {ACTION_FINISHED_ANIMATION, 17, 0, 0}, &Room::tug0SpockExaminedControls },
+ { {ACTION_USE, OBJECT_IRT, 0x21, 0}, &Room::tug0UseTransmogrifierWithoutBitOnControls },
+ { {ACTION_USE, OBJECT_IRTWB, 0x21, 0}, &Room::tug0UseTransmogrifierWithBitOnControls },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::tug0SpockReachedControlsWithTransmogrifier },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::tug0SpockFinishedUsingTransmogrifier },
+ { {ACTION_FINISHED_ANIMATION, 22, 0, 0}, &Room::tug0TransporterScreenFullyLit },
+ { {ACTION_USE, OBJECT_IWIRSCRP, 0x21, 0}, &Room::tug0UseWireScrapsOnControls },
+ { {ACTION_USE, OBJECT_IWIRING, 0x21, 0}, &Room::tug0UseWireOnControls },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::tug0SpockReachedControlsWithWire },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::tug0SpockFinishedUsingWire },
+ { {ACTION_USE, OBJECT_IMEDKIT, 8, 0}, &Room::tug0UseMedkitOnEngineer },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::tug0MccoyReachedEngineer },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::tug0MccoyHealedEngineer },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::tug0EngineerGotUp },
+ { {ACTION_GET, 9, 0, 0}, &Room::tug0GetTransmogrifier },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::tug0KirkReachedToolbox },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::tug0KirkGotTransmogrifier },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::tug0LookAtToolbox },
+
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0}, &Room::tug0UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0}, &Room::tug0UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0}, &Room::tug0UseWelderOnWireScraps },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0}, &Room::tug0UseWelderOnMetalScraps },
+ { {ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0}, &Room::tug0UseCombBitOnTransmogrifier },
+
+ { {ACTION_USE, OBJECT_SPOCK, 11, 0}, &Room::tug0UseTransporter },
+ { {ACTION_USE, OBJECT_KIRK, 0x22, 0}, &Room::tug0UseTransporter },
+ { {ACTION_FINISHED_WALKING, 14, 0, 0}, &Room::tug0SpockReachedControlsToTransport },
+ { {ACTION_FINISHED_ANIMATION, 18, 0, 0}, &Room::tug0SpockPreparedTransporter },
+ { {ACTION_FINISHED_WALKING, 20, 0, 0}, &Room::tug0SpockReachedTransporter },
+ { {ACTION_FINISHED_ANIMATION, 21, 0, 0}, &Room::tug0FinishedTransporting },
+
+ { {ACTION_USE, OBJECT_IBOMB, 0x22, 0}, &Room::tug0UseBombOnTransporter },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::tug0KirkReachedTransporter },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::tug0KirkPlacedBomb },
+ { {ACTION_FINISHED_WALKING, 15, 0, 0}, &Room::tug0SpockReachedControlsForBomb },
+ { {ACTION_FINISHED_ANIMATION, 19, 0, 0}, &Room::tug0SpockBeginsBeamingBomb },
+ { {ACTION_FINISHED_ANIMATION, 12, 0, 0}, &Room::tug0SpockFinishesBeamingBomb },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::tug0BombExploded },
+
+ { {ACTION_USE, OBJECT_MCCOY, 0x21, 0}, &Room::tug0UseMTricorderOnControls },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::tug0UseMTricorderOnControls },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::tug0UseSTricorderOnControls },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::tug0UseMTricorderOnEngineer },
+ { {ACTION_FINISHED_WALKING, 24, 0, 0}, &Room::tug0MccoyReachedEngineerToScan },
+ { {ACTION_FINISHED_ANIMATION, 25, 0, 0}, &Room::tug0MccoyFinishedScanningEngineer },
+ { {ACTION_USE, OBJECT_SPOCK, 8, 0}, &Room::tug0UseSTricorderOnEngineer },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::tug0UseSTricorderOnEngineer },
+ { {ACTION_WALK, 0x23, 0, 0}, &Room::tug0WalkToDoor },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::tug0LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::tug0LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::tug0LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::tug0LookAtRedshirt },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::tug0LookAtTransporter },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::tug0LookAtDoor },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::tug0TalkToKirk },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::tug0TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::tug0TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::tug0TalkToRedshirt },
+ { {ACTION_TALK, 8, 0, 0}, &Room::tug0TalkToEngineer },
+ { {ACTION_USE, OBJECT_ICOMM, 0, 0}, &Room::tug0UseCommunicator },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::tug0LookAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::tug0UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::tug0UseMTricorderAnywhere },
};
RoomAction tug1ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::tug1Tick1 },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::tug1UseSTricorderOnAnything },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::tug1LookAtBridgeDoor },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::tug1UseSTricorderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x21, 0), &Room::tug1UsePhaserOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x21, 0), &Room::tug1UsePhaserOnBridgeDoor },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::tug1KirkReachedFiringPosition },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::tug1KirkPulledOutPhaser },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::tug1KirkFinishedFiringPhaser },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::tug1TalkToSpock },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::tug1UseSTricorderOnJunkPile },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::tug1LookAtJunkPile },
- { Action(ACTION_GET, 8, 0, 0), &Room::tug1GetJunkPile },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::tug1KirkReachedJunkPile },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::tug1KirkFinishedTakingJunkPile },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0), &Room::tug1UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0), &Room::tug1UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0), &Room::tug1UseWelderOnWireScraps },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0), &Room::tug1UseWelderOnMetalScraps },
- { Action(ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0), &Room::tug1UseCombBitOnTransmogrifier },
-
- { Action(ACTION_USE, OBJECT_IPWF, 0x22, 0), &Room::tug1UsePhaserWelderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IPWF, 0x21, 0), &Room::tug1UsePhaserWelderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IPWF, 0x20, 0), &Room::tug1UsePhaserWelderOnBridgeDoorInLeftSpot },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::tug1KirkReachedBridgeDoorWithWelder },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::tug1KirkFinishedUsingWelder },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::tug1KirkReachedBridgeDoorWithWelderInLeftSpot },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::tug1KirkFinishedUsingWelderInLeftSpot },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::tug1LookAnywhere },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::tug1LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::tug1LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::tug1LookAtRedshirt },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::tug1TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::tug1TalkToRedshirt },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::tug1LookAtTerminal },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::tug1LookAtDebris },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::tug1LookAtBrigDoor },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x25, 0), &Room::tug1UseSTricorderOnBrigDoor },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::tug1TalkToKirk },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::tug1UseCommunicator },
- { Action(ACTION_WALK, 0x21, 0, 0), &Room::tug1WalkToBridgeDoor },
- { Action(ACTION_FINISHED_WALKING, 10, 0, 0), &Room::tug1KirkReachedBridgeDoor },
- { Action(ACTION_FINISHED_ANIMATION, 11, 0, 0), &Room::tug1BridgeDoorOpened },
- { Action(ACTION_WALK, 0x25, 0, 0), &Room::tug1WalkToBrigDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::tug1UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::tug1UseMTricorderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x20, 0), &Room::tug1UseMTricorderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x22, 0), &Room::tug1UseMTricorderOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x25, 0), &Room::tug1UseMTricorderOnBrigDoor },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::tug1UseSpockOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::tug1UseSpockOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x22, 0), &Room::tug1UseSpockOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::tug1UseRedshirtOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x21, 0), &Room::tug1UseRedshirtOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x22, 0), &Room::tug1UseRedshirtOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 0x20, 0), &Room::tug1UseMedkitOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 0x21, 0), &Room::tug1UseMedkitOnBridgeDoor },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 0x22, 0), &Room::tug1UseMedkitOnBridgeDoor },
+ { {ACTION_TICK, 1, 0, 0}, &Room::tug1Tick1 },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::tug1UseSTricorderOnAnything },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::tug1LookAtBridgeDoor },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::tug1UseSTricorderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x21, 0}, &Room::tug1UsePhaserOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x21, 0}, &Room::tug1UsePhaserOnBridgeDoor },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::tug1KirkReachedFiringPosition },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::tug1KirkPulledOutPhaser },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::tug1KirkFinishedFiringPhaser },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::tug1TalkToSpock },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::tug1UseSTricorderOnJunkPile },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::tug1LookAtJunkPile },
+ { {ACTION_GET, 8, 0, 0}, &Room::tug1GetJunkPile },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::tug1KirkReachedJunkPile },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::tug1KirkFinishedTakingJunkPile },
+
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0}, &Room::tug1UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0}, &Room::tug1UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0}, &Room::tug1UseWelderOnWireScraps },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0}, &Room::tug1UseWelderOnMetalScraps },
+ { {ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0}, &Room::tug1UseCombBitOnTransmogrifier },
+
+ { {ACTION_USE, OBJECT_IPWF, 0x22, 0}, &Room::tug1UsePhaserWelderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IPWF, 0x21, 0}, &Room::tug1UsePhaserWelderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IPWF, 0x20, 0}, &Room::tug1UsePhaserWelderOnBridgeDoorInLeftSpot },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::tug1KirkReachedBridgeDoorWithWelder },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::tug1KirkFinishedUsingWelder },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::tug1KirkReachedBridgeDoorWithWelderInLeftSpot },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::tug1KirkFinishedUsingWelderInLeftSpot },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::tug1LookAnywhere },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::tug1LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::tug1LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::tug1LookAtRedshirt },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::tug1TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::tug1TalkToRedshirt },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::tug1LookAtTerminal },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::tug1LookAtDebris },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::tug1LookAtBrigDoor },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x25, 0}, &Room::tug1UseSTricorderOnBrigDoor },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::tug1TalkToKirk },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::tug1UseCommunicator },
+ { {ACTION_WALK, 0x21, 0, 0}, &Room::tug1WalkToBridgeDoor },
+ { {ACTION_FINISHED_WALKING, 10, 0, 0}, &Room::tug1KirkReachedBridgeDoor },
+ { {ACTION_FINISHED_ANIMATION, 11, 0, 0}, &Room::tug1BridgeDoorOpened },
+ { {ACTION_WALK, 0x25, 0, 0}, &Room::tug1WalkToBrigDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::tug1UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::tug1UseMTricorderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x20, 0}, &Room::tug1UseMTricorderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x22, 0}, &Room::tug1UseMTricorderOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x25, 0}, &Room::tug1UseMTricorderOnBrigDoor },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::tug1UseSpockOnBridgeDoor },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::tug1UseSpockOnBridgeDoor },
+ { {ACTION_USE, OBJECT_SPOCK, 0x22, 0}, &Room::tug1UseSpockOnBridgeDoor },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::tug1UseRedshirtOnBridgeDoor },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x21, 0}, &Room::tug1UseRedshirtOnBridgeDoor },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x22, 0}, &Room::tug1UseRedshirtOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMEDKIT, 0x20, 0}, &Room::tug1UseMedkitOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMEDKIT, 0x21, 0}, &Room::tug1UseMedkitOnBridgeDoor },
+ { {ACTION_USE, OBJECT_IMEDKIT, 0x22, 0}, &Room::tug1UseMedkitOnBridgeDoor },
};
RoomAction tug2ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::tug2Tick1 },
- { Action(ACTION_TICK, 60, 0, 0), &Room::tug2Tick60 },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::tug2LookAtButton },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::tug2LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::tug2LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::tug2LookAtRedshirt },
- { Action(ACTION_GET, 11, 0, 0), &Room::tug2GetBomb },
- { Action(ACTION_FINISHED_WALKING, 12, 0, 0), &Room::tug2KirkReachedBomb },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::tug2KirkGotBomb },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::tug2LookAtBomb },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::tug2LookAtGuard1 },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::tug2LookAtGuard2 },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::tug2LookAtWires },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 12, 0), &Room::tug2UseSTricorderOnButton },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::tug2UseSTricorderOnButton },
- { Action(ACTION_USE, OBJECT_MCCOY, 12, 0), &Room::tug2UseMccoyOnWires },
- { Action(ACTION_USE, OBJECT_MCCOY, 11, 0), &Room::tug2UseMccoyOnBomb },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 12, 0), &Room::tug2UseRedshirtOnWires },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::tug2RedshirtReachedWires },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::tug2RedshirtDefusedBomb },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::tug2RedshirtReturnedToPosition },
- { Action(ACTION_USE, OBJECT_KIRK, 12, 0), &Room::tug2UseKirkOnWires },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::tug2KirkReachedWires },
- { Action(ACTION_USE, OBJECT_SPOCK, 12, 0), &Room::tug2UseSpockOnWires },
- { Action(ACTION_FINISHED_WALKING, 9, 0, 0), &Room::tug2SpockReachedWires },
- { Action(ACTION_FINISHED_WALKING, 11, 0, 0), &Room::tug2SpockReturnedToPosition },
- { Action(ACTION_GET, 12, 0, 0), &Room::tug2GetWires },
- { Action(ACTION_FINISHED_WALKING, 28, 0, 0), &Room::tug2KirkReachedWiresToGet },
- { Action(ACTION_FINISHED_ANIMATION, 29, 0, 0), &Room::tug2KirkGotWires },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::tug2UseKirkOnButton },
- { Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::tug2KirkReachedButton },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::tug2UseSpockOnButton },
- { Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::tug2SpockReachedButton },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::tug2UseMccoyOnButton },
- { Action(ACTION_FINISHED_WALKING, 18, 0, 0), &Room::tug2MccoyReachedButton },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::tug2UseRedshirtOnButton },
- { Action(ACTION_FINISHED_WALKING, 20, 0, 0), &Room::tug2RedshirtReachedButton },
- { Action(ACTION_FINISHED_ANIMATION, 15, 0, 0), &Room::tug2TurnedOffForceField },
- { Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::tug2TurnedOffForceField },
- { Action(ACTION_FINISHED_ANIMATION, 19, 0, 0), &Room::tug2TurnedOffForceField },
- { Action(ACTION_FINISHED_ANIMATION, 21, 0, 0), &Room::tug2TurnedOffForceField },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::tug2PrisonersDead },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::tug2PrisonersReleased },
- { Action(ACTION_USE, OBJECT_IPHASERS, 10, 0), &Room::tug2UsePhaserOnBrig },
- { Action(ACTION_USE, OBJECT_IPHASERK, 10, 0), &Room::tug2UsePhaserOnBrig },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::tug2UseStunPhaserOnGuard1 },
- { Action(ACTION_FINISHED_ANIMATION, 22, 0, 0), &Room::tug2KirkShootGuard1 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::tug2UseStunPhaserOnGuard2 },
- { Action(ACTION_FINISHED_ANIMATION, 23, 0, 0), &Room::tug2KirkShootGuard2 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::tug2UseKillPhaserOnGuard1 },
- { Action(ACTION_FINISHED_ANIMATION, 24, 0, 0), &Room::tug2KirkKillGuard1 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 9, 0), &Room::tug2UseKillPhaserOnGuard2 },
- { Action(ACTION_FINISHED_ANIMATION, 25, 0, 0), &Room::tug2KirkKillGuard2 },
-
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0), &Room::tug2UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0), &Room::tug2UsePhaserOnWelder },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0), &Room::tug2UseWelderOnWireScraps },
- { Action(ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0), &Room::tug2UseWelderOnMetalScraps },
- { Action(ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0), &Room::tug2UseCombBitOnTransmogrifier },
-
- { Action(ACTION_FINISHED_ANIMATION, 26, 0, 0), &Room::tug2ShotByElasi },
- { Action(ACTION_FINISHED_ANIMATION, 27, 0, 0), &Room::tug2ShotByElasi },
- { Action(ACTION_WALK, 0x21, 0, 0), &Room::tug2WalkToDoor },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::tug2LookAtDoor },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::tug2LookAtKirk },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::tug2TalkToKirk },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::tug2TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::tug2TalkToRedshirt },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::tug2TalkToSpock },
- { Action(ACTION_USE, OBJECT_ICOMM, 0, 0), &Room::tug2UseCommunicator },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::tug2Timer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::tug2Timer2Expired },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 11, 0), &Room::tug2UseSTricorderOnBomb },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::tug2UseMTricorderOnGuard1 },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::tug2UseMTricorderOnGuard2 },
- { Action(ACTION_TALK, 8, 0, 0), &Room::tug2TalkToGuard1 },
- { Action(ACTION_TALK, 9, 0, 0), &Room::tug2TalkToGuard2 },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 11, 0), &Room::tug2UseMedkitOnBomb },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 8, 0), &Room::tug2UseMedkitOnGuard1 },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 9, 0), &Room::tug2UseMedkitOnGuard2 },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::tug2LookAnywhere },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::tug2LookAnywhere },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::tug2LookAnywhere },
- { Action(ACTION_TALK, 10, 0, 0), &Room::tug2TalkToBrig },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::tug2UseMTricorderOnBrig },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x22, 0), &Room::tug2UseMTricorderOnOpenBrig },
- { Action(ACTION_USE, OBJECT_IPHASERS, -1, 0), &Room::tug2UsePhaserAnywhere },
- { Action(ACTION_USE, OBJECT_IPHASERK, -1, 0), &Room::tug2UsePhaserAnywhere },
+ { {ACTION_TICK, 1, 0, 0}, &Room::tug2Tick1 },
+ { {ACTION_TICK, 60, 0, 0}, &Room::tug2Tick60 },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::tug2LookAtButton },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::tug2LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::tug2LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::tug2LookAtRedshirt },
+ { {ACTION_GET, 11, 0, 0}, &Room::tug2GetBomb },
+ { {ACTION_FINISHED_WALKING, 12, 0, 0}, &Room::tug2KirkReachedBomb },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::tug2KirkGotBomb },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::tug2LookAtBomb },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::tug2LookAtGuard1 },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::tug2LookAtGuard2 },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::tug2LookAtWires },
+ { {ACTION_USE, OBJECT_ISTRICOR, 12, 0}, &Room::tug2UseSTricorderOnButton },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::tug2UseSTricorderOnButton },
+ { {ACTION_USE, OBJECT_MCCOY, 12, 0}, &Room::tug2UseMccoyOnWires },
+ { {ACTION_USE, OBJECT_MCCOY, 11, 0}, &Room::tug2UseMccoyOnBomb },
+ { {ACTION_USE, OBJECT_REDSHIRT, 12, 0}, &Room::tug2UseRedshirtOnWires },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::tug2RedshirtReachedWires },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::tug2RedshirtDefusedBomb },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::tug2RedshirtReturnedToPosition },
+ { {ACTION_USE, OBJECT_KIRK, 12, 0}, &Room::tug2UseKirkOnWires },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::tug2KirkReachedWires },
+ { {ACTION_USE, OBJECT_SPOCK, 12, 0}, &Room::tug2UseSpockOnWires },
+ { {ACTION_FINISHED_WALKING, 9, 0, 0}, &Room::tug2SpockReachedWires },
+ { {ACTION_FINISHED_WALKING, 11, 0, 0}, &Room::tug2SpockReturnedToPosition },
+ { {ACTION_GET, 12, 0, 0}, &Room::tug2GetWires },
+ { {ACTION_FINISHED_WALKING, 28, 0, 0}, &Room::tug2KirkReachedWiresToGet },
+ { {ACTION_FINISHED_ANIMATION, 29, 0, 0}, &Room::tug2KirkGotWires },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::tug2UseKirkOnButton },
+ { {ACTION_FINISHED_WALKING, 14, 0, 0}, &Room::tug2KirkReachedButton },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::tug2UseSpockOnButton },
+ { {ACTION_FINISHED_WALKING, 16, 0, 0}, &Room::tug2SpockReachedButton },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::tug2UseMccoyOnButton },
+ { {ACTION_FINISHED_WALKING, 18, 0, 0}, &Room::tug2MccoyReachedButton },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::tug2UseRedshirtOnButton },
+ { {ACTION_FINISHED_WALKING, 20, 0, 0}, &Room::tug2RedshirtReachedButton },
+ { {ACTION_FINISHED_ANIMATION, 15, 0, 0}, &Room::tug2TurnedOffForceField },
+ { {ACTION_FINISHED_ANIMATION, 17, 0, 0}, &Room::tug2TurnedOffForceField },
+ { {ACTION_FINISHED_ANIMATION, 19, 0, 0}, &Room::tug2TurnedOffForceField },
+ { {ACTION_FINISHED_ANIMATION, 21, 0, 0}, &Room::tug2TurnedOffForceField },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::tug2PrisonersDead },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::tug2PrisonersReleased },
+ { {ACTION_USE, OBJECT_IPHASERS, 10, 0}, &Room::tug2UsePhaserOnBrig },
+ { {ACTION_USE, OBJECT_IPHASERK, 10, 0}, &Room::tug2UsePhaserOnBrig },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::tug2UseStunPhaserOnGuard1 },
+ { {ACTION_FINISHED_ANIMATION, 22, 0, 0}, &Room::tug2KirkShootGuard1 },
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::tug2UseStunPhaserOnGuard2 },
+ { {ACTION_FINISHED_ANIMATION, 23, 0, 0}, &Room::tug2KirkShootGuard2 },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::tug2UseKillPhaserOnGuard1 },
+ { {ACTION_FINISHED_ANIMATION, 24, 0, 0}, &Room::tug2KirkKillGuard1 },
+ { {ACTION_USE, OBJECT_IPHASERK, 9, 0}, &Room::tug2UseKillPhaserOnGuard2 },
+ { {ACTION_FINISHED_ANIMATION, 25, 0, 0}, &Room::tug2KirkKillGuard2 },
+
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_IPWE, 0}, &Room::tug2UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPHASERK, OBJECT_IPWE, 0}, &Room::tug2UsePhaserOnWelder },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IWIRSCRP, 0}, &Room::tug2UseWelderOnWireScraps },
+ { {ACTION_USE, OBJECT_IPWF, OBJECT_IJNKMETL, 0}, &Room::tug2UseWelderOnMetalScraps },
+ { {ACTION_USE, OBJECT_ICOMBBIT, OBJECT_IRT, 0}, &Room::tug2UseCombBitOnTransmogrifier },
+
+ { {ACTION_FINISHED_ANIMATION, 26, 0, 0}, &Room::tug2ShotByElasi },
+ { {ACTION_FINISHED_ANIMATION, 27, 0, 0}, &Room::tug2ShotByElasi },
+ { {ACTION_WALK, 0x21, 0, 0}, &Room::tug2WalkToDoor },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::tug2LookAtDoor },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::tug2LookAtKirk },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::tug2TalkToKirk },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::tug2TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::tug2TalkToRedshirt },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::tug2TalkToSpock },
+ { {ACTION_USE, OBJECT_ICOMM, 0, 0}, &Room::tug2UseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::tug2Timer0Expired },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::tug2Timer2Expired },
+ { {ACTION_USE, OBJECT_ISTRICOR, 11, 0}, &Room::tug2UseSTricorderOnBomb },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::tug2UseMTricorderOnGuard1 },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::tug2UseMTricorderOnGuard2 },
+ { {ACTION_TALK, 8, 0, 0}, &Room::tug2TalkToGuard1 },
+ { {ACTION_TALK, 9, 0, 0}, &Room::tug2TalkToGuard2 },
+ { {ACTION_USE, OBJECT_IMEDKIT, 11, 0}, &Room::tug2UseMedkitOnBomb },
+ { {ACTION_USE, OBJECT_IMEDKIT, 8, 0}, &Room::tug2UseMedkitOnGuard1 },
+ { {ACTION_USE, OBJECT_IMEDKIT, 9, 0}, &Room::tug2UseMedkitOnGuard2 },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::tug2LookAnywhere },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::tug2LookAnywhere },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::tug2LookAnywhere },
+ { {ACTION_TALK, 10, 0, 0}, &Room::tug2TalkToBrig },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::tug2UseMTricorderOnBrig },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x22, 0}, &Room::tug2UseMTricorderOnOpenBrig },
+ { {ACTION_USE, OBJECT_IPHASERS, -1, 0}, &Room::tug2UsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, -1, 0}, &Room::tug2UsePhaserAnywhere },
};
RoomAction tug3ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::tug3Tick1 },
- { Action(ACTION_TICK, 40, 0, 0), &Room::tug3Tick40 },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::tug3LookAnywhere },
- { Action(ACTION_USE, OBJECT_IPHASERS, -1, 0), &Room::tug3UsePhaserAnywhere },
- { Action(ACTION_USE, OBJECT_IPHASERK, -1, 0), &Room::tug3UsePhaserAnywhere },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::tug3UseStunPhaserOnElasi1 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::tug3UseStunPhaserOnElasi2 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 10, 0), &Room::tug3UseStunPhaserOnElasi3 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 11, 0), &Room::tug3UseStunPhaserOnElasi4 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::tug3UseKillPhaserOnElasi1 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 9, 0), &Room::tug3UseKillPhaserOnElasi2 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 10, 0), &Room::tug3UseKillPhaserOnElasi3 },
- { Action(ACTION_USE, OBJECT_IPHASERK, 11, 0), &Room::tug3UseKillPhaserOnElasi4 },
- { Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::tug3ElasiStunnedOrKilled },
- { Action(ACTION_TALK, 8, 0, 0), &Room::tug3TalkToElasi1 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::tug3Elasi1DrewPhaser },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::tug3Elasi1ShotConsole },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::tug3Elasi1DrewPhaser2 },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::tug3Elasi1ShotConsoleAndSurrenders },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::tug3LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::tug3LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::tug3LookAtRedshirt },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::tug3LookAtElasi1 },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::tug3LookAtElasi2 },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::tug3LookAtElasi3 },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::tug3LookAtElasi4 },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::tug3TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::tug3TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::tug3TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::tug3UseCommunicator },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::tug3Timer0Expired },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::tug3AllCrewmenDead },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::tug3Timer1Expired },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::tug3SecurityTeamBeamedIn },
+ { {ACTION_TICK, 1, 0, 0}, &Room::tug3Tick1 },
+ { {ACTION_TICK, 40, 0, 0}, &Room::tug3Tick40 },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::tug3LookAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERS, -1, 0}, &Room::tug3UsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERK, -1, 0}, &Room::tug3UsePhaserAnywhere },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::tug3UseStunPhaserOnElasi1 },
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::tug3UseStunPhaserOnElasi2 },
+ { {ACTION_USE, OBJECT_IPHASERS, 10, 0}, &Room::tug3UseStunPhaserOnElasi3 },
+ { {ACTION_USE, OBJECT_IPHASERS, 11, 0}, &Room::tug3UseStunPhaserOnElasi4 },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::tug3UseKillPhaserOnElasi1 },
+ { {ACTION_USE, OBJECT_IPHASERK, 9, 0}, &Room::tug3UseKillPhaserOnElasi2 },
+ { {ACTION_USE, OBJECT_IPHASERK, 10, 0}, &Room::tug3UseKillPhaserOnElasi3 },
+ { {ACTION_USE, OBJECT_IPHASERK, 11, 0}, &Room::tug3UseKillPhaserOnElasi4 },
+ { {ACTION_FINISHED_ANIMATION, 12, 0, 0}, &Room::tug3ElasiStunnedOrKilled },
+ { {ACTION_TALK, 8, 0, 0}, &Room::tug3TalkToElasi1 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::tug3Elasi1DrewPhaser },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::tug3Elasi1ShotConsole },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::tug3Elasi1DrewPhaser2 },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::tug3Elasi1ShotConsoleAndSurrenders },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::tug3LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::tug3LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::tug3LookAtRedshirt },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::tug3LookAtElasi1 },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::tug3LookAtElasi2 },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::tug3LookAtElasi3 },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::tug3LookAtElasi4 },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::tug3TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::tug3TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::tug3TalkToRedshirt },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::tug3UseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::tug3Timer0Expired },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::tug3AllCrewmenDead },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::tug3Timer1Expired },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::tug3SecurityTeamBeamedIn },
};
RoomAction love0ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love0Tick1 },
- { Action(ACTION_TICK, 10, 0, 0), &Room::love0Tick10 },
- { Action(ACTION_WALK, 0x21, 0, 0), &Room::love0WalkToDoor2 },
- { Action(ACTION_WALK, 9, 0, 0), &Room::love0WalkToDoor2 },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::love0OpenDoor2 },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love0ReachedDoor2 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love0ReachedDoor2 },
- { Action(ACTION_WALK, 0x22, 0, 0), &Room::love0WalkToDoor1 },
- { Action(ACTION_WALK, 8, 0, 0), &Room::love0WalkToDoor1 },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::love0OpenDoor1 },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love0ReachedDoor1 },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love0ReachedDoor1 },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::love0LookAtConsole },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::love0LookAtViewscreen },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love0LookAnywhere },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::love0LookAtDoor1 },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love0LookAtDoor2 },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love0LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love0LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love0LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love0LookAtRedshirt },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love0TalkToKirk },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love0TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love0TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love0TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::love0UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::love0UseSTricorderOnConsole },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love0UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::love0UseKirkOnConsole },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::love0UseRedshirtOnConsole },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::love0UseSpockOnConsole },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::love0SpockReachedConsole },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::love0SpockAccessedConsole },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::love0UseMccoyOnConsole },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::love0MccoyReachedConsole },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::love0MccoyAccessedConsole },
- { Action(ACTION_GET, 8, 0, 0), &Room::love0GetDoorOrConsole },
- { Action(ACTION_GET, 9, 0, 0), &Room::love0GetDoorOrConsole },
- { Action(ACTION_GET, 0x20, 0, 0), &Room::love0GetDoorOrConsole },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love0Tick1 },
+ { {ACTION_TICK, 10, 0, 0}, &Room::love0Tick10 },
+ { {ACTION_WALK, 0x21, 0, 0}, &Room::love0WalkToDoor2 },
+ { {ACTION_WALK, 9, 0, 0}, &Room::love0WalkToDoor2 },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::love0OpenDoor2 },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love0ReachedDoor2 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love0ReachedDoor2 },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::love0WalkToDoor1 },
+ { {ACTION_WALK, 8, 0, 0}, &Room::love0WalkToDoor1 },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::love0OpenDoor1 },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love0ReachedDoor1 },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love0ReachedDoor1 },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::love0LookAtConsole },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::love0LookAtViewscreen },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love0LookAnywhere },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::love0LookAtDoor1 },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love0LookAtDoor2 },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love0LookAtKirk },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love0LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love0LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love0LookAtRedshirt },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love0TalkToKirk },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love0TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love0TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love0TalkToRedshirt },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::love0UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::love0UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love0UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::love0UseKirkOnConsole },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::love0UseRedshirtOnConsole },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::love0UseSpockOnConsole },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::love0SpockReachedConsole },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::love0SpockAccessedConsole },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::love0UseMccoyOnConsole },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::love0MccoyReachedConsole },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::love0MccoyAccessedConsole },
+ { {ACTION_GET, 8, 0, 0}, &Room::love0GetDoorOrConsole },
+ { {ACTION_GET, 9, 0, 0}, &Room::love0GetDoorOrConsole },
+ { {ACTION_GET, 0x20, 0, 0}, &Room::love0GetDoorOrConsole },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
};
RoomAction love1ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love1Tick1 },
-
- { Action(ACTION_WALK, 10, 0, 0), &Room::love1WalkToDoor3 },
- { Action(ACTION_WALK, 0x26, 0, 0), &Room::love1WalkToDoor3 },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::love1OpenDoor3 },
- { Action(ACTION_FINISHED_WALKING, 15, 0, 0), &Room::love1ReachedDoor3 },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::love1ReachedDoor3 },
-
- { Action(ACTION_WALK, 8, 0, 0), &Room::love1WalkToDoor1 },
- { Action(ACTION_WALK, 0x27, 0, 0), &Room::love1WalkToDoor1 },
- { Action(ACTION_TOUCHED_HOTSPOT, 2, 0, 0), &Room::love1OpenDoor1 },
- { Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::love1ReachedDoor1 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love1ReachedDoor1 },
-
- { Action(ACTION_WALK, 9, 0, 0), &Room::love1WalkToDoor2 },
- { Action(ACTION_WALK, 0x28, 0, 0), &Room::love1WalkToDoor2 },
- { Action(ACTION_TOUCHED_HOTSPOT, 3, 0, 0), &Room::love1OpenDoor2 },
- { Action(ACTION_FINISHED_WALKING, 17, 0, 0), &Room::love1ReachedDoor2 },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love1ReachedDoor2 },
-
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::love1LookAtLaser },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love1LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love1LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love1LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love1LookAtRedshirt },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love1LookAnywhere },
- { Action(ACTION_LOOK, 15, 0, 0), &Room::love1LookAtNozzle },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::love1LookAtNozzle },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::love1LookAtLadder },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love1LookAtDoor1Or2 },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::love1LookAtDoor1Or2 },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::love1LookAtDoor3 },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::love1LookAtDistillator },
- { Action(ACTION_LOOK, 14, 0, 0), &Room::love1LookAtChamber },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::love1LookAtChamber },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::love1LookAtReplicator },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::love1LookAtFreezer },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::love1LookAtFreezer },
- { Action(ACTION_LOOK, OBJECT_IDISHES, 0, 0), &Room::love1LookAtDishes },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love1TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love1TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love1TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love1TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_IDISHES, 0), &Room::love1UseMTricorderOnDishes },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::love1UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::love1UseSTricorderOnReplicator },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 12, 0), &Room::love1UseSTricorderOnReplicator },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x25, 0), &Room::love1UseSTricorderOnLaser },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x25, 0), &Room::love1UseSTricorderOnLaser },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::love1UseSTricorderOnFreezer },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love1UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, OBJECT_IDISHES, 0), &Room::love1UseSTricorderOnDishes },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::love1UseSTricorderOnDistillator },
- { Action(ACTION_GET, 11, 0, 0), &Room::love1GetFreezer },
- { Action(ACTION_GET, 0x22, 0, 0), &Room::love1GetFreezer },
- { Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::love1KirkReachedFreezer },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::love1KirkGotVirusCulture },
- { Action(ACTION_GET, 14, 0, 0), &Room::love1GetFromChamber },
- { Action(ACTION_GET, 12, 0, 0), &Room::love1GetFromChamber },
- { Action(ACTION_GET, 0x23, 0, 0), &Room::love1GetFromChamber },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::love1KirkReachedChamber },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::love1KirkGotCureSample },
- { Action(ACTION_GET, 15, 0, 0), &Room::love1GetFromNozzle },
- { Action(ACTION_GET, 0x24, 0, 0), &Room::love1GetFromNozzle },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::love1KirkReachedNozzleToGet },
- { Action(ACTION_FINISHED_ANIMATION, 11, 0, 0), &Room::love1KirkGotBottleFromNozzle },
- { Action(ACTION_USE, OBJECT_IN2O, 0x24, 0), &Room::love1UseN2OOnNozzle },
- { Action(ACTION_USE, OBJECT_IH2O, 0x24, 0), &Room::love1UseH2OOnNozzle },
- { Action(ACTION_USE, OBJECT_INH3, 0x24, 0), &Room::love1UseNH3OnNozzle },
- { Action(ACTION_USE, OBJECT_IRLG, 0x24, 0), &Room::love1UseRLGOnNozzle },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::love1KirkReachedNozzleToPut },
- { Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::love1KirkPutBottleInNozzle },
- { Action(ACTION_USE, -1, 0x24, 0), &Room::love1UseAnthingOnNozzle },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x23, 0), &Room::love1UseSpockOnReplicator },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x23, 0), &Room::love1UseRedshirtOnReplicator },
- { Action(ACTION_USE, OBJECT_MCCOY, 14, 0), &Room::love1UseMccoyOnReplicator },
- { Action(ACTION_USE, OBJECT_MCCOY, 15, 0), &Room::love1UseMccoyOnReplicator },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x23, 0), &Room::love1UseMccoyOnReplicator },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love1MccoyReachedReplicator },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::love1MccoyUsedReplicator },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::love1ChamberClosed },
- { Action(ACTION_FINISHED_ANIMATION, 8, 0, 0), &Room::love1ChamberOpened },
- { Action(ACTION_USE, -1, 12, 0), &Room::love1UseAnythingOnChamber },
- { Action(ACTION_USE, OBJECT_IDISHES, 12, 0), &Room::love1UseDishesOnChamber },
- { Action(ACTION_USE, OBJECT_IDISHES, 0x23, 0), &Room::love1UseDishesOnChamber },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love1KirkReachedChamberToPut },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::love1ChamberOpenedForDish },
- { Action(ACTION_FINISHED_ANIMATION, 14, 0, 0), &Room::love1KirkPutDishInChamber },
- { Action(ACTION_USE, OBJECT_IINSULAT, 0x21, 0), &Room::love1UseInsulationOnDistillator },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::love1KirkReachedDistillator },
- { Action(ACTION_FINISHED_ANIMATION, 15, 0, 0), &Room::love1KirkGotPolyberylcarbonate },
- { Action(ACTION_USE, OBJECT_KIRK, 0x22, 0), &Room::love1UseKirkOnFreezer },
- { Action(ACTION_USE, OBJECT_KIRK, 11, 0), &Room::love1UseKirkOnFreezer },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x22, 0), &Room::love1UseRedshirtOnFreezer },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 11, 0), &Room::love1UseRedshirtOnFreezer },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x22, 0), &Room::love1UseSpockOnFreezer },
- { Action(ACTION_USE, OBJECT_SPOCK, 11, 0), &Room::love1UseSpockOnFreezer },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x22, 0), &Room::love1UseMccoyOnFreezer },
- { Action(ACTION_USE, OBJECT_MCCOY, 11, 0), &Room::love1UseMccoyOnFreezer },
- { Action(ACTION_FINISHED_WALKING, 7, 0, 0), &Room::love1CrewmanReachedFreezer },
- { Action(ACTION_FINISHED_ANIMATION, 16, 0, 0), &Room::love1CrewmanOpenedOrClosedFreezer },
- { Action(ACTION_USE, -1, 0x22, 0), &Room::love1UseAnythingOnFreezer },
- { Action(ACTION_FINISHED_WALKING, 11, 0, 0), &Room::love1ReachedFreezerWithArbitraryItem },
- { Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::love1FinishedUsingArbitraryItemOnFreezer },
- { Action(ACTION_USE, -1, 0x23, 0), &Room::love1UseAnythingOnReplicator },
- { Action(ACTION_FINISHED_WALKING, 12, 0, 0), &Room::love1ReachedReplicatorWithArbitraryItem },
- { Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::love1FinishedUsingArbitraryItemOnReplicator },
- { Action(ACTION_USE, -1, 0x21, 0), &Room::love1UseAnythingOnDistillator },
- { Action(ACTION_FINISHED_WALKING, 13, 0, 0), &Room::love1ReachedDistillatorWithArbitraryItem },
- { Action(ACTION_FINISHED_ANIMATION, 19, 0, 0), &Room::love1FinishedUsingArbitraryItemOnDistillator },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::love1UseKirkOnLadder },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::love1UseSpockOnLadder },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::love1UseMccoyOnLadder },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::love1UseRedshirtOnLadder },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::love1CrewmanReachedLadder },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::love1CrewmanDiedFromPhaser },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::love1TouchedHotspot0 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love1Tick1 },
+
+ { {ACTION_WALK, 10, 0, 0}, &Room::love1WalkToDoor3 },
+ { {ACTION_WALK, 0x26, 0, 0}, &Room::love1WalkToDoor3 },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::love1OpenDoor3 },
+ { {ACTION_FINISHED_WALKING, 15, 0, 0}, &Room::love1ReachedDoor3 },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::love1ReachedDoor3 },
+
+ { {ACTION_WALK, 8, 0, 0}, &Room::love1WalkToDoor1 },
+ { {ACTION_WALK, 0x27, 0, 0}, &Room::love1WalkToDoor1 },
+ { {ACTION_TOUCHED_HOTSPOT, 2, 0, 0}, &Room::love1OpenDoor1 },
+ { {ACTION_FINISHED_WALKING, 16, 0, 0}, &Room::love1ReachedDoor1 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love1ReachedDoor1 },
+
+ { {ACTION_WALK, 9, 0, 0}, &Room::love1WalkToDoor2 },
+ { {ACTION_WALK, 0x28, 0, 0}, &Room::love1WalkToDoor2 },
+ { {ACTION_TOUCHED_HOTSPOT, 3, 0, 0}, &Room::love1OpenDoor2 },
+ { {ACTION_FINISHED_WALKING, 17, 0, 0}, &Room::love1ReachedDoor2 },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love1ReachedDoor2 },
+
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::love1LookAtLaser },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love1LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love1LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love1LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love1LookAtRedshirt },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love1LookAnywhere },
+ { {ACTION_LOOK, 15, 0, 0}, &Room::love1LookAtNozzle },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::love1LookAtNozzle },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::love1LookAtLadder },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love1LookAtDoor1Or2 },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::love1LookAtDoor1Or2 },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::love1LookAtDoor3 },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::love1LookAtDistillator },
+ { {ACTION_LOOK, 14, 0, 0}, &Room::love1LookAtChamber },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::love1LookAtChamber },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::love1LookAtReplicator },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::love1LookAtFreezer },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::love1LookAtFreezer },
+ { {ACTION_LOOK, OBJECT_IDISHES, 0, 0}, &Room::love1LookAtDishes },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love1TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love1TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love1TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love1TalkToRedshirt },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_IDISHES, 0}, &Room::love1UseMTricorderOnDishes },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::love1UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::love1UseSTricorderOnReplicator },
+ { {ACTION_USE, OBJECT_ISTRICOR, 12, 0}, &Room::love1UseSTricorderOnReplicator },
+ { {ACTION_USE, OBJECT_SPOCK, 0x25, 0}, &Room::love1UseSTricorderOnLaser },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x25, 0}, &Room::love1UseSTricorderOnLaser },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::love1UseSTricorderOnFreezer },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love1UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, OBJECT_IDISHES, 0}, &Room::love1UseSTricorderOnDishes },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::love1UseSTricorderOnDistillator },
+ { {ACTION_GET, 11, 0, 0}, &Room::love1GetFreezer },
+ { {ACTION_GET, 0x22, 0, 0}, &Room::love1GetFreezer },
+ { {ACTION_FINISHED_WALKING, 14, 0, 0}, &Room::love1KirkReachedFreezer },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::love1KirkGotVirusCulture },
+ { {ACTION_GET, 14, 0, 0}, &Room::love1GetFromChamber },
+ { {ACTION_GET, 12, 0, 0}, &Room::love1GetFromChamber },
+ { {ACTION_GET, 0x23, 0, 0}, &Room::love1GetFromChamber },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::love1KirkReachedChamber },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::love1KirkGotCureSample },
+ { {ACTION_GET, 15, 0, 0}, &Room::love1GetFromNozzle },
+ { {ACTION_GET, 0x24, 0, 0}, &Room::love1GetFromNozzle },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::love1KirkReachedNozzleToGet },
+ { {ACTION_FINISHED_ANIMATION, 11, 0, 0}, &Room::love1KirkGotBottleFromNozzle },
+ { {ACTION_USE, OBJECT_IN2O, 0x24, 0}, &Room::love1UseN2OOnNozzle },
+ { {ACTION_USE, OBJECT_IH2O, 0x24, 0}, &Room::love1UseH2OOnNozzle },
+ { {ACTION_USE, OBJECT_INH3, 0x24, 0}, &Room::love1UseNH3OnNozzle },
+ { {ACTION_USE, OBJECT_IRLG, 0x24, 0}, &Room::love1UseRLGOnNozzle },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::love1KirkReachedNozzleToPut },
+ { {ACTION_FINISHED_ANIMATION, 12, 0, 0}, &Room::love1KirkPutBottleInNozzle },
+ { {ACTION_USE, -1, 0x24, 0}, &Room::love1UseAnthingOnNozzle },
+ { {ACTION_USE, OBJECT_SPOCK, 0x23, 0}, &Room::love1UseSpockOnReplicator },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x23, 0}, &Room::love1UseRedshirtOnReplicator },
+ { {ACTION_USE, OBJECT_MCCOY, 14, 0}, &Room::love1UseMccoyOnReplicator },
+ { {ACTION_USE, OBJECT_MCCOY, 15, 0}, &Room::love1UseMccoyOnReplicator },
+ { {ACTION_USE, OBJECT_MCCOY, 0x23, 0}, &Room::love1UseMccoyOnReplicator },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love1MccoyReachedReplicator },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::love1MccoyUsedReplicator },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::love1ChamberClosed },
+ { {ACTION_FINISHED_ANIMATION, 8, 0, 0}, &Room::love1ChamberOpened },
+ { {ACTION_USE, -1, 12, 0}, &Room::love1UseAnythingOnChamber },
+ { {ACTION_USE, OBJECT_IDISHES, 12, 0}, &Room::love1UseDishesOnChamber },
+ { {ACTION_USE, OBJECT_IDISHES, 0x23, 0}, &Room::love1UseDishesOnChamber },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love1KirkReachedChamberToPut },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::love1ChamberOpenedForDish },
+ { {ACTION_FINISHED_ANIMATION, 14, 0, 0}, &Room::love1KirkPutDishInChamber },
+ { {ACTION_USE, OBJECT_IINSULAT, 0x21, 0}, &Room::love1UseInsulationOnDistillator },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::love1KirkReachedDistillator },
+ { {ACTION_FINISHED_ANIMATION, 15, 0, 0}, &Room::love1KirkGotPolyberylcarbonate },
+ { {ACTION_USE, OBJECT_KIRK, 0x22, 0}, &Room::love1UseKirkOnFreezer },
+ { {ACTION_USE, OBJECT_KIRK, 11, 0}, &Room::love1UseKirkOnFreezer },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x22, 0}, &Room::love1UseRedshirtOnFreezer },
+ { {ACTION_USE, OBJECT_REDSHIRT, 11, 0}, &Room::love1UseRedshirtOnFreezer },
+ { {ACTION_USE, OBJECT_SPOCK, 0x22, 0}, &Room::love1UseSpockOnFreezer },
+ { {ACTION_USE, OBJECT_SPOCK, 11, 0}, &Room::love1UseSpockOnFreezer },
+ { {ACTION_USE, OBJECT_MCCOY, 0x22, 0}, &Room::love1UseMccoyOnFreezer },
+ { {ACTION_USE, OBJECT_MCCOY, 11, 0}, &Room::love1UseMccoyOnFreezer },
+ { {ACTION_FINISHED_WALKING, 7, 0, 0}, &Room::love1CrewmanReachedFreezer },
+ { {ACTION_FINISHED_ANIMATION, 16, 0, 0}, &Room::love1CrewmanOpenedOrClosedFreezer },
+ { {ACTION_USE, -1, 0x22, 0}, &Room::love1UseAnythingOnFreezer },
+ { {ACTION_FINISHED_WALKING, 11, 0, 0}, &Room::love1ReachedFreezerWithArbitraryItem },
+ { {ACTION_FINISHED_ANIMATION, 17, 0, 0}, &Room::love1FinishedUsingArbitraryItemOnFreezer },
+ { {ACTION_USE, -1, 0x23, 0}, &Room::love1UseAnythingOnReplicator },
+ { {ACTION_FINISHED_WALKING, 12, 0, 0}, &Room::love1ReachedReplicatorWithArbitraryItem },
+ { {ACTION_FINISHED_ANIMATION, 18, 0, 0}, &Room::love1FinishedUsingArbitraryItemOnReplicator },
+ { {ACTION_USE, -1, 0x21, 0}, &Room::love1UseAnythingOnDistillator },
+ { {ACTION_FINISHED_WALKING, 13, 0, 0}, &Room::love1ReachedDistillatorWithArbitraryItem },
+ { {ACTION_FINISHED_ANIMATION, 19, 0, 0}, &Room::love1FinishedUsingArbitraryItemOnDistillator },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::love1UseKirkOnLadder },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::love1UseSpockOnLadder },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::love1UseMccoyOnLadder },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::love1UseRedshirtOnLadder },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::love1CrewmanReachedLadder },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::love1CrewmanDiedFromPhaser },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::love1TouchedHotspot0 },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
};
RoomAction love2ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love2Tick1 },
- { Action(ACTION_TOUCHED_WARP, 1, 0, 0), &Room::love2TouchedWarp1 },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::love2Timer3Expired },
- { Action(ACTION_WALK, 10, 0, 0), &Room::love2WalkToDoor },
- { Action(ACTION_WALK, 0x22, 0, 0), &Room::love2WalkToDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::love2TouchedHotspot0 },
- { Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::love2DoorReachedOrOpened },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::love2DoorReachedOrOpened },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::love2LookAtCabinet },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::love2LookAtDoor },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::love2LookAtSynthesizer },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love2LookAtAnywhere },
- { Action(ACTION_LOOK, 14, 0, 0), &Room::love2LookAtAntigrav },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love2LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love2LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love2LookAtRedshirt },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love2LookAtKirk },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::love2LookAtArdak },
- { Action(ACTION_LOOK, 15, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 16, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 18, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 19, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 17, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love2LookAtChamber },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::love2LookAtCan1 },
- { Action(ACTION_LOOK, 13, 0, 0), &Room::love2LookAtCan2 },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love2TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love2TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love2TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love2TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::love2UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love2UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_KIRK, 8, 0), &Room::love2UseKirkOnCabinet },
- { Action(ACTION_USE, OBJECT_SPOCK, 8, 0), &Room::love2UseSpockOnCabinet },
- { Action(ACTION_USE, OBJECT_MCCOY, 8, 0), &Room::love2UseMccoyOnCabinet },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 8, 0), &Room::love2UseRedshirtOnCabinet },
- { Action(ACTION_FINISHED_WALKING, 12, 0, 0), &Room::love2CrewmanReachedCabinet },
- { Action(ACTION_FINISHED_ANIMATION, 11, 0, 0), &Room::love2CrewmanAccessedCabinet },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::love2CrewmanOpenedOrClosedCabinet },
- { Action(ACTION_USE, OBJECT_IWRENCH, 11, 0), &Room::love2UseWrenchOnGasFeed },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::love2ReachedGasFeed },
- { Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::love2ChangedGasFeed },
- { Action(ACTION_USE, OBJECT_IO2GAS, 0x23, 0), &Room::love2UseO2GasOnCanisterSlot },
- { Action(ACTION_USE, OBJECT_IH2GAS, 0x23, 0), &Room::love2UseH2GasOnCanisterSlot },
- { Action(ACTION_USE, OBJECT_IN2GAS, 0x23, 0), &Room::love2UseN2GasOnCanisterSlot },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::love2ReachedCanisterSlot },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::love2PutCanisterInSlot1 },
- { Action(ACTION_FINISHED_ANIMATION, 14, 0, 0), &Room::love2PutCanisterInSlot2 },
- { Action(ACTION_USE, OBJECT_IANTIGRA, 12, 0), &Room::love2UseAntigravOnCanister1 },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love2ReachedCanisterSlot1ToGet },
- { Action(ACTION_FINISHED_ANIMATION, 15, 0, 0), &Room::love2TookCanister1 },
- { Action(ACTION_USE, OBJECT_IANTIGRA, 13, 0), &Room::love2UseAntigravOnCanister2 },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love2ReachedCanisterSlot2ToGet },
- { Action(ACTION_FINISHED_ANIMATION, 16, 0, 0), &Room::love2TookCanister2 },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::love2UseKirkOnSynthesizer },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::love2UseSpockOnSynthesizer },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::love2UseMccoyOnSynthesizer },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::love2UseRedshirtOnSynthesizer },
- { Action(ACTION_FINISHED_WALKING, 13, 0, 0), &Room::love2CrewmanReachedSynthesizer },
- { Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::love2CrewmanUsedSynthesizer },
- { Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::love2SpockReachedGasFeeds },
- { Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::love2SpockEnabledGasFeeds },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love2SynthesizerDoorClosed },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love2SynthesizerFinished },
- { Action(ACTION_FINISHED_ANIMATION, 27, 0, 0), &Room::love2ClosedSynthesizerDoorMakingRLG },
- { Action(ACTION_FINISHED_ANIMATION, 8, 0, 0), &Room::love2ClosedSynthesizerDoorMakingCure },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::love2CureStartedSynthesizing },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::love2CureSynthesized },
- { Action(ACTION_USE, OBJECT_IPBC, 9, 0), &Room::love2UsePolyberylcarbonateOnSynthesizerDoor },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::love2KirkReachedSynthesizerWithPolyberylcarbonate },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::love2SynthesizerDoorOpenedWithPolyberylcarbonate },
- { Action(ACTION_FINISHED_ANIMATION, 19, 0, 0), &Room::love2PutPolyberylcarbonateInSynthesizer },
-
- { Action(ACTION_USE, OBJECT_IDISHES, 9, 0), &Room::love2UseVirusSampleOnSynthesizerDoor },
- { Action(ACTION_FINISHED_WALKING, 7, 0, 0), &Room::love2KirkReachedSynthesizerWithVirusSample },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::love2SynthesizerDoorOpenedWithVirusSample },
- { Action(ACTION_FINISHED_ANIMATION, 20, 0, 0), &Room::love2PutVirusSampleInSynthesizer },
-
- { Action(ACTION_USE, OBJECT_ISAMPLE, 9, 0), &Room::love2UseCureSampleOnSynthesizerDoor },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::love2KirkReachedSynthesizerWithCureSample },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::love2SynthesizerDoorOpenedWithCureSample },
- { Action(ACTION_FINISHED_ANIMATION, 21, 0, 0), &Room::love2PutCureSampleInSynthesizer },
-
- { Action(ACTION_USE, -1, 9, 0), &Room::love2UseAnythingOnSynthesizerDoor },
- { Action(ACTION_USE, -1, 0x20, 0), &Room::love2UseAnythingOnSynthesizer },
- { Action(ACTION_GET, 13, 0, 0), &Room::love2GetCanister },
- { Action(ACTION_GET, 12, 0, 0), &Room::love2GetCanister },
-
- { Action(ACTION_GET, 14, 0, 0), &Room::love2GetAntigrav },
- { Action(ACTION_FINISHED_WALKING, 9, 0, 0), &Room::love2ReachedAntigrav },
- { Action(ACTION_FINISHED_ANIMATION, 22, 0, 0), &Room::love2GotAntigrav },
-
- { Action(ACTION_GET, 16, 0, 0), &Room::love2GetPolyberylcarbonate },
- { Action(ACTION_FINISHED_WALKING, 18, 0, 0), &Room::love2ReachedPolyberylcarbonate },
- { Action(ACTION_FINISHED_ANIMATION, 26, 0, 0), &Room::love2GotPolyberylcarbonate },
-
- { Action(ACTION_GET, 17, 0, 0), &Room::love2GetDishes },
- { Action(ACTION_FINISHED_WALKING, 17, 0, 0), &Room::love2ReachedDishes },
- { Action(ACTION_FINISHED_ANIMATION, 25, 0, 0), &Room::love2GotDishes },
-
- { Action(ACTION_GET, 18, 0, 0), &Room::love2GetSample },
- { Action(ACTION_FINISHED_WALKING, 19, 0, 0), &Room::love2ReachedSample },
- { Action(ACTION_FINISHED_ANIMATION, 28, 0, 0), &Room::love2GotSample },
-
- { Action(ACTION_GET, 15, 0, 0), &Room::love2GetSynthesizerOutput },
- { Action(ACTION_FINISHED_WALKING, 10, 0, 0), &Room::love2ReachedSynthesizerOutput },
- { Action(ACTION_FINISHED_ANIMATION, 23, 0, 0), &Room::love2GotSynthesizerOutput },
-
- { Action(ACTION_GET, 19, 0, 0), &Room::love2GetCure },
- { Action(ACTION_FINISHED_WALKING, 11, 0, 0), &Room::love2ReachedCure },
- { Action(ACTION_FINISHED_ANIMATION, 24, 0, 0), &Room::love2GotCure },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love2Tick1 },
+ { {ACTION_TOUCHED_WARP, 1, 0, 0}, &Room::love2TouchedWarp1 },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::love2Timer3Expired },
+ { {ACTION_WALK, 10, 0, 0}, &Room::love2WalkToDoor },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::love2WalkToDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::love2TouchedHotspot0 },
+ { {ACTION_FINISHED_WALKING, 14, 0, 0}, &Room::love2DoorReachedOrOpened },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::love2DoorReachedOrOpened },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::love2LookAtCabinet },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::love2LookAtDoor },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::love2LookAtSynthesizer },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love2LookAtAnywhere },
+ { {ACTION_LOOK, 14, 0, 0}, &Room::love2LookAtAntigrav },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love2LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love2LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love2LookAtRedshirt },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love2LookAtKirk },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::love2LookAtArdak },
+ { {ACTION_LOOK, 15, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 16, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 18, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 19, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 17, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love2LookAtChamber },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::love2LookAtCan1 },
+ { {ACTION_LOOK, 13, 0, 0}, &Room::love2LookAtCan2 },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love2TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love2TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love2TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love2TalkToRedshirt },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::love2UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love2UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_KIRK, 8, 0}, &Room::love2UseKirkOnCabinet },
+ { {ACTION_USE, OBJECT_SPOCK, 8, 0}, &Room::love2UseSpockOnCabinet },
+ { {ACTION_USE, OBJECT_MCCOY, 8, 0}, &Room::love2UseMccoyOnCabinet },
+ { {ACTION_USE, OBJECT_REDSHIRT, 8, 0}, &Room::love2UseRedshirtOnCabinet },
+ { {ACTION_FINISHED_WALKING, 12, 0, 0}, &Room::love2CrewmanReachedCabinet },
+ { {ACTION_FINISHED_ANIMATION, 11, 0, 0}, &Room::love2CrewmanAccessedCabinet },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::love2CrewmanOpenedOrClosedCabinet },
+ { {ACTION_USE, OBJECT_IWRENCH, 11, 0}, &Room::love2UseWrenchOnGasFeed },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::love2ReachedGasFeed },
+ { {ACTION_FINISHED_ANIMATION, 12, 0, 0}, &Room::love2ChangedGasFeed },
+ { {ACTION_USE, OBJECT_IO2GAS, 0x23, 0}, &Room::love2UseO2GasOnCanisterSlot },
+ { {ACTION_USE, OBJECT_IH2GAS, 0x23, 0}, &Room::love2UseH2GasOnCanisterSlot },
+ { {ACTION_USE, OBJECT_IN2GAS, 0x23, 0}, &Room::love2UseN2GasOnCanisterSlot },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::love2ReachedCanisterSlot },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::love2PutCanisterInSlot1 },
+ { {ACTION_FINISHED_ANIMATION, 14, 0, 0}, &Room::love2PutCanisterInSlot2 },
+ { {ACTION_USE, OBJECT_IANTIGRA, 12, 0}, &Room::love2UseAntigravOnCanister1 },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love2ReachedCanisterSlot1ToGet },
+ { {ACTION_FINISHED_ANIMATION, 15, 0, 0}, &Room::love2TookCanister1 },
+ { {ACTION_USE, OBJECT_IANTIGRA, 13, 0}, &Room::love2UseAntigravOnCanister2 },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love2ReachedCanisterSlot2ToGet },
+ { {ACTION_FINISHED_ANIMATION, 16, 0, 0}, &Room::love2TookCanister2 },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::love2UseKirkOnSynthesizer },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::love2UseSpockOnSynthesizer },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::love2UseMccoyOnSynthesizer },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::love2UseRedshirtOnSynthesizer },
+ { {ACTION_FINISHED_WALKING, 13, 0, 0}, &Room::love2CrewmanReachedSynthesizer },
+ { {ACTION_FINISHED_ANIMATION, 17, 0, 0}, &Room::love2CrewmanUsedSynthesizer },
+ { {ACTION_FINISHED_WALKING, 16, 0, 0}, &Room::love2SpockReachedGasFeeds },
+ { {ACTION_FINISHED_ANIMATION, 18, 0, 0}, &Room::love2SpockEnabledGasFeeds },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love2SynthesizerDoorClosed },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love2SynthesizerFinished },
+ { {ACTION_FINISHED_ANIMATION, 27, 0, 0}, &Room::love2ClosedSynthesizerDoorMakingRLG },
+ { {ACTION_FINISHED_ANIMATION, 8, 0, 0}, &Room::love2ClosedSynthesizerDoorMakingCure },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::love2CureStartedSynthesizing },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::love2CureSynthesized },
+ { {ACTION_USE, OBJECT_IPBC, 9, 0}, &Room::love2UsePolyberylcarbonateOnSynthesizerDoor },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::love2KirkReachedSynthesizerWithPolyberylcarbonate },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::love2SynthesizerDoorOpenedWithPolyberylcarbonate },
+ { {ACTION_FINISHED_ANIMATION, 19, 0, 0}, &Room::love2PutPolyberylcarbonateInSynthesizer },
+
+ { {ACTION_USE, OBJECT_IDISHES, 9, 0}, &Room::love2UseVirusSampleOnSynthesizerDoor },
+ { {ACTION_FINISHED_WALKING, 7, 0, 0}, &Room::love2KirkReachedSynthesizerWithVirusSample },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::love2SynthesizerDoorOpenedWithVirusSample },
+ { {ACTION_FINISHED_ANIMATION, 20, 0, 0}, &Room::love2PutVirusSampleInSynthesizer },
+
+ { {ACTION_USE, OBJECT_ISAMPLE, 9, 0}, &Room::love2UseCureSampleOnSynthesizerDoor },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::love2KirkReachedSynthesizerWithCureSample },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::love2SynthesizerDoorOpenedWithCureSample },
+ { {ACTION_FINISHED_ANIMATION, 21, 0, 0}, &Room::love2PutCureSampleInSynthesizer },
+
+ { {ACTION_USE, -1, 9, 0}, &Room::love2UseAnythingOnSynthesizerDoor },
+ { {ACTION_USE, -1, 0x20, 0}, &Room::love2UseAnythingOnSynthesizer },
+ { {ACTION_GET, 13, 0, 0}, &Room::love2GetCanister },
+ { {ACTION_GET, 12, 0, 0}, &Room::love2GetCanister },
+
+ { {ACTION_GET, 14, 0, 0}, &Room::love2GetAntigrav },
+ { {ACTION_FINISHED_WALKING, 9, 0, 0}, &Room::love2ReachedAntigrav },
+ { {ACTION_FINISHED_ANIMATION, 22, 0, 0}, &Room::love2GotAntigrav },
+
+ { {ACTION_GET, 16, 0, 0}, &Room::love2GetPolyberylcarbonate },
+ { {ACTION_FINISHED_WALKING, 18, 0, 0}, &Room::love2ReachedPolyberylcarbonate },
+ { {ACTION_FINISHED_ANIMATION, 26, 0, 0}, &Room::love2GotPolyberylcarbonate },
+
+ { {ACTION_GET, 17, 0, 0}, &Room::love2GetDishes },
+ { {ACTION_FINISHED_WALKING, 17, 0, 0}, &Room::love2ReachedDishes },
+ { {ACTION_FINISHED_ANIMATION, 25, 0, 0}, &Room::love2GotDishes },
+
+ { {ACTION_GET, 18, 0, 0}, &Room::love2GetSample },
+ { {ACTION_FINISHED_WALKING, 19, 0, 0}, &Room::love2ReachedSample },
+ { {ACTION_FINISHED_ANIMATION, 28, 0, 0}, &Room::love2GotSample },
+
+ { {ACTION_GET, 15, 0, 0}, &Room::love2GetSynthesizerOutput },
+ { {ACTION_FINISHED_WALKING, 10, 0, 0}, &Room::love2ReachedSynthesizerOutput },
+ { {ACTION_FINISHED_ANIMATION, 23, 0, 0}, &Room::love2GotSynthesizerOutput },
+
+ { {ACTION_GET, 19, 0, 0}, &Room::love2GetCure },
+ { {ACTION_FINISHED_WALKING, 11, 0, 0}, &Room::love2ReachedCure },
+ { {ACTION_FINISHED_ANIMATION, 24, 0, 0}, &Room::love2GotCure },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
};
RoomAction love3ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love3Tick1 },
- { Action(ACTION_TICK, 80, 0, 0), &Room::love3Tick80 },
- { Action(ACTION_TOUCHED_WARP, 1, 0, 0), &Room::love3TouchedWarp1 },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::love3Timer3Expired },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::love3LookAtServicePanel },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::love3LookAtMonitor },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::love3LookAtWrench },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love3LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love3LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love3LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love3LookAtRedshirt },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love3LookAnywhere },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::love3LookAtShaft },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::love3LookAtGrate },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love3LookAtPanel },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::love3LookAtPanel },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::love3LookAtGasTank },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::love3LookAtTurbines },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love3TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love3TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love3TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love3TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::love3UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::love3UseSTricorderOnTurbines },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::love3UseSTricorderOnInsulation },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love3UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_KIRK, 8, 0), &Room::love3UseKirkOnServicePanel },
- { Action(ACTION_USE, OBJECT_SPOCK, 8, 0), &Room::love3UseSpockOnServicePanel },
- { Action(ACTION_USE, OBJECT_MCCOY, 8, 0), &Room::love3UseMccoyOnServicePanel },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 8, 0), &Room::love3UseRedshirtOnServicePanel },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::love3CrewmanReachedServicePanel },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::love3OpenedOrClosedServicePanel },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, 12, 0), &Room::love3UseWrenchOnGasTank },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::love3ReachedGasTankToUnscrew },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::love3ScrewedOrUnscrewedGasTank },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, OBJECT_IO2GAS, 0), &Room::love3UseWrenchOnO2OrH2Gas },
- { Action(ACTION_USE, OBJECT_IWRENCH, OBJECT_IH2GAS, 0), &Room::love3UseWrenchOnO2OrH2Gas },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, OBJECT_IN2GAS, 0), &Room::love3UseWrenchOnN2Gas },
- { Action(ACTION_FINISHED_WALKING, 15, 0, 0), &Room::love3ReachedGasTankToPutDown },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love3PutN2TankBack },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, 0x20, 0), &Room::love3UseWrenchOnEngineeringPanel },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::love3ReachedEngineeringPanel },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love3OpenedEngineeringPanel },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, 0x21, 0), &Room::love3UseWrenchOnMonitor },
-
- { Action(ACTION_USE, OBJECT_IH2O, 0x21, 0), &Room::love3UseWaterOnMonitor },
- { Action(ACTION_FINISHED_WALKING, 14, 0, 0), &Room::love3ReachedMonitorToUseWater },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::love3PouredWaterOnMonitor },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x20, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x20, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_KIRK, 11, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_SPOCK, 11, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_MCCOY, 11, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 11, 0), &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
-
- { Action(ACTION_USE, OBJECT_IWRENCH, 11, 0), &Room::love3UseWrenchOnGrate },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love3ReachedGateWithWrench },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::love3OpenedOrClosedGrate },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x22, 0), &Room::love3UseCrewmanOnShaft },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x22, 0), &Room::love3UseCrewmanOnShaft },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x22, 0), &Room::love3UseCrewmanOnShaft },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x22, 0), &Room::love3UseCrewmanOnShaft },
-
- { Action(ACTION_USE, OBJECT_IH2O, 0x22, 0), &Room::love3UseWaterOnShaft },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love3ReachedShaftUsingWater },
- { Action(ACTION_FINISHED_ANIMATION, 8, 0, 0), &Room::love3PouredWaterDownShaft },
-
- { Action(ACTION_USE, OBJECT_IN2O, 0x22, 0), &Room::love3UseNitrousOxideOnShaft },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::love3ReachedShaftUsingNitrousOxide },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::love3PouredNitrousOxideDownShaft },
-
- { Action(ACTION_USE, OBJECT_INH3, 0x22, 0), &Room::love3UseAmmoniaOnShaft },
- { Action(ACTION_FINISHED_WALKING, 7, 0, 0), &Room::love3ReachedShaftUsingAmmonia },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::love3PouredAmmoniaDownShaft },
-
- { Action(ACTION_USE, OBJECT_IRLG, 0x22, 0), &Room::love3UseRomulanLaughingGasOnShaft },
- { Action(ACTION_FINISHED_WALKING, 8, 0, 0), &Room::love3ReachedShaftUsingRomulanLaughingGas },
- { Action(ACTION_FINISHED_ANIMATION, 11, 0, 0), &Room::love3PouredRomulanLaughingGasDownShaft },
-
- { Action(ACTION_GET, 10, 0, 0), &Room::love3GetWrench },
- { Action(ACTION_FINISHED_WALKING, 9, 0, 0), &Room::love3ReachedWrenchToGet },
- { Action(ACTION_FINISHED_ANIMATION, 12, 0, 0), &Room::love3PickedUpWrench },
-
- { Action(ACTION_GET, 12, 0, 0), &Room::love3GetGasTank },
- { Action(ACTION_FINISHED_WALKING, 10, 0, 0), &Room::love3ReachedGasTankToGet },
-
- { Action(ACTION_USE, OBJECT_IANTIGRA, 12, 0), &Room::love3UseAntigravOnGasTank },
- { Action(ACTION_FINISHED_WALKING, 11, 0, 0), &Room::love3ReachedGasTankUsingAntigrav },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::love3PickedUpGasTank },
-
- { Action(ACTION_GET, 9, 0, 0), &Room::love3GetInsulation },
- { Action(ACTION_FINISHED_WALKING, 12, 0, 0), &Room::love3ReachedInsulationToGet },
- { Action(ACTION_FINISHED_ANIMATION, 14, 0, 0), &Room::love3PickedUpInsulation },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love3Tick1 },
+ { {ACTION_TICK, 80, 0, 0}, &Room::love3Tick80 },
+ { {ACTION_TOUCHED_WARP, 1, 0, 0}, &Room::love3TouchedWarp1 },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::love3Timer3Expired },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::love3LookAtServicePanel },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::love3LookAtMonitor },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::love3LookAtWrench },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love3LookAtKirk },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love3LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love3LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love3LookAtRedshirt },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love3LookAnywhere },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::love3LookAtShaft },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::love3LookAtGrate },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love3LookAtPanel },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::love3LookAtPanel },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::love3LookAtGasTank },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::love3LookAtTurbines },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love3TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love3TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love3TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love3TalkToRedshirt },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::love3UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::love3UseSTricorderOnTurbines },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::love3UseSTricorderOnInsulation },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love3UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_KIRK, 8, 0}, &Room::love3UseKirkOnServicePanel },
+ { {ACTION_USE, OBJECT_SPOCK, 8, 0}, &Room::love3UseSpockOnServicePanel },
+ { {ACTION_USE, OBJECT_MCCOY, 8, 0}, &Room::love3UseMccoyOnServicePanel },
+ { {ACTION_USE, OBJECT_REDSHIRT, 8, 0}, &Room::love3UseRedshirtOnServicePanel },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::love3CrewmanReachedServicePanel },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::love3OpenedOrClosedServicePanel },
+
+ { {ACTION_USE, OBJECT_IWRENCH, 12, 0}, &Room::love3UseWrenchOnGasTank },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::love3ReachedGasTankToUnscrew },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::love3ScrewedOrUnscrewedGasTank },
+
+ { {ACTION_USE, OBJECT_IWRENCH, OBJECT_IO2GAS, 0}, &Room::love3UseWrenchOnO2OrH2Gas },
+ { {ACTION_USE, OBJECT_IWRENCH, OBJECT_IH2GAS, 0}, &Room::love3UseWrenchOnO2OrH2Gas },
+
+ { {ACTION_USE, OBJECT_IWRENCH, OBJECT_IN2GAS, 0}, &Room::love3UseWrenchOnN2Gas },
+ { {ACTION_FINISHED_WALKING, 15, 0, 0}, &Room::love3ReachedGasTankToPutDown },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love3PutN2TankBack },
+
+ { {ACTION_USE, OBJECT_IWRENCH, 0x20, 0}, &Room::love3UseWrenchOnEngineeringPanel },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::love3ReachedEngineeringPanel },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love3OpenedEngineeringPanel },
+
+ { {ACTION_USE, OBJECT_IWRENCH, 0x21, 0}, &Room::love3UseWrenchOnMonitor },
+
+ { {ACTION_USE, OBJECT_IH2O, 0x21, 0}, &Room::love3UseWaterOnMonitor },
+ { {ACTION_FINISHED_WALKING, 14, 0, 0}, &Room::love3ReachedMonitorToUseWater },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::love3PouredWaterOnMonitor },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_MCCOY, 0x20, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x20, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_KIRK, 11, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_SPOCK, 11, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_MCCOY, 11, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+ { {ACTION_USE, OBJECT_REDSHIRT, 11, 0}, &Room::love3UseCrewmanOnEngineeringPanelOrGrate },
+
+ { {ACTION_USE, OBJECT_IWRENCH, 11, 0}, &Room::love3UseWrenchOnGrate },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love3ReachedGateWithWrench },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::love3OpenedOrClosedGrate },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x22, 0}, &Room::love3UseCrewmanOnShaft },
+ { {ACTION_USE, OBJECT_SPOCK, 0x22, 0}, &Room::love3UseCrewmanOnShaft },
+ { {ACTION_USE, OBJECT_MCCOY, 0x22, 0}, &Room::love3UseCrewmanOnShaft },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x22, 0}, &Room::love3UseCrewmanOnShaft },
+
+ { {ACTION_USE, OBJECT_IH2O, 0x22, 0}, &Room::love3UseWaterOnShaft },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love3ReachedShaftUsingWater },
+ { {ACTION_FINISHED_ANIMATION, 8, 0, 0}, &Room::love3PouredWaterDownShaft },
+
+ { {ACTION_USE, OBJECT_IN2O, 0x22, 0}, &Room::love3UseNitrousOxideOnShaft },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::love3ReachedShaftUsingNitrousOxide },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::love3PouredNitrousOxideDownShaft },
+
+ { {ACTION_USE, OBJECT_INH3, 0x22, 0}, &Room::love3UseAmmoniaOnShaft },
+ { {ACTION_FINISHED_WALKING, 7, 0, 0}, &Room::love3ReachedShaftUsingAmmonia },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::love3PouredAmmoniaDownShaft },
+
+ { {ACTION_USE, OBJECT_IRLG, 0x22, 0}, &Room::love3UseRomulanLaughingGasOnShaft },
+ { {ACTION_FINISHED_WALKING, 8, 0, 0}, &Room::love3ReachedShaftUsingRomulanLaughingGas },
+ { {ACTION_FINISHED_ANIMATION, 11, 0, 0}, &Room::love3PouredRomulanLaughingGasDownShaft },
+
+ { {ACTION_GET, 10, 0, 0}, &Room::love3GetWrench },
+ { {ACTION_FINISHED_WALKING, 9, 0, 0}, &Room::love3ReachedWrenchToGet },
+ { {ACTION_FINISHED_ANIMATION, 12, 0, 0}, &Room::love3PickedUpWrench },
+
+ { {ACTION_GET, 12, 0, 0}, &Room::love3GetGasTank },
+ { {ACTION_FINISHED_WALKING, 10, 0, 0}, &Room::love3ReachedGasTankToGet },
+
+ { {ACTION_USE, OBJECT_IANTIGRA, 12, 0}, &Room::love3UseAntigravOnGasTank },
+ { {ACTION_FINISHED_WALKING, 11, 0, 0}, &Room::love3ReachedGasTankUsingAntigrav },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::love3PickedUpGasTank },
+
+ { {ACTION_GET, 9, 0, 0}, &Room::love3GetInsulation },
+ { {ACTION_FINISHED_WALKING, 12, 0, 0}, &Room::love3ReachedInsulationToGet },
+ { {ACTION_FINISHED_ANIMATION, 14, 0, 0}, &Room::love3PickedUpInsulation },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
};
RoomAction love4ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love4Tick1 },
- { Action(ACTION_TICK, 10, 0, 0), &Room::love4Tick10 },
-
- { Action(ACTION_WALK, 8, 0, 0), &Room::love4WalkToDoor },
- { Action(ACTION_WALK, 0x20, 0, 0), &Room::love4WalkToDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::love4TouchedHotspot0 },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::love4DoorOpenedOrReached },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::love4DoorOpenedOrReached },
-
- { Action(ACTION_USE, OBJECT_KIRK, 0x21, 0), &Room::love4UseKirkOnLadder },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::love4ReachedLadder },
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::love4UseStunPhaserOnRomulan },
- { Action(ACTION_USE, OBJECT_IPHASERS, 10, 0), &Room::love4UseStunPhaserOnRomulan },
- { Action(ACTION_USE, OBJECT_IPHASERS, 11, 0), &Room::love4UseStunPhaserOnRomulan },
- { Action(ACTION_USE, OBJECT_IPHASERS, 12, 0), &Room::love4UseStunPhaserOnRomulan },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love4Tick1 },
+ { {ACTION_TICK, 10, 0, 0}, &Room::love4Tick10 },
+
+ { {ACTION_WALK, 8, 0, 0}, &Room::love4WalkToDoor },
+ { {ACTION_WALK, 0x20, 0, 0}, &Room::love4WalkToDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::love4TouchedHotspot0 },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::love4DoorOpenedOrReached },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::love4DoorOpenedOrReached },
+
+ { {ACTION_USE, OBJECT_KIRK, 0x21, 0}, &Room::love4UseKirkOnLadder },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::love4ReachedLadder },
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::love4UseStunPhaserOnRomulan },
+ { {ACTION_USE, OBJECT_IPHASERS, 10, 0}, &Room::love4UseStunPhaserOnRomulan },
+ { {ACTION_USE, OBJECT_IPHASERS, 11, 0}, &Room::love4UseStunPhaserOnRomulan },
+ { {ACTION_USE, OBJECT_IPHASERS, 12, 0}, &Room::love4UseStunPhaserOnRomulan },
// NOTE: nothing for OBJECT_IPHASERK. There's an unused audio file which might fit.
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love4LookAnywhere },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::love4LookAtLadder },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::love4LookAtDoor },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love4LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love4LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love4LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love4LookAtRedshirt },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love4LookAtRomulan },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::love4LookAtRomulan },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::love4LookAtRomulan },
- { Action(ACTION_LOOK, 12, 0, 0), &Room::love4LookAtRomulan },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love4TalkToKirk },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love4TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love4TalkToRedshirt },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love4TalkToSpock },
- { Action(ACTION_TALK, 9, 0, 0), &Room::love4TalkToRomulan },
- { Action(ACTION_TALK, 10, 0, 0), &Room::love4TalkToRomulan },
- { Action(ACTION_TALK, 11, 0, 0), &Room::love4TalkToRomulan },
- { Action(ACTION_TALK, 12, 0, 0), &Room::love4TalkToRomulan },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::love4UseMTricorderOnRomulan },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::love4UseMTricorderOnRomulan },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 11, 0), &Room::love4UseMTricorderOnRomulan },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 12, 0), &Room::love4UseMTricorderOnRomulan },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::love4UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love4UseSTricorderAnywhere },
-
- { Action(ACTION_USE, OBJECT_ICURE, 9, 0), &Room::love4UseCureOnRomulan },
- { Action(ACTION_USE, OBJECT_ICURE, 10, 0), &Room::love4UseCureOnRomulan },
- { Action(ACTION_USE, OBJECT_ICURE, 11, 0), &Room::love4UseCureOnRomulan },
- { Action(ACTION_USE, OBJECT_ICURE, 12, 0), &Room::love4UseCureOnRomulan },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::love4MccoyReachedRomulan4 },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::love4MccoyCuredRomulan4 },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love4MccoyReachedRomulan3 },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love4MccoyCuredRomulan3 },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love4MccoyReachedRomulan2 },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love4MccoyCuredRomulan2 },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::love4MccoyReachedRomulan1 },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::love4MccoyCuredRomulan1 },
-
- { Action(ACTION_USE, OBJECT_IH2O, 9, 0), &Room::love4UseWaterOnRomulan },
- { Action(ACTION_USE, OBJECT_IH2O, 10, 0), &Room::love4UseWaterOnRomulan },
- { Action(ACTION_USE, OBJECT_IH2O, 11, 0), &Room::love4UseWaterOnRomulan },
- { Action(ACTION_USE, OBJECT_IH2O, 12, 0), &Room::love4UseWaterOnRomulan },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 9, 0), &Room::love4UseMedkitOnRomulan },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 10, 0), &Room::love4UseMedkitOnRomulan },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 11, 0), &Room::love4UseMedkitOnRomulan },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 12, 0), &Room::love4UseMedkitOnRomulan },
- { Action(ACTION_USE, OBJECT_ISAMPLE, 9, 0), &Room::love4UseCureSampleOnRomulan },
- { Action(ACTION_USE, OBJECT_ISAMPLE, 10, 0), &Room::love4UseCureSampleOnRomulan },
- { Action(ACTION_USE, OBJECT_ISAMPLE, 11, 0), &Room::love4UseCureSampleOnRomulan },
- { Action(ACTION_USE, OBJECT_ISAMPLE, 12, 0), &Room::love4UseCureSampleOnRomulan },
- { Action(ACTION_USE, -1, 9, 0), &Room::love4UseAnythingOnRomulan },
- { Action(ACTION_USE, -1, 10, 0), &Room::love4UseAnythingOnRomulan },
- { Action(ACTION_USE, -1, 11, 0), &Room::love4UseAnythingOnRomulan },
- { Action(ACTION_USE, -1, 12, 0), &Room::love4UseAnythingOnRomulan },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love4LookAnywhere },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::love4LookAtLadder },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::love4LookAtDoor },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love4LookAtKirk },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love4LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love4LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love4LookAtRedshirt },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love4LookAtRomulan },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::love4LookAtRomulan },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::love4LookAtRomulan },
+ { {ACTION_LOOK, 12, 0, 0}, &Room::love4LookAtRomulan },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love4TalkToKirk },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love4TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love4TalkToRedshirt },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love4TalkToSpock },
+ { {ACTION_TALK, 9, 0, 0}, &Room::love4TalkToRomulan },
+ { {ACTION_TALK, 10, 0, 0}, &Room::love4TalkToRomulan },
+ { {ACTION_TALK, 11, 0, 0}, &Room::love4TalkToRomulan },
+ { {ACTION_TALK, 12, 0, 0}, &Room::love4TalkToRomulan },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::love4UseMTricorderOnRomulan },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::love4UseMTricorderOnRomulan },
+ { {ACTION_USE, OBJECT_IMTRICOR, 11, 0}, &Room::love4UseMTricorderOnRomulan },
+ { {ACTION_USE, OBJECT_IMTRICOR, 12, 0}, &Room::love4UseMTricorderOnRomulan },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::love4UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love4UseSTricorderAnywhere },
+
+ { {ACTION_USE, OBJECT_ICURE, 9, 0}, &Room::love4UseCureOnRomulan },
+ { {ACTION_USE, OBJECT_ICURE, 10, 0}, &Room::love4UseCureOnRomulan },
+ { {ACTION_USE, OBJECT_ICURE, 11, 0}, &Room::love4UseCureOnRomulan },
+ { {ACTION_USE, OBJECT_ICURE, 12, 0}, &Room::love4UseCureOnRomulan },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::love4MccoyReachedRomulan4 },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::love4MccoyCuredRomulan4 },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love4MccoyReachedRomulan3 },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love4MccoyCuredRomulan3 },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love4MccoyReachedRomulan2 },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love4MccoyCuredRomulan2 },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::love4MccoyReachedRomulan1 },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::love4MccoyCuredRomulan1 },
+
+ { {ACTION_USE, OBJECT_IH2O, 9, 0}, &Room::love4UseWaterOnRomulan },
+ { {ACTION_USE, OBJECT_IH2O, 10, 0}, &Room::love4UseWaterOnRomulan },
+ { {ACTION_USE, OBJECT_IH2O, 11, 0}, &Room::love4UseWaterOnRomulan },
+ { {ACTION_USE, OBJECT_IH2O, 12, 0}, &Room::love4UseWaterOnRomulan },
+ { {ACTION_USE, OBJECT_IMEDKIT, 9, 0}, &Room::love4UseMedkitOnRomulan },
+ { {ACTION_USE, OBJECT_IMEDKIT, 10, 0}, &Room::love4UseMedkitOnRomulan },
+ { {ACTION_USE, OBJECT_IMEDKIT, 11, 0}, &Room::love4UseMedkitOnRomulan },
+ { {ACTION_USE, OBJECT_IMEDKIT, 12, 0}, &Room::love4UseMedkitOnRomulan },
+ { {ACTION_USE, OBJECT_ISAMPLE, 9, 0}, &Room::love4UseCureSampleOnRomulan },
+ { {ACTION_USE, OBJECT_ISAMPLE, 10, 0}, &Room::love4UseCureSampleOnRomulan },
+ { {ACTION_USE, OBJECT_ISAMPLE, 11, 0}, &Room::love4UseCureSampleOnRomulan },
+ { {ACTION_USE, OBJECT_ISAMPLE, 12, 0}, &Room::love4UseCureSampleOnRomulan },
+ { {ACTION_USE, -1, 9, 0}, &Room::love4UseAnythingOnRomulan },
+ { {ACTION_USE, -1, 10, 0}, &Room::love4UseAnythingOnRomulan },
+ { {ACTION_USE, -1, 11, 0}, &Room::love4UseAnythingOnRomulan },
+ { {ACTION_USE, -1, 12, 0}, &Room::love4UseAnythingOnRomulan },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
};
RoomAction love5ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::love5Tick1 },
- { Action(ACTION_TOUCHED_WARP, 1, 0, 0), &Room::love5TouchedWarp1 },
- { Action(ACTION_TIMER_EXPIRED, 4, 0, 0), &Room::love5Timer4Expired },
- { Action(ACTION_USE, OBJECT_IPHASERS, 9, 0), &Room::love5UseStunPhaserOnPreax },
+ { {ACTION_TICK, 1, 0, 0}, &Room::love5Tick1 },
+ { {ACTION_TOUCHED_WARP, 1, 0, 0}, &Room::love5TouchedWarp1 },
+ { {ACTION_TIMER_EXPIRED, 4, 0, 0}, &Room::love5Timer4Expired },
+ { {ACTION_USE, OBJECT_IPHASERS, 9, 0}, &Room::love5UseStunPhaserOnPreax },
// NOTE: nothing for OBJECT_IPHASERK. There's an unused audio file which might fit.
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::love5LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::love5LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::love5LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::love5LookAtRedshirt },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::love5LookAnywhere },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::love5LookAtDevice },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::love5LookAtConsole },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::love5LookAtDrMarcus },
- { Action(ACTION_LOOK, 11, 0, 0), &Room::love5LookAtDrCheever },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::love5LookAtPreax },
- { Action(ACTION_TALK, 9, 0, 0), &Room::love5TalkToPreax },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::love5MccoyReachedSpockToCure },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::love5MccoyCuredSpock },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::love5CrewmanReachedBeamoutPosition },
- { Action(ACTION_TALK, 10, 0, 0), &Room::love5TalkToDrMarcus },
- { Action(ACTION_TALK, 11, 0, 0), &Room::love5TalkToDrCheever },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::love5TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::love5TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::love5TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::love5TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::love5UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::love5UseSTricorderOnDevice },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 10, 0), &Room::love5UseMTricorderOnMarcusOrCheever },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 11, 0), &Room::love5UseMTricorderOnMarcusOrCheever },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 9, 0), &Room::love5UseMTricorderOnPreax },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 9, 0), &Room::love5UseMedkitOnPreax },
- { Action(ACTION_USE, OBJECT_IH2O, 9, 0), &Room::love5UseWaterOnPreax },
- { Action(ACTION_USE, OBJECT_ISAMPLE, 9, 0), &Room::love5UseCureSampleOnPreax },
- { Action(ACTION_USE, OBJECT_ICURE, 9, 0), &Room::love5UseCureOnPreax },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::love5ReachedPreaxUsingCure },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::love5CuredPreax },
- { Action(ACTION_USE, -1, 9, 0), &Room::love5UseAnythingOnPreax },
- { Action(ACTION_USE, OBJECT_KIRK, 10, 0), &Room::love5UseKirkOnMarcusOrCheever },
- { Action(ACTION_USE, OBJECT_KIRK, 11, 0), &Room::love5UseKirkOnMarcusOrCheever },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::love5KirkReachedCheever },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::love5KirkUntiedCheever },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::love5KirkReachedMarcus },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::love5KirkUntiedMarcus },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::love5MarcusStoodUp },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::love5LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::love5LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::love5LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::love5LookAtRedshirt },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::love5LookAnywhere },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::love5LookAtDevice },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::love5LookAtConsole },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::love5LookAtDrMarcus },
+ { {ACTION_LOOK, 11, 0, 0}, &Room::love5LookAtDrCheever },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::love5LookAtPreax },
+ { {ACTION_TALK, 9, 0, 0}, &Room::love5TalkToPreax },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::love5MccoyReachedSpockToCure },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::love5MccoyCuredSpock },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::love5CrewmanReachedBeamoutPosition },
+ { {ACTION_TALK, 10, 0, 0}, &Room::love5TalkToDrMarcus },
+ { {ACTION_TALK, 11, 0, 0}, &Room::love5TalkToDrCheever },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::love5TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::love5TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::love5TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::love5TalkToRedshirt },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::love5UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::love5UseSTricorderOnDevice },
+ { {ACTION_USE, OBJECT_IMTRICOR, 10, 0}, &Room::love5UseMTricorderOnMarcusOrCheever },
+ { {ACTION_USE, OBJECT_IMTRICOR, 11, 0}, &Room::love5UseMTricorderOnMarcusOrCheever },
+ { {ACTION_USE, OBJECT_IMTRICOR, 9, 0}, &Room::love5UseMTricorderOnPreax },
+ { {ACTION_USE, OBJECT_IMEDKIT, 9, 0}, &Room::love5UseMedkitOnPreax },
+ { {ACTION_USE, OBJECT_IH2O, 9, 0}, &Room::love5UseWaterOnPreax },
+ { {ACTION_USE, OBJECT_ISAMPLE, 9, 0}, &Room::love5UseCureSampleOnPreax },
+ { {ACTION_USE, OBJECT_ICURE, 9, 0}, &Room::love5UseCureOnPreax },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::love5ReachedPreaxUsingCure },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::love5CuredPreax },
+ { {ACTION_USE, -1, 9, 0}, &Room::love5UseAnythingOnPreax },
+ { {ACTION_USE, OBJECT_KIRK, 10, 0}, &Room::love5UseKirkOnMarcusOrCheever },
+ { {ACTION_USE, OBJECT_KIRK, 11, 0}, &Room::love5UseKirkOnMarcusOrCheever },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::love5KirkReachedCheever },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::love5KirkUntiedCheever },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::love5KirkReachedMarcus },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::love5KirkUntiedMarcus },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::love5MarcusStoodUp },
// Common code
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::loveaTimer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::loveaTimer1Expired },
- { Action(ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0), &Room::loveaUseMedkitOnSpock },
- { Action(ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0), &Room::loveaUseCureSampleOnSpock },
- { Action(ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0), &Room::loveaUseCureOnSpock },
- { Action(ACTION_FINISHED_WALKING, 99, 0, 0), &Room::loveaSpockOrMccoyInPositionToUseCure },
- { Action(ACTION_FINISHED_ANIMATION, 99, 0, 0), &Room::loveaFinishedCuringSpock },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::loveaTimer2Expired },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0), &Room::loveaUseMTricorderOnSpock },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0), &Room::loveaUseMTricorderOnHuman },
- { Action(ACTION_USE, OBJECT_IRLG, -1, 0), &Room::loveaUseRomulanLaughingGas },
- { Action(ACTION_USE, OBJECT_IN2O, -1, 0), &Room::loveaUseHumanLaughingGas },
- { Action(ACTION_USE, OBJECT_INH3, -1, 0), &Room::loveaUseAmmonia },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::loveaUseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::loveaTimer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::loveaTimer1Expired },
+ { {ACTION_USE, OBJECT_IMEDKIT, OBJECT_SPOCK, 0}, &Room::loveaUseMedkitOnSpock },
+ { {ACTION_USE, OBJECT_ISAMPLE, OBJECT_SPOCK, 0}, &Room::loveaUseCureSampleOnSpock },
+ { {ACTION_USE, OBJECT_ICURE, OBJECT_SPOCK, 0}, &Room::loveaUseCureOnSpock },
+ { {ACTION_FINISHED_WALKING, 99, 0, 0}, &Room::loveaSpockOrMccoyInPositionToUseCure },
+ { {ACTION_FINISHED_ANIMATION, 99, 0, 0}, &Room::loveaFinishedCuringSpock },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::loveaTimer2Expired },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_SPOCK, 0}, &Room::loveaUseMTricorderOnSpock },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_KIRK, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_MCCOY, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IMTRICOR, OBJECT_REDSHIRT, 0}, &Room::loveaUseMTricorderOnHuman },
+ { {ACTION_USE, OBJECT_IRLG, -1, 0}, &Room::loveaUseRomulanLaughingGas },
+ { {ACTION_USE, OBJECT_IN2O, -1, 0}, &Room::loveaUseHumanLaughingGas },
+ { {ACTION_USE, OBJECT_INH3, -1, 0}, &Room::loveaUseAmmonia },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::loveaUseCommunicator },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd0ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd0Tick1 },
- { Action(ACTION_TICK, 50, 0, 0), &Room::mudd0Tick50 },
- { Action(ACTION_TICK, 60, 0, 0), &Room::mudd0Tick60 },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::mudd0UsePhaserOnMudd },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::mudd0UsePhaserOnMudd },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd0UseCommunicator },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::mudd0LookAtFoodBox },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::mudd0LookAtComponentBox },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::mudd0LookAnywhere },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd0LookAtMemoryDiskBox },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::mudd0LookAtDegrimerBox },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::mudd0LookAtLense },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::mudd0UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, -1, 0), &Room::mudd0UseMTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::mudd0UseSTricorderOnMemoryDiskBox },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::mudd0UseSTricorderOnDegrimerBox },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::mudd0UseMTricorderOnLense },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd0Tick1 },
+ { {ACTION_TICK, 50, 0, 0}, &Room::mudd0Tick50 },
+ { {ACTION_TICK, 60, 0, 0}, &Room::mudd0Tick60 },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::mudd0UsePhaserOnMudd },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::mudd0UsePhaserOnMudd },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd0UseCommunicator },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::mudd0LookAtFoodBox },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::mudd0LookAtComponentBox },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::mudd0LookAnywhere },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd0LookAtMemoryDiskBox },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::mudd0LookAtDegrimerBox },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::mudd0LookAtLense },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::mudd0UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, -1, 0}, &Room::mudd0UseMTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::mudd0UseSTricorderOnMemoryDiskBox },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::mudd0UseSTricorderOnDegrimerBox },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::mudd0UseMTricorderOnLense },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::muddaFiredAlienDevice },
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
-
- { Action(ACTION_GET, 0x21, 0, 0), &Room::mudd0GetLense },
- { Action(ACTION_GET, 0x20, 0, 0), &Room::mudd0GetMemoryDisk },
- { Action(ACTION_GET, 0x22, 0, 0), &Room::mudd0GetDegrimer },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd0PickedUpLense },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::mudd0PickedUpItem },
- { Action(ACTION_WALK, 0x26, 0, 0), &Room::mudd0WalkToSouthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::mudd0TouchedHotspot1 },
- { Action(ACTION_WALK, 0x25, 0, 0), &Room::mudd0WalkToNorthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd0TouchedHotspot0 },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::mudd0UseMedkit },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd0LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd0LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd0LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd0LookAtRedshirt },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::mudd0LookAtMudd },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd0TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd0TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd0TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd0TalkToRedshirt },
- { Action(ACTION_TALK, 8, 0, 0), &Room::mudd0TalkToMudd },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::muddaFiredAlienDevice },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
+
+ { {ACTION_GET, 0x21, 0, 0}, &Room::mudd0GetLense },
+ { {ACTION_GET, 0x20, 0, 0}, &Room::mudd0GetMemoryDisk },
+ { {ACTION_GET, 0x22, 0, 0}, &Room::mudd0GetDegrimer },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd0PickedUpLense },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::mudd0PickedUpItem },
+ { {ACTION_WALK, 0x26, 0, 0}, &Room::mudd0WalkToSouthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::mudd0TouchedHotspot1 },
+ { {ACTION_WALK, 0x25, 0, 0}, &Room::mudd0WalkToNorthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd0TouchedHotspot0 },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::mudd0UseMedkit },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd0LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd0LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd0LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd0LookAtRedshirt },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::mudd0LookAtMudd },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd0TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd0TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd0TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd0TalkToRedshirt },
+ { {ACTION_TALK, 8, 0, 0}, &Room::mudd0TalkToMudd },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd1ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd1Tick1 },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd1Timer1Expired },
-
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd1UseCommunicator },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x23, 0), &Room::mudd1UseSpockOnBlueButton },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::mudd1SpockReachedBlueButton },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::mudd1SpockPressedBlueButton },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::mudd1CraneFinishedMoving },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x24, 0), &Room::mudd1UseSpockOnYellowButton },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::mudd1SpockReachedYellowButton },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::mudd1SpockPressedYellowButton },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x25, 0), &Room::mudd1UseSpockOnRedButton },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::mudd1SpockReachedRedButton },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::mudd1SpockPressedRedButton },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd1Tick1 },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd1Timer1Expired },
+
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd1UseCommunicator },
+ { {ACTION_USE, OBJECT_SPOCK, 0x23, 0}, &Room::mudd1UseSpockOnBlueButton },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::mudd1SpockReachedBlueButton },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::mudd1SpockPressedBlueButton },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::mudd1CraneFinishedMoving },
+ { {ACTION_USE, OBJECT_SPOCK, 0x24, 0}, &Room::mudd1UseSpockOnYellowButton },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::mudd1SpockReachedYellowButton },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::mudd1SpockPressedYellowButton },
+ { {ACTION_USE, OBJECT_SPOCK, 0x25, 0}, &Room::mudd1UseSpockOnRedButton },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::mudd1SpockReachedRedButton },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::mudd1SpockPressedRedButton },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::muddaFiredAlienDevice },
-
- { Action(ACTION_GET, 9, 0, 0), &Room::mudd1GetTorpedo },
- { Action(ACTION_GET, 0x21, 0, 0), &Room::mudd1GetTorpedo },
- { Action(ACTION_GET, 0x20, 0, 0), &Room::mudd1GetTorpedo },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::mudd1UseSTricorderOnTorpedo },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::mudd1UseSTricorderOnTorpedo },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::mudd1UseSTricorderOnTorpedo },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::mudd1UseSTricorderOnTorpedoLauncher },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x25, 0), &Room::mudd1UseSTricorderOnButton },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::mudd1UseSTricorderOnButton },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x24, 0), &Room::mudd1UseSTricorderOnButton },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::mudd1UseSTricorderOnCrane },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::mudd1UseMedkitAnywhere },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::mudd1LookAnywhere },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd1LookAtTorpedo },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::mudd1LookAtTorpedo },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::mudd1LookAtFallenTorpedo },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::mudd1LookAtTorpedoLauncher },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd1LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd1LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd1LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd1LookAtRedshirt },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::mudd1LookAtCrane },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::mudd1LookAtRedButton },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::mudd1LookAtBlueButton },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::mudd1LookAtYellowButton },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd1TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd1TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd1TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd1TalkToRedshirt },
- { Action(ACTION_WALK, 0x28, 0, 0), &Room::mudd1WalkToSouthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 2, 0, 0), &Room::mudd1TouchedHotspot2 },
- { Action(ACTION_WALK, 0x27, 0, 0), &Room::mudd1WalkToNorthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::mudd1TouchedHotspot1 },
- { Action(ACTION_WALK, 0x26, 0, 0), &Room::mudd1WalkToWestDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd1TouchedHotspot0 },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::muddaFiredAlienDevice },
+
+ { {ACTION_GET, 9, 0, 0}, &Room::mudd1GetTorpedo },
+ { {ACTION_GET, 0x21, 0, 0}, &Room::mudd1GetTorpedo },
+ { {ACTION_GET, 0x20, 0, 0}, &Room::mudd1GetTorpedo },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::mudd1UseSTricorderOnTorpedo },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::mudd1UseSTricorderOnTorpedo },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::mudd1UseSTricorderOnTorpedo },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::mudd1UseSTricorderOnTorpedoLauncher },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x25, 0}, &Room::mudd1UseSTricorderOnButton },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::mudd1UseSTricorderOnButton },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x24, 0}, &Room::mudd1UseSTricorderOnButton },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::mudd1UseSTricorderOnCrane },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::mudd1UseMedkitAnywhere },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::mudd1LookAnywhere },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd1LookAtTorpedo },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::mudd1LookAtTorpedo },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::mudd1LookAtFallenTorpedo },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::mudd1LookAtTorpedoLauncher },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd1LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd1LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd1LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd1LookAtRedshirt },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::mudd1LookAtCrane },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::mudd1LookAtRedButton },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::mudd1LookAtBlueButton },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::mudd1LookAtYellowButton },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd1TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd1TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd1TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd1TalkToRedshirt },
+ { {ACTION_WALK, 0x28, 0, 0}, &Room::mudd1WalkToSouthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 2, 0, 0}, &Room::mudd1TouchedHotspot2 },
+ { {ACTION_WALK, 0x27, 0, 0}, &Room::mudd1WalkToNorthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::mudd1TouchedHotspot1 },
+ { {ACTION_WALK, 0x26, 0, 0}, &Room::mudd1WalkToWestDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd1TouchedHotspot0 },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd2ActionList[] = {
- { Action(ACTION_WALK, 0x21, 0, 0), &Room::mudd2WalkToNorthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd2TouchedHotspot0 },
- { Action(ACTION_WALK, 0x22, 0, 0), &Room::mudd2WalkToSouthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::mudd2TouchedHotspot1 },
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd2Tick1 },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd2Timer1Expired },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::mudd2UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x20, 0), &Room::mudd2UseSpockOnCapsules },
- { Action(ACTION_GET, 0x20, 0, 0), &Room::mudd2GetCapsules },
- { Action(ACTION_FINISHED_WALKING, 12, 0, 0), &Room::mudd2MccoyReachedCapsules },
- { Action(ACTION_FINISHED_ANIMATION, 13, 0, 0), &Room::mudd2MccoyPickedUpCapsules },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd2UseCommunicator },
+ { {ACTION_WALK, 0x21, 0, 0}, &Room::mudd2WalkToNorthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd2TouchedHotspot0 },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::mudd2WalkToSouthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::mudd2TouchedHotspot1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd2Tick1 },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd2Timer1Expired },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::mudd2UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_SPOCK, 0x20, 0}, &Room::mudd2UseSpockOnCapsules },
+ { {ACTION_GET, 0x20, 0, 0}, &Room::mudd2GetCapsules },
+ { {ACTION_FINISHED_WALKING, 12, 0, 0}, &Room::mudd2MccoyReachedCapsules },
+ { {ACTION_FINISHED_ANIMATION, 13, 0, 0}, &Room::mudd2MccoyPickedUpCapsules },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd2UseCommunicator },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 18, 0, 0), &Room::muddaFiredAlienDevice },
-
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd2LookAtCapsules },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x20, 0), &Room::mudd2UseMTricorderOnCapsules },
- { Action(ACTION_USE, OBJECT_ICAPSULE, 0x23, 0), &Room::mudd2UseCapsuleOnControlPanel },
- { Action(ACTION_FINISHED_WALKING, 15, 0, 0), &Room::mudd2MccoyReachedControlPanel },
- { Action(ACTION_FINISHED_ANIMATION, 15, 0, 0), &Room::mudd2MccoyPutCapsuleInControlPanel },
- { Action(ACTION_USE, OBJECT_KIRK, 0x24, 0), &Room::mudd2UseKirkOnBed },
- { Action(ACTION_USE, OBJECT_KIRK, 0x25, 0), &Room::mudd2UseKirkOnBed },
- { Action(ACTION_FINISHED_WALKING, 6, 0, 0), &Room::mudd2KirkReachedBed },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::mudd2MuddNoticedKirk },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::mudd2MuddDroppedCapsule },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::mudd2UsePhaserOnMudd },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::mudd2UsePhaserOnMudd },
-
- { Action(ACTION_USE, OBJECT_SPOCK, 8, 0), &Room::mudd2UseSpockOnMudd },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::mudd2SpockReachedMudd },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::mudd2SpockPinchedMudd },
- { Action(ACTION_USE, OBJECT_KIRK, 8, 0), &Room::mudd2UseKirkOnMudd },
-
- { Action(ACTION_USE, OBJECT_REDSHIRT, 8, 0), &Room::mudd2UseRedshirtOnMudd },
- { Action(ACTION_FINISHED_WALKING, 16, 0, 0), &Room::mudd2RedshirtReachedMudd },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::mudd2Timer2Expired },
- { Action(ACTION_FINISHED_ANIMATION, 17, 0, 0), &Room::mudd2MuddFinishedPushingRedshirt },
- { Action(ACTION_FINISHED_ANIMATION, 16, 0, 0), &Room::mudd2RedshirtPushedAway },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::mudd2UseMTricorderOnMudd },
- { Action(ACTION_USE, OBJECT_IMEDKIT, 8, 0), &Room::mudd2UseMedkitOnMudd },
- { Action(ACTION_USE, OBJECT_MCCOY, 8, 0), &Room::mudd2UseMedkitOnMudd },
- { Action(ACTION_FINISHED_WALKING, 10, 0, 0), &Room::mudd2MccoyReachedMudd },
- { Action(ACTION_FINISHED_ANIMATION, 11, 0, 0), &Room::mudd2MccoyCuredMudd },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd2LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd2LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd2LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd2LookAtRedshirt },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::mudd2LookAtMudd },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::mudd2LookAtControlPanel },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::mudd2LookAtBed },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::mudd2LookAtBed },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd2TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd2TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd2TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd2TalkToRedshirt },
- { Action(ACTION_TALK, 8, 0, 0), &Room::mudd2TalkToMudd },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 18, 0, 0}, &Room::muddaFiredAlienDevice },
+
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd2LookAtCapsules },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x20, 0}, &Room::mudd2UseMTricorderOnCapsules },
+ { {ACTION_USE, OBJECT_ICAPSULE, 0x23, 0}, &Room::mudd2UseCapsuleOnControlPanel },
+ { {ACTION_FINISHED_WALKING, 15, 0, 0}, &Room::mudd2MccoyReachedControlPanel },
+ { {ACTION_FINISHED_ANIMATION, 15, 0, 0}, &Room::mudd2MccoyPutCapsuleInControlPanel },
+ { {ACTION_USE, OBJECT_KIRK, 0x24, 0}, &Room::mudd2UseKirkOnBed },
+ { {ACTION_USE, OBJECT_KIRK, 0x25, 0}, &Room::mudd2UseKirkOnBed },
+ { {ACTION_FINISHED_WALKING, 6, 0, 0}, &Room::mudd2KirkReachedBed },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::mudd2MuddNoticedKirk },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::mudd2MuddDroppedCapsule },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::mudd2UsePhaserOnMudd },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::mudd2UsePhaserOnMudd },
+
+ { {ACTION_USE, OBJECT_SPOCK, 8, 0}, &Room::mudd2UseSpockOnMudd },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::mudd2SpockReachedMudd },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::mudd2SpockPinchedMudd },
+ { {ACTION_USE, OBJECT_KIRK, 8, 0}, &Room::mudd2UseKirkOnMudd },
+
+ { {ACTION_USE, OBJECT_REDSHIRT, 8, 0}, &Room::mudd2UseRedshirtOnMudd },
+ { {ACTION_FINISHED_WALKING, 16, 0, 0}, &Room::mudd2RedshirtReachedMudd },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::mudd2Timer2Expired },
+ { {ACTION_FINISHED_ANIMATION, 17, 0, 0}, &Room::mudd2MuddFinishedPushingRedshirt },
+ { {ACTION_FINISHED_ANIMATION, 16, 0, 0}, &Room::mudd2RedshirtPushedAway },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::mudd2UseMTricorderOnMudd },
+ { {ACTION_USE, OBJECT_IMEDKIT, 8, 0}, &Room::mudd2UseMedkitOnMudd },
+ { {ACTION_USE, OBJECT_MCCOY, 8, 0}, &Room::mudd2UseMedkitOnMudd },
+ { {ACTION_FINISHED_WALKING, 10, 0, 0}, &Room::mudd2MccoyReachedMudd },
+ { {ACTION_FINISHED_ANIMATION, 11, 0, 0}, &Room::mudd2MccoyCuredMudd },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd2LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd2LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd2LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd2LookAtRedshirt },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::mudd2LookAtMudd },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::mudd2LookAtControlPanel },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::mudd2LookAtBed },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::mudd2LookAtBed },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd2TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd2TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd2TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd2TalkToRedshirt },
+ { {ACTION_TALK, 8, 0, 0}, &Room::mudd2TalkToMudd },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd3ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd3Tick1 },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd3UseCommunicator },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd3LookAtScreen },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::mudd3UseSTricorderOnScreen },
- { Action(ACTION_USE, OBJECT_KIRK, 0x20, 0), &Room::mudd3UseKirkOnScreen },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::mudd3UseSpockOnSphere },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::mudd3Timer3Expired },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::mudd3UseMccoyOnSphere },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x21, 0), &Room::mudd3UseRedshirtOnSphere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 0x21, 0), &Room::mudd3UseMTricorderOnSphere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::mudd3UseSTricorderOnSphere },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::mudd3ReadyToHookUpTricorders },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd3Timer1Expired },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::mudd3Timer2Expired },
- { Action(ACTION_TIMER_EXPIRED, 4, 0, 0), &Room::mudd3Timer4Expired },
- { Action(ACTION_USE, OBJECT_IDISKS, 0x21, 0), &Room::mudd3UseMemoryDiskOnSphere },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd3Tick1 },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd3UseCommunicator },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd3LookAtScreen },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::mudd3UseSTricorderOnScreen },
+ { {ACTION_USE, OBJECT_KIRK, 0x20, 0}, &Room::mudd3UseKirkOnScreen },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::mudd3UseSpockOnSphere },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::mudd3Timer3Expired },
+ { {ACTION_USE, OBJECT_MCCOY, 0x21, 0}, &Room::mudd3UseMccoyOnSphere },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x21, 0}, &Room::mudd3UseRedshirtOnSphere },
+ { {ACTION_USE, OBJECT_IMTRICOR, 0x21, 0}, &Room::mudd3UseMTricorderOnSphere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::mudd3UseSTricorderOnSphere },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::mudd3ReadyToHookUpTricorders },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd3Timer1Expired },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::mudd3Timer2Expired },
+ { {ACTION_TIMER_EXPIRED, 4, 0, 0}, &Room::mudd3Timer4Expired },
+ { {ACTION_USE, OBJECT_IDISKS, 0x21, 0}, &Room::mudd3UseMemoryDiskOnSphere },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::muddaFiredAlienDevice },
-
- { Action(ACTION_GET, 13, 0, 0), &Room::mudd3GetRepairTool },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::mudd3ReachedRepairTool },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::mudd3PickedUpRepairTool },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::mudd3LookAtSphere },
- { Action(ACTION_WALK, 0x22, 0, 0), &Room::mudd3WalkToNorthDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd3TouchedHotspot0 },
- { Action(ACTION_WALK, 0x23, 0, 0), &Room::mudd3WalkToEastDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 1, 0, 0), &Room::mudd3TouchedHotspot1 },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd3LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd3LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd3LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd3LookAtRedshirt },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::mudd3LookAtMudd },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd3TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd3TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd3TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd3TalkToRedshirt },
- { Action(ACTION_TALK, 8, 0, 0), &Room::mudd3TalkToMudd },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::mudd3UseMedkit },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::muddaFiredAlienDevice },
+
+ { {ACTION_GET, 13, 0, 0}, &Room::mudd3GetRepairTool },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::mudd3ReachedRepairTool },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::mudd3PickedUpRepairTool },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::mudd3LookAtSphere },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::mudd3WalkToNorthDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd3TouchedHotspot0 },
+ { {ACTION_WALK, 0x23, 0, 0}, &Room::mudd3WalkToEastDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 1, 0, 0}, &Room::mudd3TouchedHotspot1 },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd3LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd3LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd3LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd3LookAtRedshirt },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::mudd3LookAtMudd },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd3TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd3TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd3TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd3TalkToRedshirt },
+ { {ACTION_TALK, 8, 0, 0}, &Room::mudd3TalkToMudd },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::mudd3UseMedkit },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd4ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd4Tick1 },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd4UseCommunicator },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::mudd4Timer2Expired },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::mudd4Timer3Expired },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x21, 0), &Room::mudd4UseSpockOnLeftConsole },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x22, 0), &Room::mudd4UseSpockOnLeftConsole },
- { Action(ACTION_USE, OBJECT_SPOCK, 0x23, 0), &Room::mudd4UseSpockOnRightConsole },
- { Action(ACTION_FINISHED_WALKING, 1, 0, 0), &Room::mudd4SpockReachedChair },
- { Action(ACTION_FINISHED_ANIMATION, 1, 0, 0), &Room::mudd4SpockSatInChair },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::mudd4SpockUsedSensors },
- { Action(ACTION_FINISHED_ANIMATION, 3, 0, 0), &Room::mudd4SpockUsedEngineering },
- { Action(ACTION_FINISHED_ANIMATION, 4, 0, 0), &Room::mudd4SpockUsedNavigation },
- { Action(ACTION_FINISHED_WALKING, 3, 0, 0), &Room::mudd4FinishedWalking3 },
- { Action(ACTION_USE, OBJECT_KIRK, 0x21, 0), &Room::mudd4UseKirkOnRightConsole },
- { Action(ACTION_USE, OBJECT_KIRK, 0x23, 0), &Room::mudd4UseKirkOnRightConsole },
- { Action(ACTION_USE, OBJECT_KIRK, 0x22, 0), &Room::mudd4UseKirkOnLeftConsole },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::mudd4KirkReachedRightConsole },
- { Action(ACTION_FINISHED_ANIMATION, 5, 0, 0), &Room::mudd4KirkSatInChair },
- { Action(ACTION_FINISHED_ANIMATION, 6, 0, 0), &Room::mudd4KirkUsedViewScreen },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd4Timer1Expired },
- { Action(ACTION_FINISHED_ANIMATION, 7, 0, 0), &Room::mudd4KirkUsedCommunications },
- { Action(ACTION_FINISHED_WALKING, 4, 0, 0), &Room::mudd4KirkReachedPositionToTalkToMudd },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x21, 0), &Room::mudd4UseMccoyOnConsole },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x22, 0), &Room::mudd4UseMccoyOnConsole },
- { Action(ACTION_USE, OBJECT_MCCOY, 0x23, 0), &Room::mudd4UseMccoyOnConsole },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x21, 0), &Room::mudd4UseRedshirtOnConsole },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x22, 0), &Room::mudd4UseRedshirtOnConsole },
- { Action(ACTION_USE, OBJECT_REDSHIRT, 0x23, 0), &Room::mudd4UseRedshirtOnConsole },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 10, 0), &Room::mudd4UseSTricorderOnRepairTool },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::mudd4UseSTricorderOnConsole },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd4Tick1 },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd4UseCommunicator },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::mudd4Timer2Expired },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::mudd4Timer3Expired },
+ { {ACTION_USE, OBJECT_SPOCK, 0x21, 0}, &Room::mudd4UseSpockOnLeftConsole },
+ { {ACTION_USE, OBJECT_SPOCK, 0x22, 0}, &Room::mudd4UseSpockOnLeftConsole },
+ { {ACTION_USE, OBJECT_SPOCK, 0x23, 0}, &Room::mudd4UseSpockOnRightConsole },
+ { {ACTION_FINISHED_WALKING, 1, 0, 0}, &Room::mudd4SpockReachedChair },
+ { {ACTION_FINISHED_ANIMATION, 1, 0, 0}, &Room::mudd4SpockSatInChair },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::mudd4SpockUsedSensors },
+ { {ACTION_FINISHED_ANIMATION, 3, 0, 0}, &Room::mudd4SpockUsedEngineering },
+ { {ACTION_FINISHED_ANIMATION, 4, 0, 0}, &Room::mudd4SpockUsedNavigation },
+ { {ACTION_FINISHED_WALKING, 3, 0, 0}, &Room::mudd4FinishedWalking3 },
+ { {ACTION_USE, OBJECT_KIRK, 0x21, 0}, &Room::mudd4UseKirkOnRightConsole },
+ { {ACTION_USE, OBJECT_KIRK, 0x23, 0}, &Room::mudd4UseKirkOnRightConsole },
+ { {ACTION_USE, OBJECT_KIRK, 0x22, 0}, &Room::mudd4UseKirkOnLeftConsole },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::mudd4KirkReachedRightConsole },
+ { {ACTION_FINISHED_ANIMATION, 5, 0, 0}, &Room::mudd4KirkSatInChair },
+ { {ACTION_FINISHED_ANIMATION, 6, 0, 0}, &Room::mudd4KirkUsedViewScreen },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd4Timer1Expired },
+ { {ACTION_FINISHED_ANIMATION, 7, 0, 0}, &Room::mudd4KirkUsedCommunications },
+ { {ACTION_FINISHED_WALKING, 4, 0, 0}, &Room::mudd4KirkReachedPositionToTalkToMudd },
+ { {ACTION_USE, OBJECT_MCCOY, 0x21, 0}, &Room::mudd4UseMccoyOnConsole },
+ { {ACTION_USE, OBJECT_MCCOY, 0x22, 0}, &Room::mudd4UseMccoyOnConsole },
+ { {ACTION_USE, OBJECT_MCCOY, 0x23, 0}, &Room::mudd4UseMccoyOnConsole },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x21, 0}, &Room::mudd4UseRedshirtOnConsole },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x22, 0}, &Room::mudd4UseRedshirtOnConsole },
+ { {ACTION_USE, OBJECT_REDSHIRT, 0x23, 0}, &Room::mudd4UseRedshirtOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, 10, 0}, &Room::mudd4UseSTricorderOnRepairTool },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::mudd4UseSTricorderOnConsole },
// ENHANCEMENT: Allow scanning the console to work when scanning the specific stations
// as well
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::mudd4UseSTricorderOnConsole },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x23, 0), &Room::mudd4UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::mudd4UseSTricorderOnConsole },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x23, 0}, &Room::mudd4UseSTricorderOnConsole },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::mudd4UseSTricorderOnViewscreen },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::mudd4UseSTricorderOnViewscreen },
// ENHANCEMENT: Allow scanning the viewscreen when it's on, not just when off
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::mudd4UseSTricorderOnViewscreen },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::mudd4UseSTricorderOnViewscreen },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::muddaFiredAlienDevice },
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::muddaFiredAlienDevice },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::mudd4UseMedkit },
- { Action(ACTION_GET, 10, 0, 0), &Room::mudd4GetRepairTool },
- { Action(ACTION_FINISHED_WALKING, 5, 0, 0), &Room::mudd4ReachedRepairTool },
- { Action(ACTION_FINISHED_ANIMATION, 10, 0, 0), &Room::mudd4PickedUpRepairTool },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::mudd4UseMedkit },
+ { {ACTION_GET, 10, 0, 0}, &Room::mudd4GetRepairTool },
+ { {ACTION_FINISHED_WALKING, 5, 0, 0}, &Room::mudd4ReachedRepairTool },
+ { {ACTION_FINISHED_ANIMATION, 10, 0, 0}, &Room::mudd4PickedUpRepairTool },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::mudd4LookAtConsole },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::mudd4LookAtConsole },
// ENHANCEMENT: Allow look action work with the specific stations as well
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::mudd4LookAtConsole },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::mudd4LookAtConsole },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::mudd4LookAtConsole },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::mudd4LookAtConsole },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd4LookAtViewscreen },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd4LookAtViewscreen },
// ENHANCEMENT: Allow look action work when viewscreen is on, not just when off
- { Action(ACTION_LOOK, 8, 0, 0), &Room::mudd4LookAtViewscreen },
-
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd4LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd4LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd4LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd4LookAtRedshirt },
- { Action(ACTION_LOOK, 10, 0, 0), &Room::mudd4LookAtRepairTool },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd4TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd4TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd4TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd4TalkToRedshirt },
- { Action(ACTION_WALK, 0x24, 0, 0), &Room::mudd4WalkToEastDoor },
- { Action(ACTION_WALK, 0x25, 0, 0), &Room::mudd4WalkToWestDoor },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd4TouchedHotspot0 },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::mudd4LookAtViewscreen },
+
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd4LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd4LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd4LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd4LookAtRedshirt },
+ { {ACTION_LOOK, 10, 0, 0}, &Room::mudd4LookAtRepairTool },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd4TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd4TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd4TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd4TalkToRedshirt },
+ { {ACTION_WALK, 0x24, 0, 0}, &Room::mudd4WalkToEastDoor },
+ { {ACTION_WALK, 0x25, 0, 0}, &Room::mudd4WalkToWestDoor },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd4TouchedHotspot0 },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction mudd5ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::mudd5Tick1 },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::mudd5Timer1Expired },
- { Action(ACTION_TIMER_EXPIRED, 2, 0, 0), &Room::mudd5Timer2Expired },
- { Action(ACTION_USE, OBJECT_ICOMM, -1, 0), &Room::mudd5UseCommunicator },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::mudd5UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x21, 0), &Room::mudd5UseSTricorderOnEngine },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x22, 0), &Room::mudd5UseSTricorderOnCrane },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 0x20, 0), &Room::mudd5UseSTricorderOnHatch },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 9, 0), &Room::mudd5UseSTricorderOnLifeSupportGenerator },
- { Action(ACTION_USE, OBJECT_IPHASERS, 0x20, 0), &Room::mudd5UseStunPhaserOnHatch },
- { Action(ACTION_USE, OBJECT_IPHASERK, 0x20, 0), &Room::mudd5UseKillPhaserOnHatch },
- { Action(ACTION_USE, -1, 9, 0), &Room::mudd5UseAnythingOnLifeSupportGenerator },
- { Action(ACTION_USE, OBJECT_IDOOVER, 9, 0), &Room::mudd5UseDooverOnLifeSupportGenerator },
- { Action(ACTION_FINISHED_WALKING, 2, 0, 0), &Room::mudd5KirkReachedLifeSupportGenerator },
- { Action(ACTION_TIMER_EXPIRED, 4, 0, 0), &Room::mudd5KirkTimer4Expired },
- { Action(ACTION_FINISHED_ANIMATION, 2, 0, 0), &Room::mudd5KirkRepairedLifeSupportGenerator },
- { Action(ACTION_TIMER_EXPIRED, 3, 0, 0), &Room::mudd5KirkTimer3Expired },
+ { {ACTION_TICK, 1, 0, 0}, &Room::mudd5Tick1 },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::mudd5Timer1Expired },
+ { {ACTION_TIMER_EXPIRED, 2, 0, 0}, &Room::mudd5Timer2Expired },
+ { {ACTION_USE, OBJECT_ICOMM, -1, 0}, &Room::mudd5UseCommunicator },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::mudd5UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x21, 0}, &Room::mudd5UseSTricorderOnEngine },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x22, 0}, &Room::mudd5UseSTricorderOnCrane },
+ { {ACTION_USE, OBJECT_ISTRICOR, 0x20, 0}, &Room::mudd5UseSTricorderOnHatch },
+ { {ACTION_USE, OBJECT_ISTRICOR, 9, 0}, &Room::mudd5UseSTricorderOnLifeSupportGenerator },
+ { {ACTION_USE, OBJECT_IPHASERS, 0x20, 0}, &Room::mudd5UseStunPhaserOnHatch },
+ { {ACTION_USE, OBJECT_IPHASERK, 0x20, 0}, &Room::mudd5UseKillPhaserOnHatch },
+ { {ACTION_USE, -1, 9, 0}, &Room::mudd5UseAnythingOnLifeSupportGenerator },
+ { {ACTION_USE, OBJECT_IDOOVER, 9, 0}, &Room::mudd5UseDooverOnLifeSupportGenerator },
+ { {ACTION_FINISHED_WALKING, 2, 0, 0}, &Room::mudd5KirkReachedLifeSupportGenerator },
+ { {ACTION_TIMER_EXPIRED, 4, 0, 0}, &Room::mudd5KirkTimer4Expired },
+ { {ACTION_FINISHED_ANIMATION, 2, 0, 0}, &Room::mudd5KirkRepairedLifeSupportGenerator },
+ { {ACTION_TIMER_EXPIRED, 3, 0, 0}, &Room::mudd5KirkTimer3Expired },
// Common code (next 4 lines)
- { Action(ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0), &Room::muddaUseLenseOnDegrimer },
- { Action(ACTION_USE, OBJECT_IALIENDV, -1, 0), &Room::muddaUseAlienDevice },
- { Action(ACTION_FINISHED_ANIMATION, 9, 0, 0), &Room::muddaFiredAlienDevice },
- { Action(ACTION_USE, OBJECT_IDEGRIME, -1, 0), &Room::muddaUseDegrimer },
-
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::mudd5LookAtHatch },
- { Action(ACTION_LOOK, 9, 0, 0), &Room::mudd5LookAtLifeSupportGenerator },
- { Action(ACTION_TOUCHED_HOTSPOT, 0, 0, 0), &Room::mudd5TouchedHotspot0 },
- { Action(ACTION_WALK, 0x22, 0, 0), &Room::mudd5WalkToDoor },
- { Action(ACTION_LOOK, OBJECT_KIRK, 0, 0), &Room::mudd5LookAtKirk },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::mudd5LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::mudd5LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::mudd5LookAtRedshirt },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::mudd5LookAtDoor },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::mudd5LookAtCrane },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::mudd5LookAtEngine },
- { Action(ACTION_TALK, OBJECT_KIRK, 0, 0), &Room::mudd5TalkToKirk },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::mudd5TalkToSpock },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::mudd5TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::mudd5TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::mudd5UseMedkit },
+ { {ACTION_USE, OBJECT_ILENSES, OBJECT_IDEGRIME, 0}, &Room::muddaUseLenseOnDegrimer },
+ { {ACTION_USE, OBJECT_IALIENDV, -1, 0}, &Room::muddaUseAlienDevice },
+ { {ACTION_FINISHED_ANIMATION, 9, 0, 0}, &Room::muddaFiredAlienDevice },
+ { {ACTION_USE, OBJECT_IDEGRIME, -1, 0}, &Room::muddaUseDegrimer },
+
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::mudd5LookAtHatch },
+ { {ACTION_LOOK, 9, 0, 0}, &Room::mudd5LookAtLifeSupportGenerator },
+ { {ACTION_TOUCHED_HOTSPOT, 0, 0, 0}, &Room::mudd5TouchedHotspot0 },
+ { {ACTION_WALK, 0x22, 0, 0}, &Room::mudd5WalkToDoor },
+ { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::mudd5LookAtKirk },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::mudd5LookAtSpock },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::mudd5LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd5LookAtRedshirt },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::mudd5LookAtDoor },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::mudd5LookAtCrane },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::mudd5LookAtEngine },
+ { {ACTION_TALK, OBJECT_KIRK, 0, 0}, &Room::mudd5TalkToKirk },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::mudd5TalkToSpock },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::mudd5TalkToMccoy },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::mudd5TalkToRedshirt },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::mudd5UseMedkit },
// Common code (countdown for losing atmosphere when life support malfunctioning)
- { Action(ACTION_TICK, -1, -1, -1), &Room::muddaTick },
+ { {ACTION_TICK, -1, -1, -1}, &Room::muddaTick },
};
RoomAction feather0ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather0Tick1 },
- { Action(ACTION_TICK, 60, 0, 0), &Room::feather0Tick60 },
- { Action(ACTION_TALK, 8, 0, 0), &Room::feather0TalkToQuetzecoatl },
- { Action(ACTION_TIMER_EXPIRED, 0, 0, 0), &Room::feather0Timer0Expired },
- { Action(ACTION_TIMER_EXPIRED, 1, 0, 0), &Room::feather0Timer1Expired },
- { Action(ACTION_USE, OBJECT_IPHASERS, 8, 0), &Room::feather0UsePhaserOnQuetzecoatl },
- { Action(ACTION_USE, OBJECT_IPHASERK, 8, 0), &Room::feather0UsePhaserOnQuetzecoatl },
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0), &Room::feather0UsePhaserOnMccoy },
- { Action(ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0), &Room::feather0UsePhaserOnMccoy },
- { Action(ACTION_USE, OBJECT_IMEDKIT, -1, 0), &Room::feather0UseMedkit },
- { Action(ACTION_LOOK, 8, 0, 0), &Room::feather0LookAtQuetzecoatl },
- { Action(ACTION_LOOK, 0x20, 0, 0), &Room::feather0LookAtMoon },
- { Action(ACTION_LOOK, 0x21, 0, 0), &Room::feather0LookAtLog },
- { Action(ACTION_LOOK, 0x22, 0, 0), &Room::feather0LookAtHut },
- { Action(ACTION_LOOK, -1, 0, 0), &Room::feather0LookAnywhere },
- { Action(ACTION_LOOK, 0x23, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x24, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x25, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x26, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x27, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x28, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x29, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x2a, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x2b, 0, 0), &Room::feather0LookAtEyes },
- { Action(ACTION_LOOK, 0x2c, 0, 0), &Room::feather0LookAtTree },
- { Action(ACTION_LOOK, OBJECT_MCCOY, 0, 0), &Room::feather0LookAtMccoy },
- { Action(ACTION_LOOK, OBJECT_SPOCK, 0, 0), &Room::feather0LookAtSpock },
- { Action(ACTION_LOOK, OBJECT_REDSHIRT, 0, 0), &Room::feather0LookAtRedshirt },
- { Action(ACTION_TALK, OBJECT_MCCOY, 0, 0), &Room::feather0TalkToMccoy },
- { Action(ACTION_TALK, OBJECT_SPOCK, 0, 0), &Room::feather0TalkToSpock },
- { Action(ACTION_TALK, OBJECT_REDSHIRT, 0, 0), &Room::feather0TalkToRedshirt },
- { Action(ACTION_USE, OBJECT_ISTRICOR, 8, 0), &Room::feather0UseSTricorderOnQuetzecoatl },
- { Action(ACTION_USE, OBJECT_ISTRICOR, -1, 0), &Room::feather0UseSTricorderAnywhere },
- { Action(ACTION_USE, OBJECT_IMTRICOR, 8, 0), &Room::feather0UseMTricorderOnQuetzecoatl },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather0Tick1 },
+ { {ACTION_TICK, 60, 0, 0}, &Room::feather0Tick60 },
+ { {ACTION_TALK, 8, 0, 0}, &Room::feather0TalkToQuetzecoatl },
+ { {ACTION_TIMER_EXPIRED, 0, 0, 0}, &Room::feather0Timer0Expired },
+ { {ACTION_TIMER_EXPIRED, 1, 0, 0}, &Room::feather0Timer1Expired },
+ { {ACTION_USE, OBJECT_IPHASERS, 8, 0}, &Room::feather0UsePhaserOnQuetzecoatl },
+ { {ACTION_USE, OBJECT_IPHASERK, 8, 0}, &Room::feather0UsePhaserOnQuetzecoatl },
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0}, &Room::feather0UsePhaserOnMccoy },
+ { {ACTION_USE, OBJECT_IPHASERS, OBJECT_MCCOY, 0}, &Room::feather0UsePhaserOnMccoy },
+ { {ACTION_USE, OBJECT_IMEDKIT, -1, 0}, &Room::feather0UseMedkit },
+ { {ACTION_LOOK, 8, 0, 0}, &Room::feather0LookAtQuetzecoatl },
+ { {ACTION_LOOK, 0x20, 0, 0}, &Room::feather0LookAtMoon },
+ { {ACTION_LOOK, 0x21, 0, 0}, &Room::feather0LookAtLog },
+ { {ACTION_LOOK, 0x22, 0, 0}, &Room::feather0LookAtHut },
+ { {ACTION_LOOK, -1, 0, 0}, &Room::feather0LookAnywhere },
+ { {ACTION_LOOK, 0x23, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x24, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x25, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x26, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x27, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x28, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x29, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x2a, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x2b, 0, 0}, &Room::feather0LookAtEyes },
+ { {ACTION_LOOK, 0x2c, 0, 0}, &Room::feather0LookAtTree },
+ { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::feather0LookAtMccoy },
+ { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::feather0LookAtSpock },
+ { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::feather0LookAtRedshirt },
+ { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::feather0TalkToMccoy },
+ { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::feather0TalkToSpock },
+ { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::feather0TalkToRedshirt },
+ { {ACTION_USE, OBJECT_ISTRICOR, 8, 0}, &Room::feather0UseSTricorderOnQuetzecoatl },
+ { {ACTION_USE, OBJECT_ISTRICOR, -1, 0}, &Room::feather0UseSTricorderAnywhere },
+ { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::feather0UseMTricorderOnQuetzecoatl },
};
extern const RoomAction feather1ActionList[];
extern const int feather1NumActions;
RoomAction feather2ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather2Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather2Tick1 },
};
RoomAction feather3ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather3Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather3Tick1 },
};
RoomAction feather4ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather4Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather4Tick1 },
};
RoomAction feather5ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather5Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather5Tick1 },
};
RoomAction feather6ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather6Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather6Tick1 },
};
RoomAction feather7ActionList[] = {
- { Action(ACTION_TICK, 1, 0, 0), &Room::feather7Tick1 },
+ { {ACTION_TICK, 1, 0, 0}, &Room::feather7Tick1 },
};
}
diff --git a/engines/startrek/startrek.cpp b/engines/startrek/startrek.cpp
index db664011fc..876c1f6389 100644
--- a/engines/startrek/startrek.cpp
+++ b/engines/startrek/startrek.cpp
@@ -459,7 +459,7 @@ void StarTrekEngine::updateActorAnimations() {
if (nextAnimFrame == actor->numAnimFrames - 1) {
actor->field62++;
if (actor->triggerActionWhenAnimFinished) {
- addAction(Action(ACTION_FINISHED_ANIMATION, actor->finishedAnimActionParam, 0, 0));
+ addAction(ACTION_FINISHED_ANIMATION, actor->finishedAnimActionParam, 0, 0);
}
}
}
@@ -530,7 +530,7 @@ void StarTrekEngine::updateActorAnimations() {
if (actor->iwSrcPosition == -1) {
if (actor->triggerActionWhenAnimFinished) {
actor->triggerActionWhenAnimFinished = false;
- addAction(Action(ACTION_FINISHED_WALKING, actor->finishedAnimActionParam & 0xff, 0, 0));
+ addAction(ACTION_FINISHED_WALKING, actor->finishedAnimActionParam & 0xff, 0, 0);
}
actor->sprite.bitmap.reset();
@@ -1056,15 +1056,15 @@ int StarTrekEngine::selectObjectForUseAction() {
return clickedObject;
else if (isObjectUnusable(OBJECT_KIRK, ACTION_USE))
continue;
- else if (_room->actionHasCode(Action(ACTION_USE, OBJECT_KIRK, clickedObject, 0))
- || _room->actionHasCode(Action(ACTION_GET, clickedObject, 0, 0))
- || _room->actionHasCode(Action(ACTION_WALK, clickedObject, 0, 0))) {
+ else if (_room->actionHasCode(ACTION_USE, OBJECT_KIRK, clickedObject, 0)
+ || _room->actionHasCode(ACTION_GET, clickedObject, 0, 0)
+ || _room->actionHasCode(ACTION_WALK, clickedObject, 0, 0)) {
_awayMission.activeObject = OBJECT_KIRK;
_awayMission.passiveObject = clickedObject;
_awayMission.activeAction = ACTION_USE;
clickedObject = OBJECT_KIRK;
if (!walkActiveObjectToHotspot())
- addAction(Action(_awayMission.activeAction, _awayMission.activeObject, _awayMission.passiveObject, 0));
+ addAction(_awayMission.activeAction, _awayMission.activeObject, _awayMission.passiveObject, 0);
return clickedObject;
}
else
@@ -1160,7 +1160,7 @@ bool StarTrekEngine::walkActiveObjectToHotspot() {
else {
// If this action has code defined for it in this room, buffer the action to be
// done after the object finished walking there.
- Action action(_awayMission.activeAction, _awayMission.activeObject, 0, 0);
+ Action action = {_awayMission.activeAction, _awayMission.activeObject, 0, 0};
if (_awayMission.activeAction == ACTION_USE)
action.b2 = _awayMission.passiveObject;
diff --git a/engines/startrek/startrek.h b/engines/startrek/startrek.h
index 8f17a0f215..cacb8c3529 100644
--- a/engines/startrek/startrek.h
+++ b/engines/startrek/startrek.h
@@ -223,7 +223,7 @@ public:
int loadActorAnimWithRoomScaling(int actorIndex, const Common::String &animName, int16 x, int16 y);
uint16 getActorScaleAtPosition(int16 y);
void addAction(const Action &action);
- void addAction(byte b1, byte b2, byte b3, byte b4) { addAction(Action(b1, b2, b3, b4)); }
+ void addAction(byte type, byte b1, byte b2, byte b3);
bool checkItemInteractionExists(int action, int activeItem, int passiveItem, int16 arg6);
void handleAwayMissionAction();
diff --git a/engines/startrek/text.cpp b/engines/startrek/text.cpp
index 071dc6d49c..87ecdb2cd8 100644
--- a/engines/startrek/text.cpp
+++ b/engines/startrek/text.cpp
@@ -161,7 +161,7 @@ void StarTrekEngine::showTextbox(String headerText, const String &mainText, int
showText(&StarTrekEngine::readTextFromArray, (uintptr)strings, xoffset, yoffset, textColor, false, maxTextLines, false);
if (actionParam != 0)
- addAction(Action(ACTION_TALK, actionParam, 0, 0));
+ addAction(ACTION_TALK, actionParam, 0, 0);
}
String StarTrekEngine::skipTextAudioPrompt(const String &str) {