diff options
author | Matthew Stewart | 2018-05-23 19:56:15 -0400 |
---|---|---|
committer | Eugene Sandulenko | 2018-08-09 08:37:30 +0200 |
commit | ca3a9dcc8764909e163a860e4a472404620480e2 (patch) | |
tree | 4b546d6c1ad2466e25d4c24bbb642d7c0eb49c58 /engines/startrek/rooms/demon0.cpp | |
parent | bd79e4d653f9476de1501de149589e583e47411d (diff) | |
download | scummvm-rg350-ca3a9dcc8764909e163a860e4a472404620480e2.tar.gz scummvm-rg350-ca3a9dcc8764909e163a860e4a472404620480e2.tar.bz2 scummvm-rg350-ca3a9dcc8764909e163a860e4a472404620480e2.zip |
STARTREK: Finish implementing first room
Doors now work, and the system of "walking, then performing an action
afterward" is implemented.
Diffstat (limited to 'engines/startrek/rooms/demon0.cpp')
-rw-r--r-- | engines/startrek/rooms/demon0.cpp | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/engines/startrek/rooms/demon0.cpp b/engines/startrek/rooms/demon0.cpp index f687eaaaa3..41a5bbf802 100644 --- a/engines/startrek/rooms/demon0.cpp +++ b/engines/startrek/rooms/demon0.cpp @@ -72,6 +72,13 @@ void Room::demon0TouchedWarp0() { _vm->_awayMission.rdfStillDoDefaultAction = true; } +void Room::demon0WalkToBottomDoor() { + _vm->_awayMission.transitioningIntoRoom = 1; + _rdfData[0xcd] = 1; // FIXME + _vm->_awayMission.field25[OBJECT_KIRK] = DIR_E; + walkCrewman(OBJECT_KIRK, 243, 158, 1); +} + void Room::demon0TouchedHotspot1() { if (_rdfData[0xcd] != 1) // FIXME: not portable to mac/amiga? return; @@ -79,13 +86,32 @@ void Room::demon0TouchedHotspot1() { playSoundEffectIndex(0x05); } +void Room::demon0ReachedBottomDoor() { + if (++_rdfData[0xca] != 2) // FIXME + return; + loadRoomIndex(5, 0); +} + +void Room::demon0WalkToTopDoor() { + _vm->_awayMission.transitioningIntoRoom = 1; + _rdfData[0xcc] = 1; // FIXME + _vm->_awayMission.field25[OBJECT_KIRK] = DIR_E; + walkCrewman(OBJECT_KIRK, 157, 134, 2); +} + void Room::demon0TouchedHotspot0() { - if (_rdfData[0xcd] != 1) // FIXME: not portable to mac/amiga? + if (_rdfData[0xcc] != 1) // FIXME: not portable to mac/amiga? return; loadActorAnim2(10, "s0r0d2", 158, 130, 2); playSoundEffectIndex(0x05); } +void Room::demon0ReachedTopDoor() { + if (++_rdfData[0xcb] != 2) // FIXME + return; + loadRoomIndex(6, 3); +} + void Room::demon0TalkToPrelate() { const char *options1[] = { "Capt. Kirk", @@ -471,7 +497,7 @@ void Room::demon0AskPrelateAboutSightings() { _vm->_awayMission.field36 = 1; } -void Room::useSTricorderAnywhere() { +void Room::demon0UseSTricorderAnywhere() { loadActorAnim2(OBJECT_SPOCK, "sscans", -1, -1, 0); playSoundEffectIndex(0x04); @@ -484,7 +510,7 @@ void Room::useSTricorderAnywhere() { showRoomSpecificText(text); } -void Room::useMTricorderAnywhere() { +void Room::demon0UseMTricorderAnywhere() { loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(0x04); @@ -496,7 +522,7 @@ void Room::useMTricorderAnywhere() { showRoomSpecificText(text); } -void Room::useMTricorderOnPrelate() { +void Room::demon0UseMTricorderOnPrelate() { loadActorAnim2(OBJECT_MCCOY, "mscans", -1, -1, 0); playSoundEffectIndex(0x04); |