aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstrangerke2011-05-03 21:30:34 +0200
committerstrangerke2011-05-03 23:11:11 +0200
commitff635a385bcf0e582cbe04b85be533d21011fa40 (patch)
treee9ed964d5d99662b9fbbcf14df64f1bb09a24063
parent95a6098f672191dc0792bd4f9bfa18706bbe8e3a (diff)
downloadscummvm-rg350-ff635a385bcf0e582cbe04b85be533d21011fa40.tar.gz
scummvm-rg350-ff635a385bcf0e582cbe04b85be533d21011fa40.tar.bz2
scummvm-rg350-ff635a385bcf0e582cbe04b85be533d21011fa40.zip
TSAGE: Fix a death loop in scene 4300/4250 (use helmet on alien)
-rw-r--r--engines/tsage/ringworld_scenes5.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/engines/tsage/ringworld_scenes5.cpp b/engines/tsage/ringworld_scenes5.cpp
index 3dfd421b60..60f9893aa8 100644
--- a/engines/tsage/ringworld_scenes5.cpp
+++ b/engines/tsage/ringworld_scenes5.cpp
@@ -3309,6 +3309,7 @@ void Scene4250::Hotspot1::doAction(int action) {
}
void Scene4250::Hotspot2::doAction(int action) {
+ //Ship with stasis field
Scene4250 *scene = (Scene4250 *)_globals->_sceneManager._scene;
switch (action) {
@@ -3640,6 +3641,7 @@ void Scene4250::signal() {
break;
case 4253:
if (_globals->_stripNum == 4301) {
+ _sceneMode = 4261;
ADD_MOVER_NULL(_hotspot1, 241, 169);
setAction(&_sequenceManager, this, 4261, &_globals->_player, &_hotspot6, NULL);
} else {
@@ -3660,10 +3662,6 @@ void Scene4250::signal() {
case 4270:
_globals->_player.enableControl();
break;
- case 4255:
- case 4262:
- case 4263:
- break;
case 4259:
_globals->_soundHandler.startSound(360);
_globals->_sceneManager.changeScene(9900);
@@ -3672,6 +3670,11 @@ void Scene4250::signal() {
RING_INVENTORY._keyDevice._sceneNumber = 1;
_globals->_player.enableControl();
break;
+ case 4255:
+ case 4262:
+ case 4263:
+ default:
+ break;
}
}
@@ -3861,6 +3864,7 @@ void Scene4300::Hotspot9::doAction(int action) {
}
void Scene4300::Hotspot10::doAction(int action) {
+ // Alien
Scene4300 *scene = (Scene4300 *)_globals->_sceneManager._scene;
switch (action) {
@@ -4244,6 +4248,7 @@ void Scene4301::Action1::signal() {
_actionIndex = 2;
break;
case 10:
+ // Puzzle: Wrong code
_globals->_events.setCursor(CURSOR_NONE);
scene->_soundHandler.startSound(337);
if (scene->_hotspot3._flags & OBJFLAG_HIDE)
@@ -4268,6 +4273,7 @@ void Scene4301::Action1::signal() {
_globals->_events.setCursor(CURSOR_USE);
break;
case 20:
+ // Puzzle: Correct code
_globals->_player.disableControl();
scene->_soundHandler.startSound(339);
scene->_hotspot3._frame = 3;
@@ -4290,6 +4296,7 @@ void Scene4301::Action1::signal() {
}
void Scene4301::Action1::process(Event &event) {
+ // Puzzle
Scene4301 *scene = (Scene4301 *)_globals->_sceneManager._scene;
Rect buttonsRect;
@@ -4344,6 +4351,7 @@ void Scene4301::Action1::process(Event &event) {
/*--------------------------------------------------------------------------*/
void Scene4301::Hotspot4::doAction(int action) {
+ // Hatch near door
Scene4301 *scene = (Scene4301 *)_globals->_sceneManager._scene;
if (action == CURSOR_USE) {