aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authormd52011-04-29 02:27:29 +0300
committermd52011-04-29 02:27:29 +0300
commit89362b5af4a4ebd9430f2a5a1179e8ef171cf0c3 (patch)
tree868dafeda35c57f87ac128087cce886035ef0bf5 /engines
parent7046e0951370eb907f4d11ecc6bb1b48424ef8bb (diff)
downloadscummvm-rg350-89362b5af4a4ebd9430f2a5a1179e8ef171cf0c3.tar.gz
scummvm-rg350-89362b5af4a4ebd9430f2a5a1179e8ef171cf0c3.tar.bz2
scummvm-rg350-89362b5af4a4ebd9430f2a5a1179e8ef171cf0c3.zip
TSAGE: Added two temporary hacks for scenes 5100 and 5200 and added some comments
With these two hacks, it's possible to progress a bit further
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/ringworld_scenes6.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/engines/tsage/ringworld_scenes6.cpp b/engines/tsage/ringworld_scenes6.cpp
index c716f93a9c..af9a4cbb93 100644
--- a/engines/tsage/ringworld_scenes6.cpp
+++ b/engines/tsage/ringworld_scenes6.cpp
@@ -1377,7 +1377,13 @@ void Scene5100::signal() {
}
void Scene5100::dispatch() {
- if (_hotspot15._bounds.contains(_globals->_player._position) && !_globals->_player._visage) {
+ // Flesheater trap
+ //if (_hotspot15._bounds.contains(_globals->_player._position) && !_globals->_player._visage) {
+ // HACK: don't enable the flesheater trap if the player has the stasis box in the inventory.
+ // This ensures that Quinn does not fall in the trap during the cutscene where he escapes the
+ // caves with the Seeker.
+ if (_hotspot15._bounds.contains(_globals->_player._position) && !_globals->_player._visage &&
+ RING_INVENTORY._stasisBox._sceneNumber != 1) {
_globals->_player.disableControl();
_globals->_player.addMover(NULL);
@@ -1453,6 +1459,7 @@ void Scene5200::Action1::signal() {
}
void Scene5200::Action2::signal() {
+ // Quinn obtains the stasis box from the flesheater throne room
Scene5200 *scene = (Scene5200 *)_globals->_sceneManager._scene;
switch (_actionIndex++) {
@@ -1491,6 +1498,13 @@ void Scene5200::Action2::signal() {
case 5:
_globals->_player.enableControl();
remove();
+
+ // HACK: Change scene here. Basically, perform the code that's
+ // in Scene5200::dispatch(), as PlayerMover::proc1() gets stuck
+ // when exiting the scene via the right exit
+ _globals->_stripNum = 5200;
+ _globals->_sceneManager.changeScene(5100);
+
break;
}
}
@@ -1639,6 +1653,9 @@ void Scene5200::postInit(SceneObjectList *OwnerList) {
}
if (_globals->_stripNum == 5111) {
+ // Happens when the player enters the throne room via the secret passage,
+ // after talking with the bat. No NPCs are around and the player can
+ // obtain the stasis box.
_globals->_soundHandler.startSound(205);
_globals->_player.disableControl();
@@ -1653,6 +1670,7 @@ void Scene5200::postInit(SceneObjectList *OwnerList) {
setAction(&_action3);
} else {
+ // Happens when the player is captured by the flesh eaters the first time.
_globals->_player.postInit();
_globals->_player.setVisage(2640);
_globals->_player._strip = 1;