diff options
author | strangerke | 2011-04-15 14:56:22 +0200 |
---|---|---|
committer | strangerke | 2011-04-15 14:56:22 +0200 |
commit | 82483cb5d1f246f1760acbf61d9531f51a36b53d (patch) | |
tree | 8c803eebad009fc65786d75dab8d34d7f0f76db8 | |
parent | f33810a8c0617641d16953fd026b8598bd090a50 (diff) | |
download | scummvm-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
-rw-r--r-- | engines/tsage/ringworld_scenes1.cpp | 46 |
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(); |