From 01b5f0ffdc815ca69c1a19fdca415302a30220df Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Sun, 22 Sep 2013 23:39:59 -0400 Subject: TSAGE: Further bugfixes for ARM base escape --- engines/tsage/ringworld2/ringworld2_logic.cpp | 1 + engines/tsage/ringworld2/ringworld2_scenes3.cpp | 72 +++++++++++++----------- engines/tsage/ringworld2/ringworld2_scenes3.h | 12 ++-- engines/tsage/ringworld2/ringworld2_speakers.cpp | 2 +- 4 files changed, 46 insertions(+), 41 deletions(-) (limited to 'engines/tsage') diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index ccdaf2ce05..11a20247ef 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -266,6 +266,7 @@ Scene *Ringworld2Game::createScene(int sceneNumber) { // Room with large stasis field negator return new Scene3250(); case 3255: + // Guard Post return new Scene3255(); case 3260: // ARM Base - Computer room diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 31eb1d34c6..17d0110023 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -1269,9 +1269,10 @@ void Scene3250::dispatch() { } /*-------------------------------------------------------------------------- - * Scene 3255 - + * Scene 3255 - Guard Post * *--------------------------------------------------------------------------*/ + void Scene3255::postInit(SceneObjectList *OwnerList) { loadScene(3255); SceneExt::postInit(); @@ -1290,16 +1291,16 @@ void Scene3255::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound2.play(268); _sceneMode = 3257; _actor3.postInit(); - _actor4.postInit(); - _actor4._effect = 1; - setAction(&_sequenceManager, this, 3257, &R2_GLOBALS._player, &_actor4, &_actor3, NULL); + _quinn.postInit(); + _quinn._effect = 1; + setAction(&_sequenceManager, this, 3257, &R2_GLOBALS._player, &_quinn, &_actor3, NULL); } else { - _actor1.postInit(); - _actor1.setup(303, 1, 1); - _actor1.setPosition(Common::Point(208, 128)); - _actor2.postInit(); - _actor2.setup(3107, 3, 1); - _actor2.setPosition(Common::Point(230, 127)); + _teal.postInit(); + _teal.setup(303, 1, 1); + _teal.setPosition(Common::Point(208, 128)); + _guard.postInit(); + _guard.setup(3107, 3, 1); + _guard.setPosition(Common::Point(230, 127)); _sceneMode = 3255; setAction(&_sequenceManager, this, 3255, &R2_GLOBALS._player, NULL); } @@ -1310,10 +1311,11 @@ void Scene3255::signal() { switch (_sceneMode) { case 10: _sceneMode = 3258; - _actor5.postInit(); - _actor6.postInit(); - _actor7.postInit(); - setAction(&_sequenceManager, this, 3258, &R2_GLOBALS._player, &_actor4, &_actor3, &_actor5, &_actor6, &_actor7, NULL); + _ghoul1.postInit(); + _ghoul2.postInit(); + _ghoul3.postInit(); + setAction(&_sequenceManager, this, 3258, &R2_GLOBALS._player, &_quinn, + &_actor3, &_ghoul1, &_ghoul2, &_ghoul3, NULL); break; case 3256: R2_GLOBALS._sceneManager.changeScene(3250); @@ -1335,40 +1337,40 @@ void Scene3255::signal() { void Scene3255::dispatch() { if (R2_GLOBALS.getFlag(79)) { - if (_actor5._position.y >= 95) { - if (_actor5._position.y <= 110) - _actor5._shade = 6 - (_actor5._position.y - 95) / 3; + if (_ghoul1._position.y >= 95) { + if (_ghoul1._position.y <= 110) + _ghoul1._shade = 6 - (_ghoul1._position.y - 95) / 3; else - _actor5._effect = 1; + _ghoul1._effect = 1; } else { - _actor5._effect = 6; - _actor5._shade = 6; + _ghoul1._effect = 6; + _ghoul1._shade = 6; } - if (_actor6._position.y >= 95) { - if (_actor6._position.y <= 110) - _actor6._shade = 6 - (_actor6._position.y - 95) / 3; + if (_ghoul2._position.y >= 95) { + if (_ghoul2._position.y <= 110) + _ghoul2._shade = 6 - (_ghoul2._position.y - 95) / 3; else - _actor6._effect = 1; + _ghoul2._effect = 1; } else { - _actor6._effect = 6; - _actor6._shade = 6; + _ghoul2._effect = 6; + _ghoul2._shade = 6; } - if (_actor7._position.y >= 95) { - if (_actor7._position.y <= 110) - _actor7._shade = 6 - (_actor7._position.y - 95) / 3; + if (_ghoul3._position.y >= 95) { + if (_ghoul3._position.y <= 110) + _ghoul3._shade = 6 - (_ghoul3._position.y - 95) / 3; else - _actor7._effect = 1; + _ghoul3._effect = 1; } else { - _actor7._effect = 6; - _actor7._shade = 6; + _ghoul3._effect = 6; + _ghoul3._shade = 6; } } if ((R2_GLOBALS._player._position.x > 250) && (R2_GLOBALS._player._shade == 1)) { R2_GLOBALS._player._effect = 6; - _actor4._effect = 6; + _quinn._effect = 6; } Scene::dispatch(); } @@ -3587,12 +3589,14 @@ void Scene3500::postInit(SceneObjectList *OwnerList) { loadScene(1050); R2_GLOBALS._uiElements._active = false; + R2_GLOBALS._interfaceY = 200; + R2_GLOBALS._v5589E.set(0, 0, 320, 200); R2_GLOBALS._sound1.play(305); R2_GLOBALS._player._characterIndex = R2_QUINN; R2_GLOBALS._player._characterScene[R2_QUINN] = 3500; R2_GLOBALS._player._characterScene[R2_SEEKER] = 3500; - R2_GLOBALS._player._characterScene[3] = 3500; + R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3500; _field1284 = 0; _field1282 = 0; _field1278 = 0; diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index ae9439ff8b..96176d3d19 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -288,13 +288,13 @@ public: class Scene3255 : public SceneExt { public: - SceneActor _actor1; - SceneActor _actor2; + SceneActor _teal; + SceneActor _guard; SceneActor _actor3; - SceneActor _actor4; - SceneActor _actor5; - SceneActor _actor6; - SceneActor _actor7; + SceneActor _quinn; + SceneActor _ghoul1; + SceneActor _ghoul2; + SceneActor _ghoul3; SpeakerQuinn3255 _quinnSpeaker; SpeakerMiranda3255 _mirandaSpeaker; SequenceManager _sequenceManager; diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index 02687f102f..12feafc65b 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -1477,7 +1477,7 @@ void SpeakerQuinn3255::proc15() { int v = _speakerMode; if (!_object2) { - _object2 = &scene->_actor4; + _object2 = &scene->_quinn; _object2->hide(); _object1.postInit(); _object1._effect = _object2->_effect; -- cgit v1.2.3