aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/ringworld_scenes5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/ringworld_scenes5.cpp')
-rw-r--r--engines/tsage/ringworld_scenes5.cpp32
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);