diff options
Diffstat (limited to 'engines/tsage')
-rw-r--r-- | engines/tsage/ringworld_scenes5.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/engines/tsage/ringworld_scenes5.cpp b/engines/tsage/ringworld_scenes5.cpp index a313a5a11f..325bcc0351 100644 --- a/engines/tsage/ringworld_scenes5.cpp +++ b/engines/tsage/ringworld_scenes5.cpp @@ -2364,7 +2364,8 @@ void Scene4100::Action3::signal() { scene->_stripManager.start(4505, this); break; case 2: - scene->setAction(&scene->_action2); + setAction(&scene->_action2, this); + break; case 3: scene->_stripManager.start(4510, this); break; @@ -2374,6 +2375,8 @@ void Scene4100::Action3::signal() { case 5: _globals->_sceneManager.changeScene(4150); break; + default: + break; } } @@ -2456,20 +2459,26 @@ void Scene4100::Hotspot1::doAction(int action) { Scene4100 *scene = (Scene4100 *)_globals->_sceneManager._scene; switch (action) { - case CURSOR_LOOK: - SceneItem::display2(4100, _globals->getFlag(42) ? 24 : 12); - break; case OBJECT_STUNNER: SceneItem::display2(4100, 16); break; + case OBJECT_ALE: + _globals->_player.disableControl(); + scene->setAction(&scene->_action3); + break; + case CURSOR_LOOK: + SceneItem::display2(4100, _globals->getFlag(42) ? 24 : 12); + break; case CURSOR_USE: SceneItem::display2(4100, 22); break; case CURSOR_TALK: if (_globals->_inventory._peg._sceneNumber == 1) { _globals->_player.disableControl(); + scene->_sceneMode = 4109; scene->setAction(&scene->_sequenceManager, scene, 4109, NULL); } else if (_globals->getFlag(42)) { + scene->_sceneMode = 4102; scene->setAction(&scene->_sequenceManager, scene, 4102, NULL); } else { if (_globals->getFlag(33)) |