diff options
author | Matthew Stewart | 2018-07-04 00:32:34 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | ae3be7b40730387707bf4c104ea4f2ff8b588523 (patch) | |
tree | acd6f32b6dc77cdf65d06139b3c7710618b2845c /engines/startrek/rooms | |
parent | 007960e85eeaeb0f1ab45914936a917cb40af808 (diff) | |
download | scummvm-rg350-ae3be7b40730387707bf4c104ea4f2ff8b588523.tar.gz scummvm-rg350-ae3be7b40730387707bf4c104ea4f2ff8b588523.tar.bz2 scummvm-rg350-ae3be7b40730387707bf4c104ea4f2ff8b588523.zip |
STARTREK: FEATHER2
Diffstat (limited to 'engines/startrek/rooms')
-rw-r--r-- | engines/startrek/rooms/feather2.cpp | 116 | ||||
-rw-r--r-- | engines/startrek/rooms/function_map.h | 8 |
2 files changed, 115 insertions, 9 deletions
diff --git a/engines/startrek/rooms/feather2.cpp b/engines/startrek/rooms/feather2.cpp index d28e26c7fe..160302f000 100644 --- a/engines/startrek/rooms/feather2.cpp +++ b/engines/startrek/rooms/feather2.cpp @@ -22,14 +22,124 @@ #include "startrek/room.h" -#define OBJECT_8 8 - -#define HOTSPOT_20 0x20 +#define HOTSPOT_EYES_1 0x20 +#define HOTSPOT_EYES_2 0x21 +#define HOTSPOT_EYES_3 0x22 +#define HOTSPOT_BIG_TREE 0x23 +#define HOTSPOT_TREES 0x24 +#define HOTSPOT_VINES 0x25 +#define HOTSPOT_LEFT_EXIT 0x26 namespace StarTrek { +extern const RoomAction feather2ActionList[] = { + { {ACTION_TICK, 1, 0, 0}, &Room::feather2Tick1 }, + { {ACTION_USE, OBJECT_ICOMM, 0xff, 0}, &Room::feather2UseCommunicator }, + { {ACTION_USE, OBJECT_IPHASERS, 0xff, 0}, &Room::feather2UsePhaser }, + { {ACTION_USE, OBJECT_IPHASERK, 0xff, 0}, &Room::feather2UsePhaser }, + { {ACTION_USE, OBJECT_ISTRICOR, 0xff, 0}, &Room::feather2UseSTricorderAnywhere }, + { {ACTION_USE, OBJECT_IMTRICOR, 0xff, 0}, &Room::feather2UseMTricorderAnywhere }, + { {ACTION_TALK, OBJECT_MCCOY, 0, 0}, &Room::feather2TalkToMccoy }, + { {ACTION_TALK, OBJECT_SPOCK, 0, 0}, &Room::feather2TalkToSpock }, + { {ACTION_TALK, OBJECT_REDSHIRT, 0, 0}, &Room::feather2TalkToRedshirt }, + { {ACTION_LOOK, HOTSPOT_VINES, 0, 0}, &Room::feather2LookAtVines }, + { {ACTION_USE, OBJECT_IMEDKIT, 0xff, 0}, &Room::feather2UseMedkit }, + { {ACTION_WALK, HOTSPOT_LEFT_EXIT, 0, 0}, &Room::feather2WalkToLeftExit }, + { {ACTION_LOOK, HOTSPOT_EYES_1, 0, 0}, &Room::feather2LookAtEyes }, + { {ACTION_LOOK, HOTSPOT_EYES_2, 0, 0}, &Room::feather2LookAtEyes }, + { {ACTION_LOOK, HOTSPOT_EYES_3, 0, 0}, &Room::feather2LookAtEyes }, + { {ACTION_LOOK, HOTSPOT_BIG_TREE, 0, 0}, &Room::feather2LookAtBigTree }, + { {ACTION_LOOK, HOTSPOT_TREES, 0, 0}, &Room::feather2LookAtTrees }, + { {ACTION_LOOK, 0xff, 0, 0}, &Room::feather2LookAnywhere }, + { {ACTION_LOOK, OBJECT_KIRK, 0, 0}, &Room::feather2LookAtKirk }, + { {ACTION_LOOK, OBJECT_SPOCK, 0, 0}, &Room::feather2LookAtSpock }, + { {ACTION_LOOK, OBJECT_MCCOY, 0, 0}, &Room::feather2LookAtMccoy }, + { {ACTION_LOOK, OBJECT_REDSHIRT, 0, 0}, &Room::feather2LookAtRedshirt }, +}; + +extern const int feather2NumActions = sizeof(feather2ActionList) / sizeof(RoomAction); + + void Room::feather2Tick1() { + playVoc("FEA2LOOP"); + playMidiMusicTracks(27); +} + +void Room::feather2UseCommunicator() { + showText(TX_SPEAKER_SPOCK, TX_FEA2_006); +} + +void Room::feather2UsePhaser() { + // FIXME: Why does McCoy say "They're dead, Jim"? + showText(TX_SPEAKER_MCCOY, TX_FEA2_003); +} + +void Room::feather2UseSTricorderAnywhere() { + spockScan(DIR_S, TX_FEA2_007); +} + +void Room::feather2UseMTricorderAnywhere() { + // ENHANCEMENT: Original didn't play tricorder sound, etc + mccoyScan(DIR_S, TX_FEA2_002); +} + +void Room::feather2TalkToMccoy() { + showText(TX_SPEAKER_MCCOY, TX_FEA2_004); +} + +void Room::feather2TalkToSpock() { + showText(TX_SPEAKER_SPOCK, TX_FEA2_008); +} + +void Room::feather2TalkToRedshirt() { + showText(TX_SPEAKER_STRAGEY, TX_FEA2_009); +} + +void Room::feather2LookAtVines() { + // NOTE: This might be unused? I can't find where HOTSPOT_VINES is supposed to be. + showText(TX_FEA2N000); + showText(TX_SPEAKER_STRAGEY, TX_FEA2_010); + showText(TX_SPEAKER_MCCOY, TX_FEA2_005); +} + +void Room::feather2UseMedkit() { + showText(TX_SPEAKER_MCCOY, TX_FEA2_001); +} + +void Room::feather2WalkToLeftExit() { + walkCrewman(OBJECT_KIRK, 0x14, 0x96); +} + +void Room::feather2LookAtEyes() { + showText(TX_FEA2N001); +} + +void Room::feather2LookAtBigTree() { + showText(TX_FEA2N006); +} + +void Room::feather2LookAtTrees() { + showText(TX_FEA2N007); +} + +void Room::feather2LookAnywhere() { + showText(TX_FEA2N008); +} + +void Room::feather2LookAtKirk() { + showText(TX_FEA2N002); +} + +void Room::feather2LookAtSpock() { + showText(TX_FEA2N005); +} + +void Room::feather2LookAtMccoy() { + showText(TX_FEA2N004); +} +void Room::feather2LookAtRedshirt() { + showText(TX_FEA2N003); } } diff --git a/engines/startrek/rooms/function_map.h b/engines/startrek/rooms/function_map.h index 203043ba58..cca19c46f7 100644 --- a/engines/startrek/rooms/function_map.h +++ b/engines/startrek/rooms/function_map.h @@ -1782,12 +1782,8 @@ RoomAction feather0ActionList[] = { { {ACTION_USE, OBJECT_IMTRICOR, 8, 0}, &Room::feather0UseMTricorderOnQuetzecoatl }, }; -extern const RoomAction feather1ActionList[]; -extern const int feather1NumActions; - -RoomAction feather2ActionList[] = { - { {ACTION_TICK, 1, 0, 0}, &Room::feather2Tick1 }, -}; +extern const RoomAction feather1ActionList[], feather2ActionList[]; +extern const int feather1NumActions, feather2NumActions; RoomAction feather3ActionList[] = { { {ACTION_TICK, 1, 0, 0}, &Room::feather3Tick1 }, |