diff options
Diffstat (limited to 'engines/tsage/ringworld_scenes5.cpp')
-rw-r--r-- | engines/tsage/ringworld_scenes5.cpp | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/engines/tsage/ringworld_scenes5.cpp b/engines/tsage/ringworld_scenes5.cpp index cda69b859f..8b95e40abe 100644 --- a/engines/tsage/ringworld_scenes5.cpp +++ b/engines/tsage/ringworld_scenes5.cpp @@ -34,6 +34,7 @@ namespace tSage { *--------------------------------------------------------------------------*/ void Scene4000::Action1::signal() { + // Quinn has the peg. Everybody enter the screen. Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -124,6 +125,8 @@ void Scene4000::Action1::signal() { } void Scene4000::Action2::signal() { + // Quinn, Seeker and Miranda walks down to the village + // Then, they talk to Rock, and enter the priest hut Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -179,6 +182,7 @@ void Scene4000::Action2::signal() { } void Scene4000::Action3::signal() { + // The guard walks to the left and exits the screen Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -197,6 +201,7 @@ void Scene4000::Action3::signal() { } void Scene4000::Action4::signal() { + // Quinn ties the rope to the rock Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -235,6 +240,7 @@ void Scene4000::Action4::signal() { } void Scene4000::Action5::signal() { + // Chat with Miranda Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -261,6 +267,8 @@ void Scene4000::Action5::signal() { } void Scene4000::Action6::signal() { + // Quinn and Miranda enter the screen and walk to the village. + // Rock comes and notices the alcohol. They all enter his hut. Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -322,6 +330,7 @@ void Scene4000::Action7::signal() { } void Scene4000::Action8::signal() { + // Climb down right Chimney using a rope Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -335,7 +344,7 @@ void Scene4000::Action8::signal() { case 1: _globals->_player.setVisage(4008); _globals->_player.setStrip(5); - _globals->_player.setPriority(16); + _globals->_player.fixPriority(16); _globals->_player.setFrame(1); _globals->_player.setPosition(Common::Point(283, 52)); _globals->_player.animate(ANIM_MODE_5, this); @@ -362,6 +371,7 @@ void Scene4000::Action8::signal() { } void Scene4000::Action9::signal() { + // Villager animations switch (_actionIndex++) { case 0: setDelay(_globals->_randomSource.getRandomNumber(119) + 240); @@ -374,6 +384,7 @@ void Scene4000::Action9::signal() { } void Scene4000::Action10::signal() { + // Villager animations switch (_actionIndex++) { case 0: setDelay(_globals->_randomSource.getRandomNumber(119) + 240); @@ -432,6 +443,7 @@ void Scene4000::Action11::signal() { } void Scene4000::Action12::signal() { + // Quinn enter Rock's hut Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -473,6 +485,7 @@ void Scene4000::Action12::signal() { } void Scene4000::Action13::signal() { + // Lander is landing Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (_actionIndex++) { @@ -538,6 +551,7 @@ void Scene4000::Miranda::doAction(int action) { } void Scene4000::Hotspot8::doAction(int action) { + // Guard Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (action) { @@ -652,7 +666,7 @@ void Scene4000::TheTech::doAction(int action) { } void Scene4000::Hotspot13::doAction(int action) { - // Rock + // Rock between the two chimneys Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (action) { @@ -672,6 +686,7 @@ void Scene4000::Hotspot13::doAction(int action) { } void Scene4000::Hotspot::doAction(int action) { + // Wall between the two doors Scene4000 *scene = (Scene4000 *)_globals->_sceneManager._scene; switch (action) { @@ -752,6 +767,7 @@ void Scene4000::Hotspot18::doAction(int action) { } void Scene4000::Hotspot23::doAction(int action) { + // Door of the temple switch (action) { case CURSOR_LOOK: SceneItem::display2(4000, _globals->getFlag(31) ? 10 : 9); @@ -996,6 +1012,7 @@ void Scene4000::postInit(SceneObjectList *OwnerList) { _miranda.setPosition(Common::Point(246, 146)); if (_globals->getFlag(39)) { + // Ollo follows Quinn and gives explanations on the Tech. _globals->clearFlag(39); _olo.postInit(); @@ -1006,6 +1023,8 @@ void Scene4000::postInit(SceneObjectList *OwnerList) { _sceneMode = 4010; _globals->_player.disableControl(); + // This is the buggy animation where Miranda comments the Tech even + // if she's not in the room but in the lander. setAction(&_sequenceManager1, this, 4010, &_globals->_player, &_olo, NULL); } @@ -1458,7 +1477,7 @@ void Scene4025::Hole::doAction(int action) { void Scene4025::Peg::synchronize(Serializer &s) { SceneObject::synchronize(s); s.syncAsSint16LE(_field88); - SYNC_POINTER(_armStrip); + s.syncAsSint16LE(_armStrip); } void Scene4025::Peg::doAction(int action) { @@ -2712,6 +2731,10 @@ void Scene4100::postInit(SceneObjectList *OwnerList) { setAction(&_action4); _globals->clearFlag(43); + } else { + // Workaround: In the original, the mouse is hidden when Quinn + // goes back to scene 4150 then to scene 4100. This enables everything. + _globals->_player.enableControl(); } _globals->_player.setPosition(Common::Point(252, 139)); @@ -2978,7 +3001,7 @@ Scene4150::Scene4150() : _hotspot11(0, CURSOR_LOOK, 4150, 6, CURSOR_USE, 4150, 29, LIST_END), _hotspot12(0, CURSOR_LOOK, 4150, 7, CURSOR_USE, 4150, 29, LIST_END), _hotspot17(0, CURSOR_LOOK, 4150, 10, CURSOR_USE, 4150, 27, OBJECT_STUNNER, 4150, 32, LIST_END), - _hotspot18(0, CURSOR_LOOK, 4150, 11, CURSOR_USE, 4150, 32, OBJECT_STUNNER, 4150, 27, LIST_END), + _hotspot18(0, CURSOR_LOOK, 4150, 11, CURSOR_USE, 4150, 27, OBJECT_STUNNER, 4150, 32, LIST_END), _hotspot19(0, CURSOR_LOOK, 4150, 12, CURSOR_USE, 4150, 29, LIST_END), _hotspot20(0, CURSOR_LOOK, 4150, 13, CURSOR_USE, 4150, 29, LIST_END), _hotspot21(0, CURSOR_LOOK, 4150, 13, CURSOR_USE, 4150, 29, LIST_END), @@ -3088,6 +3111,7 @@ void Scene4150::dispatch() { if (!_action && (_globals->_player._position.x >= 316)) { _globals->_soundHandler.proc1(NULL); + _soundHandler.proc1(NULL); _globals->_player.disableControl(); _sceneMode = 4152; setAction(&_sequenceManager, this, 4152, &_globals->_player, NULL); |