aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorstrangerke2011-04-19 22:53:19 +0200
committerstrangerke2011-04-19 22:53:19 +0200
commit3897e6f5e06a0c92f9d4dfb6353964e7fde47342 (patch)
tree67333152254fb8abd846c9398b19d3c4a79c2429 /engines/tsage
parent551cc744f9df2405332a1d3ea1e2612c6bd560af (diff)
downloadscummvm-rg350-3897e6f5e06a0c92f9d4dfb6353964e7fde47342.tar.gz
scummvm-rg350-3897e6f5e06a0c92f9d4dfb6353964e7fde47342.tar.bz2
scummvm-rg350-3897e6f5e06a0c92f9d4dfb6353964e7fde47342.zip
TSAGE: Fix blocking bug in scene 4100.
That unlocks the infamous "Alcohol? Cool, get my daughter!" scene :P
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/ringworld_scenes5.cpp17
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))