aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-12-11 18:00:39 +1100
committerPaul Gilbert2011-12-11 18:00:39 +1100
commit887d56d9ca9cc488c8793321da0685bee5f2206a (patch)
treedd214b350d71efc630b2a604e608584f5ada3a73
parent518d4cd429924f145626401c194f42fd76783c03 (diff)
downloadscummvm-rg350-887d56d9ca9cc488c8793321da0685bee5f2206a.tar.gz
scummvm-rg350-887d56d9ca9cc488c8793321da0685bee5f2206a.tar.bz2
scummvm-rg350-887d56d9ca9cc488c8793321da0685bee5f2206a.zip
TSAGE: add missing hotspot code for Miranda in R2R Scene 300
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes0.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes0.cpp b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
index 88dfe11298..9e87ebbe0b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes0.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes0.cpp
@@ -1528,7 +1528,39 @@ bool Scene300::Miranda::startAction(CursorType action, Event &event) {
switch (action) {
case CURSOR_TALK:
if (R2_GLOBALS._player._characterIndex == 1) {
- warning("TODO: talk sequence");
+ R2_GLOBALS._player.disableControl();
+
+ if (!R2_GLOBALS.getFlag(44)) {
+ if (R2_GLOBALS.getFlag(40))
+ scene->_field412 = 119;
+ else if (R2_GLOBALS.getFlag(38))
+ scene->_field412 = 101;
+ else {
+ R2_GLOBALS._sound1.play(69);
+ scene->_field412 = 100;
+ }
+
+ scene->_sceneMode = 309;
+ scene->setAction(&scene->_sequenceManager1, scene, 309, &R2_GLOBALS._player, NULL);
+ } else if (!R2_GLOBALS.getFlag(55)) {
+ R2_GLOBALS._events.setCursor(CURSOR_ARROW);
+ scene->_sceneMode = 10;
+ scene->_stripManager.start3(scene->_field412, scene, R2_GLOBALS._stripManager_lookupList);
+ } else {
+ scene->_sceneMode = 16;
+
+ if (!R2_GLOBALS.getFlag(57)) {
+ R2_GLOBALS._events.setCursor(CURSOR_ARROW);
+ scene->_stripManager.start3(434, scene, R2_GLOBALS._stripManager_lookupList);
+ } else if (R2_GLOBALS._player._characterScene[R2_MIRANDA] != 500) {
+ R2_GLOBALS._events.setCursor(CURSOR_ARROW);
+ scene->_stripManager.start3(407, scene, R2_GLOBALS._stripManager_lookupList);
+ } else {
+ scene->_field412 = 433;
+ scene->_sceneMode = 309;
+ scene->setAction(&scene->_sequenceManager1, scene, 309, &R2_GLOBALS._player, NULL);
+ }
+ }
} else {
scene->_sceneMode = 10;
R2_GLOBALS._events.setCursor(CURSOR_ARROW);