Skip to content

Commit

Permalink
TSAGE: Added two temporary hacks for scenes 5100 and 5200 and added s…
Browse files Browse the repository at this point in the history
…ome comments

With these two hacks, it's possible to progress a bit further
  • Loading branch information
bluegr committed Apr 28, 2011
1 parent 7046e09 commit 89362b5
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion engines/tsage/ringworld_scenes6.cpp
Expand Up @@ -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);

Expand Down Expand Up @@ -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++) {
Expand Down Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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();

Expand All @@ -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;
Expand Down

0 comments on commit 89362b5

Please sign in to comment.