From e553cf16c39148086e7939e0b93746b320deb65a Mon Sep 17 00:00:00 2001 From: Paul Gilbert Date: Mon, 9 Sep 2013 22:08:30 -0400 Subject: TSAGE: Bugfixes for R2R Miranda interrogation --- engines/tsage/ringworld2/ringworld2_scenes1.cpp | 142 +++++++++++------------ engines/tsage/ringworld2/ringworld2_scenes1.h | 8 +- engines/tsage/ringworld2/ringworld2_speakers.cpp | 2 +- 3 files changed, 76 insertions(+), 76 deletions(-) diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp index 1fed0d4f55..288b29855e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp @@ -10016,17 +10016,8 @@ void Scene1580::signal() { * Scene 1625 - Miranda being questioned * *--------------------------------------------------------------------------*/ -Scene1625::Scene1625() { - _field412 = 0; -} -void Scene1625::synchronize(Serializer &s) { - SceneExt::synchronize(s); - - s.syncAsSint16LE(_field412); -} - -bool Scene1625::Actor7::startAction(CursorType action, Event &event) { +bool Scene1625::Wire::startAction(CursorType action, Event &event) { if (action != CURSOR_USE) return SceneActor::startAction(action, event); @@ -10035,10 +10026,20 @@ bool Scene1625::Actor7::startAction(CursorType action, Event &event) { scene->_sceneMode = 1631; scene->_actor3.postInit(); - scene->setAction(&scene->_sequenceManager, scene, 1631, &scene->_actor3, &scene->_actor7, NULL); + scene->setAction(&scene->_sequenceManager, scene, 1631, &scene->_actor3, &scene->_wire, NULL); return true; } +Scene1625::Scene1625() { + _field412 = 0; +} + +void Scene1625::synchronize(Serializer &s) { + SceneExt::synchronize(s); + + s.syncAsSint16LE(_field412); +} + void Scene1625::postInit(SceneObjectList *OwnerList) { loadScene(1625); R2_GLOBALS._player._characterIndex = R2_MIRANDA; @@ -10049,23 +10050,24 @@ void Scene1625::postInit(SceneObjectList *OwnerList) { _stripManager.addSpeaker(&_soldierSpeaker); R2_GLOBALS._player.postInit(); + R2_GLOBALS._player.hide(); - _actor7.postInit(); - _actor7.setup(1626, 2, 1); - _actor7.setPosition(Common::Point(206, 133)); - _actor7.setDetails(1625, 0, -1, -1, 1, (SceneItem *) NULL); + _wire.postInit(); + _wire.setup(1626, 2, 1); + _wire.setPosition(Common::Point(206, 133)); + _wire.setDetails(1625, 0, -1, -1, 1, (SceneItem *) NULL); _actor5.postInit(); _actor5.setup(1625, 8, 1); _actor5.setPosition(Common::Point(190, 131)); _actor5.setDetails(1625, 6, -1, 2, 1, (SceneItem *) NULL); - if (R2_GLOBALS._player._oldCharacterScene[3] == 1625) { + if (R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] == 1625) { if (!R2_GLOBALS.getFlag(83)) { - _actor4.postInit(); - _actor4.setup(1626, 4, 1); - _actor4.setPosition(Common::Point(96, 166)); - _actor4.setDetails(1625, -1, -1, -1, 1, (SceneItem *) NULL); + _glass.postInit(); + _glass.setup(1626, 4, 1); + _glass.setPosition(Common::Point(96, 166)); + _glass.setDetails(1625, -1, -1, -1, 1, (SceneItem *) NULL); } R2_GLOBALS._player.enableControl(); R2_GLOBALS._player._canWalk = false; @@ -10082,8 +10084,8 @@ void Scene1625::postInit(SceneObjectList *OwnerList) { R2_GLOBALS._sound1.play(245); _item1.setDetails(Rect(0, 0, 320, 200), 1625, 12, -1, -1, 1, NULL); - R2_GLOBALS._player._oldCharacterScene[3] = 1625; - R2_GLOBALS._player._characterScene[3] = 1625; + R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] = 1625; + R2_GLOBALS._player._characterScene[R2_MIRANDA] = 1625; } void Scene1625::remove() { @@ -10095,70 +10097,69 @@ void Scene1625::signal() { switch (_sceneMode) { case 10: R2_GLOBALS._player.disableControl(); - _actor4.postInit(); - _actor4.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); + _glass.postInit(); + _glass.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); _sceneMode = 1626; - setAction(&_sequenceManager, this, 1626, &_actor2, &_actor4, NULL); + setAction(&_sequenceManager, this, 1626, &_tealHead, &_glass, NULL); break; case 12: - // TODO: check if OK_BTN_STRING is required MessageDialog::show(DONE_MSG, OK_BTN_STRING); break; case 14: - _actor2.postInit(); - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); + _tealHead.postInit(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); _sceneMode = 99; R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); _stripManager.start(831, this); break; case 99: R2_GLOBALS._player.disableControl(); - switch (_stripManager._field2E8) { - case 0: + switch (_stripManager._exitMode) { + case 1: _sceneMode = 1627; - setAction(&_sequenceManager, this, 1627, &_actor3, &_actor4, NULL); + setAction(&_sequenceManager, this, 1627, &_actor3, &_glass, NULL); break; - case 1: + case 2: _sceneMode = 1629; - setAction(&_sequenceManager, this, 1629, &_actor2, &_actor5, NULL); + setAction(&_sequenceManager, this, 1629, &_tealHead, &_actor5, NULL); break; - case 3: - R2_GLOBALS._player._oldCharacterScene[3] = 3150; - R2_GLOBALS._player._characterScene[3] = 3150; + case 4: + R2_GLOBALS._player._oldCharacterScene[R2_MIRANDA] = 3150; + R2_GLOBALS._player._characterScene[R2_MIRANDA] = 3150; R2_GLOBALS._player._characterIndex = R2_QUINN; - R2_GLOBALS._sceneManager.changeScene(R2_GLOBALS._player._characterScene[1]); + R2_GLOBALS._sceneManager.changeScene(R2_GLOBALS._player._characterScene[R2_QUINN]); break; - case 4: + case 5: _sceneMode = 1628; - _actor2.remove(); - setAction(&_sequenceManager, this, 1628, &_actor3, &_actor4, NULL); + _tealHead.remove(); + setAction(&_sequenceManager, this, 1628, &_actor3, &_glass, NULL); break; - case 5: - _actor4.postInit(); - _actor4.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); + case 6: + _glass.postInit(); + _glass.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); _sceneMode = 1632; - setAction(&_sequenceManager, this, 1632, &_actor4, NULL); + setAction(&_sequenceManager, this, 1632, &_glass, NULL); break; - case 6: + case 7: _sceneMode = 1633; - setAction(&_sequenceManager, this, 1633, &_actor4, NULL); + setAction(&_sequenceManager, this, 1633, &_glass, NULL); break; - case 7: + case 8: _sceneMode = 1635; setAction(&_sequenceManager, this, 1635, &_actor3, &_actor5, NULL); break; - case 8: - _actor4.postInit(); - _actor4.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); + case 9: + _glass.postInit(); + _glass.setDetails(1625, -1, -1, -1, 2, (SceneItem *) NULL); _sceneMode = 1634; setAction(&_sequenceManager, this, 1634, &_actor3, &_actor5, NULL); break; - case 2: + case 3: // No break on purpose default: _sceneMode = 1630; - _actor2.postInit(); + _tealHead.remove(); setAction(&_sequenceManager, this, 1630, &_actor1, &_actor6, NULL); break; } @@ -10166,17 +10167,17 @@ void Scene1625::signal() { _stripManager._field2E8 = 0; break; case 1625: - _actor2.postInit(); - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); + _tealHead.postInit(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); _sceneMode = 10; R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); _stripManager.start(800, this); break; case 1626: - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); - _actor2.show(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); + _tealHead.show(); _actor3.postInit(); _actor3.setup(1627, 3, 1); @@ -10197,9 +10198,9 @@ void Scene1625::signal() { break; case 1628: R2_GLOBALS.setFlag(83); - _actor2.postInit(); - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); + _tealHead.postInit(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); _actor3.setup(1627, 3, 1); _actor3.setPosition(Common::Point(196, 65)); @@ -10210,9 +10211,9 @@ void Scene1625::signal() { _stripManager.start(834, this); break; case 1629: - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); - _actor2.show(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); + _tealHead.show(); _sceneMode = 99; R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); @@ -10227,13 +10228,12 @@ void Scene1625::signal() { _actor3.setPosition(Common::Point(196, 65)); _actor3.show(); - _actor7.remove(); + _wire.remove(); _actor1.postInit(); _actor1.fixPriority(10); _actor6.postInit(); - warning("_actor6._actorName = \"arm\";"); R2_INVENTORY.setObjectScene(R2_SUPERCONDUCTOR_WIRE, 3); _sceneMode = 14; @@ -10241,16 +10241,16 @@ void Scene1625::signal() { setAction(&_sequenceManager, this, 1625, &_actor1, &_actor6, NULL); break; case 1632: - _actor2.setup(1627, 1, 1); - _actor2.setPosition(Common::Point(68, 68)); - _actor2.show(); + _tealHead.setup(1627, 1, 1); + _tealHead.setPosition(Common::Point(68, 68)); + _tealHead.show(); _sceneMode = 99; R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); _stripManager.start(835, this); break; case 1633: - _actor4.remove(); + _glass.remove(); _sceneMode = 99; R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS); _stripManager.start(818, this); diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.h b/engines/tsage/ringworld2/ringworld2_scenes1.h index 0b6fae7bce..29231314fd 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes1.h +++ b/engines/tsage/ringworld2/ringworld2_scenes1.h @@ -687,7 +687,7 @@ public: }; class Scene1625 : public SceneExt { - class Actor7 : public SceneActor { + class Wire : public SceneActor { public: virtual bool startAction(CursorType action, Event &event); }; @@ -698,12 +698,12 @@ public: SpeakerSoldier1625 _soldierSpeaker; NamedHotspot _item1; SceneActor _actor1; - SceneActor _actor2; + SceneActor _tealHead; SceneActor _actor3; - SceneActor _actor4; + SceneActor _glass; SceneActor _actor5; SceneActor _actor6; - Actor7 _actor7; + Wire _wire; SequenceManager _sequenceManager; Scene1625(); diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp index e7109829b0..a47f60e203 100644 --- a/engines/tsage/ringworld2/ringworld2_speakers.cpp +++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp @@ -2666,7 +2666,7 @@ void SpeakerTeal1625::proc15() { if (!_object2) { Scene1625 *scene = (Scene1625 *)R2_GLOBALS._sceneManager._scene; - _object2 = &scene->_actor2; + _object2 = &scene->_tealHead; _object2->hide(); _object1.postInit(); -- cgit v1.2.3