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 /engines/tsage | |
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
Diffstat (limited to 'engines/tsage')
-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(); |