aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage
diff options
context:
space:
mode:
authorstrangerke2011-04-15 14:56:22 +0200
committerstrangerke2011-04-15 14:56:22 +0200
commit82483cb5d1f246f1760acbf61d9531f51a36b53d (patch)
tree8c803eebad009fc65786d75dab8d34d7f0f76db8 /engines/tsage
parentf33810a8c0617641d16953fd026b8598bd090a50 (diff)
downloadscummvm-rg350-82483cb5d1f246f1760acbf61d9531f51a36b53d.tar.gz
scummvm-rg350-82483cb5d1f246f1760acbf61d9531f51a36b53d.tar.bz2
scummvm-rg350-82483cb5d1f246f1760acbf61d9531f51a36b53d.zip
TSAGE: Fix several problems in scene 20. That fixes the intro and probably the evasion.
Also add some comments in scene postInit in order to clarify the different actions available
Diffstat (limited to 'engines/tsage')
-rw-r--r--engines/tsage/ringworld_scenes1.cpp46
1 files changed, 25 insertions, 21 deletions
diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld_scenes1.cpp
index b8be7d37af..aad415b1d7 100644
--- a/engines/tsage/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld_scenes1.cpp
@@ -533,6 +533,7 @@ void Scene20::postInit(SceneObjectList *OwnerList) {
_speakerQText._npc = &_globals->_player;
if (_globals->_sceneManager._previousScene == 30) {
+ // Cut scene: Assassins are coming
_globals->_player.postInit();
_globals->_player.setVisage(20);
_globals->_player.setPosition(Common::Point(405, 69));
@@ -558,23 +559,7 @@ void Scene20::postInit(SceneObjectList *OwnerList) {
_sceneBounds = Rect(320, 0, 640, 200);
} else if (_globals->_sceneManager._previousScene == 60) {
- _globals->_player.postInit();
- _globals->_player.setVisage(2640);
- _globals->_player.animate(ANIM_MODE_NONE, NULL);
- _globals->_player.setStrip2(1);
- _globals->_player.setFrame2(4);
- _globals->_player.setPriority2(200);
- _globals->_player.setPosition(Common::Point(425, 233));
-
- setAction(&_action1);
- _speakerQText.setTextPos(Common::Point(350, 20));
- _speakerQText._textWidth = 260;
- _speakerGameText.setTextPos(Common::Point(350, 20));
- _speakerGameText._textWidth = 260;
-
- _globals->_soundHandler.startSound(8);
- _sceneBounds = Rect(320, 0, 640, 200);
- } else {
+ // Evasion
_sound.startSound(30);
_globals->_player.postInit();
_globals->_player.setVisage(20);
@@ -590,22 +575,41 @@ void Scene20::postInit(SceneObjectList *OwnerList) {
_sceneObject3.postInit();
_sceneObject3.setVisage(20);
- _sceneObject3.setStrip(2);
- _SceneObjectExt.setPosition(Common::Point(595, 79));
- _SceneObjectExt.animate(ANIM_MODE_1, NULL);
+ _sceneObject3.setStrip2(2);
+ _sceneObject3.setPosition(Common::Point(595, 79));
+ _sceneObject3.animate(ANIM_MODE_1, NULL);
if ((_globals->getFlag(120) && _globals->getFlag(116)) ||
(_globals->getFlag(117) && _globals->getFlag(119))) {
+ // Successful evasion
setAction(&_action3);
} else if (_globals->getFlag(104)) {
_sceneMode = 21;
setAction(&_sequenceManager, this, 21, &_globals->_player, &_SceneObjectExt, NULL);
} else {
+ // Failed evasion
_sceneObject3._moveDiff = Common::Point(8, 8);
setAction(&_action4);
}
-
_sceneBounds.center(_globals->_player._position.x, _globals->_player._position.y);
+ } else {
+ // Intro: Quinn looking at the monaster
+ _globals->_player.postInit();
+ _globals->_player.setVisage(2640);
+ _globals->_player.animate(ANIM_MODE_NONE, NULL);
+ _globals->_player.setStrip2(1);
+ _globals->_player.setFrame2(4);
+ _globals->_player.setPriority2(200);
+ _globals->_player.setPosition(Common::Point(425, 233));
+
+ setAction(&_action1);
+ _speakerQText.setTextPos(Common::Point(350, 20));
+ _speakerQText._textWidth = 260;
+ _speakerGameText.setTextPos(Common::Point(350, 20));
+ _speakerGameText._textWidth = 260;
+
+ _globals->_soundHandler.startSound(8);
+ _sceneBounds = Rect(320, 0, 640, 200);
}
_globals->_player.disableControl();