From 82483cb5d1f246f1760acbf61d9531f51a36b53d Mon Sep 17 00:00:00 2001 From: strangerke Date: Fri, 15 Apr 2011 14:56:22 +0200 Subject: 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 --- engines/tsage/ringworld_scenes1.cpp | 46 ++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 21 deletions(-) (limited to 'engines/tsage') 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(); -- cgit v1.2.3