aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-03-05 19:44:12 +1100
committerPaul Gilbert2011-03-05 19:44:12 +1100
commitb8607ae1ce1fdbc7686e073442db76892dea6fec (patch)
tree8653d60ca1cb1b079fcd14decc8d663602a7e113 /engines
parentd74cc379cc40318da7c55a53a30136e1a1517ce8 (diff)
downloadscummvm-rg350-b8607ae1ce1fdbc7686e073442db76892dea6fec.tar.gz
scummvm-rg350-b8607ae1ce1fdbc7686e073442db76892dea6fec.tar.bz2
scummvm-rg350-b8607ae1ce1fdbc7686e073442db76892dea6fec.zip
TSAGE: Implemented hotspots for Scene 2100
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/ringworld_logic.h2
-rw-r--r--engines/tsage/ringworld_scenes3.cpp805
-rw-r--r--engines/tsage/ringworld_scenes3.h57
3 files changed, 547 insertions, 317 deletions
diff --git a/engines/tsage/ringworld_logic.h b/engines/tsage/ringworld_logic.h
index 1f481ed4fc..c9a07ff1f1 100644
--- a/engines/tsage/ringworld_logic.h
+++ b/engines/tsage/ringworld_logic.h
@@ -39,7 +39,7 @@ public:
static Scene *createScene(int sceneNumber);
};
-class DisplayHotspot: public SceneHotspot {
+class DisplayHotspot: public SceneObject {
private:
Common::Array<int> _actions;
bool performAction(int action);
diff --git a/engines/tsage/ringworld_scenes3.cpp b/engines/tsage/ringworld_scenes3.cpp
index cadfaba820..0a4c4a9892 100644
--- a/engines/tsage/ringworld_scenes3.cpp
+++ b/engines/tsage/ringworld_scenes3.cpp
@@ -505,7 +505,7 @@ void Scene2100::Action1::signal() {
}
case 2:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 3: {
Common::Point pt(157, 56);
@@ -563,7 +563,7 @@ void Scene2100::Action1::signal() {
setDelay(1);
} else {
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
}
@@ -582,7 +582,7 @@ void Scene2100::Action1::signal() {
case 7:
_globals->_player.setPriority2(-1);
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
break;
case 8:
_globals->_player.enableControl();
@@ -596,17 +596,17 @@ void Scene2100::Action2::signal() {
switch (_actionIndex++) {
case 0:
- scene->_object10._numFrames = 5;
+ scene->_object3._numFrames = 5;
setDelay(_globals->_randomSource.getRandomNumber(59));
break;
case 1:
- scene->_object10.animate(ANIM_MODE_5, this);
+ scene->_object3.animate(ANIM_MODE_5, this);
break;
case 2:
setDelay(_globals->_randomSource.getRandomNumber(59));
break;
case 3:
- scene->_object10.animate(ANIM_MODE_6, this);
+ scene->_object3.animate(ANIM_MODE_6, this);
_actionIndex = 0;
break;
}
@@ -621,10 +621,10 @@ void Scene2100::Action3::signal() {
setDelay(_globals->_randomSource.getRandomNumber(119));
break;
case 1:
- scene->_object9.animate(ANIM_MODE_5, this);
+ scene->_object2.animate(ANIM_MODE_5, this);
break;
case 3:
- scene->_object9.animate(ANIM_MODE_6, this);
+ scene->_object2.animate(ANIM_MODE_6, this);
_actionIndex = 0;
break;
}
@@ -667,7 +667,7 @@ void Scene2100::Action5::signal() {
setDelay(30);
break;
case 1:
- setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object8, NULL);
+ setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object1, NULL);
break;
case 2: {
Common::Point pt(272, 127);
@@ -676,7 +676,7 @@ void Scene2100::Action5::signal() {
break;
}
case 3:
- _globals->_player.checkAngle(&scene->_object10);
+ _globals->_player.checkAngle(&scene->_object3);
setDelay(30);
break;
case 4:
@@ -690,25 +690,25 @@ void Scene2100::Action6::signal() {
switch (_actionIndex++) {
case 0: {
- scene->_object9.setVisage(2806);
- scene->_object9.setStrip(1);
- scene->_object9.setStrip2(-1);
- scene->_object9.changeZoom(-1);
- scene->_object9.setPosition(Common::Point(155, 116));
- scene->_object9.setObjectWrapper(new SceneObjectWrapper());
- scene->_object9.setAction(NULL);
- scene->_object9.animate(ANIM_MODE_1, NULL);
+ scene->_object2.setVisage(2806);
+ scene->_object2.setStrip(1);
+ scene->_object2.setStrip2(-1);
+ scene->_object2.changeZoom(-1);
+ scene->_object2.setPosition(Common::Point(155, 116));
+ scene->_object2.setObjectWrapper(new SceneObjectWrapper());
+ scene->_object2.setAction(NULL);
+ scene->_object2.animate(ANIM_MODE_1, NULL);
Common::Point pt(130, 116);
NpcMover *mover = new NpcMover();
- scene->_object9.addMover(mover, &pt, NULL);
+ scene->_object2.addMover(mover, &pt, NULL);
break;
}
case 1: {
- scene->_object9.setPriority2(-1);
+ scene->_object2.setPriority2(-1);
Common::Point pt(153, 67);
NpcMover *mover = new NpcMover();
- scene->_object9.addMover(mover, &pt, NULL);
+ scene->_object2.addMover(mover, &pt, NULL);
break;
}
case 2:
@@ -725,7 +725,7 @@ void Scene2100::Action7::signal() {
setDelay(60);
break;
case 1:
- setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object8, NULL);
+ setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object1, NULL);
break;
case 2:
setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, NULL);
@@ -744,7 +744,7 @@ void Scene2100::Action8::signal() {
setDelay(60);
break;
case 1:
- setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object8, NULL);
+ setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object1, NULL);
break;
case 2: {
Common::Point pt(200, 174);
@@ -753,7 +753,7 @@ void Scene2100::Action8::signal() {
break;
}
case 3:
- _globals->_player.checkAngle(&scene->_object10);
+ _globals->_player.checkAngle(&scene->_object3);
scene->_stripManager.start((_globals->_inventory._translator._sceneNumber == 1) ? 7720 : 7710, this);
break;
case 4:
@@ -780,22 +780,22 @@ void Scene2100::Action9::signal() {
break;
case 2:
scene->_soundHandler.startSound(99);
- scene->_object11.unflag100();
- scene->_object11.animate(ANIM_MODE_5, this);
+ scene->_object4.unflag100();
+ scene->_object4.animate(ANIM_MODE_5, this);
break;
case 3:
scene->_soundHandler.startSound(12);
- scene->_object11.setStrip(2);
+ scene->_object4.setStrip(2);
scene->_stripManager.start(6051, this, scene);
break;
case 4:
scene->_soundHandler.proc1(false);
- scene->_object11.setStrip(1);
- scene->_object11.setFrame(scene->_object11.getFrameCount());
- scene->_object11.animate(ANIM_MODE_6, this);
+ scene->_object4.setStrip(1);
+ scene->_object4.setFrame(scene->_object4.getFrameCount());
+ scene->_object4.animate(ANIM_MODE_6, this);
break;
case 5:
- scene->_object11.flag100();
+ scene->_object4.flag100();
_globals->_events.setCursor(CURSOR_WALK);
scene->_stripManager.start(6010, this);
break;
@@ -826,32 +826,32 @@ void Scene2100::Action10::signal() {
break;
}
case 3:
- scene->_object10.setVisage(2105);
- scene->_object10.setStrip(2);
- scene->_object10.setFrame(1);
- scene->_object10._numFrames = 10;
- scene->_object10.setAction(NULL);
- scene->_object10.animate(ANIM_MODE_5, this);
+ scene->_object3.setVisage(2105);
+ scene->_object3.setStrip(2);
+ scene->_object3.setFrame(1);
+ scene->_object3._numFrames = 10;
+ scene->_object3.setAction(NULL);
+ scene->_object3.animate(ANIM_MODE_5, this);
break;
case 4: {
- scene->_object10.setVisage(2705);
- scene->_object10.setStrip2(-1);
- scene->_object10.changeZoom(-1);
- scene->_object10.setPriority2(-1);
- scene->_object10.setPosition(Common::Point(260, 156));
- scene->_object10.setObjectWrapper(new SceneObjectWrapper());
- scene->_object10.animate(ANIM_MODE_1, NULL);
+ scene->_object3.setVisage(2705);
+ scene->_object3.setStrip2(-1);
+ scene->_object3.changeZoom(-1);
+ scene->_object3.setPriority2(-1);
+ scene->_object3.setPosition(Common::Point(260, 156));
+ scene->_object3.setObjectWrapper(new SceneObjectWrapper());
+ scene->_object3.animate(ANIM_MODE_1, NULL);
Common::Point pt(166, 64);
PlayerMover *mover = new PlayerMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
setAction(&scene->_action6, NULL);
break;
}
case 5:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 6: {
_globals->_player.setPriority2(1);
@@ -861,30 +861,30 @@ void Scene2100::Action10::signal() {
break;
}
case 7: {
- scene->_object10.setPriority2(2);
+ scene->_object3.setPriority2(2);
Common::Point pt1(163, 55);
NpcMover *mover1 = new NpcMover();
- scene->_object10.addMover(mover1, &pt1, NULL);
+ scene->_object3.addMover(mover1, &pt1, NULL);
- scene->_object9.setPriority2(2);
+ scene->_object2.setPriority2(2);
Common::Point pt2(158, 55);
NpcMover *mover2 = new NpcMover();
- scene->_object9.addMover(mover2, &pt2, this);
+ scene->_object2.addMover(mover2, &pt2, this);
break;
}
case 8:
_globals->_player.setPriority2(1);
_globals->_player.setStrip(1);
- scene->_object10.setPriority2(1);
- scene->_object10.setStrip(2);
- scene->_object9.setPriority2(2);
- scene->_object9.setStrip(3);
+ scene->_object3.setPriority2(1);
+ scene->_object3.setStrip(2);
+ scene->_object2.setPriority2(2);
+ scene->_object2.setStrip(3);
setDelay(45);
break;
case 9:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
break;
case 10:
_globals->setFlag(70);
@@ -902,57 +902,57 @@ void Scene2100::Action11::signal() {
setDelay(60);
break;
case 1:
- scene->_object10._numFrames = 10;
- scene->_object10.setAction(NULL);
- scene->_object10.setVisage(2105);
- scene->_object10.setStrip(2);
- scene->_object10.setFrame(1);
- scene->_object10.animate(ANIM_MODE_5, this);
+ scene->_object3._numFrames = 10;
+ scene->_object3.setAction(NULL);
+ scene->_object3.setVisage(2105);
+ scene->_object3.setStrip(2);
+ scene->_object3.setFrame(1);
+ scene->_object3.animate(ANIM_MODE_5, this);
break;
case 2: {
- scene->_object10.setVisage(2705);
- scene->_object10.setStrip2(-1);
- scene->_object10.changeZoom(-1);
- scene->_object10.setPriority2(-1);
- scene->_object10.setPosition(Common::Point(260, 156));
- scene->_object10.setObjectWrapper(new SceneObjectWrapper());
- scene->_object10.animate(ANIM_MODE_1, NULL);
+ scene->_object3.setVisage(2705);
+ scene->_object3.setStrip2(-1);
+ scene->_object3.changeZoom(-1);
+ scene->_object3.setPriority2(-1);
+ scene->_object3.setPosition(Common::Point(260, 156));
+ scene->_object3.setObjectWrapper(new SceneObjectWrapper());
+ scene->_object3.animate(ANIM_MODE_1, NULL);
Common::Point pt(158, 62);
PlayerMover *mover = new PlayerMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
setAction(&scene->_action6, NULL);
break;
}
case 3:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 4: {
- scene->_object10.setPriority2(1);
+ scene->_object3.setPriority2(1);
Common::Point pt1(163, 55);
NpcMover *mover1 = new NpcMover();
- scene->_object10.addMover(mover1, &pt1, NULL);
+ scene->_object3.addMover(mover1, &pt1, NULL);
- scene->_object9.setPriority2(1);
+ scene->_object2.setPriority2(1);
Common::Point pt2(158, 55);
NpcMover *mover2 = new NpcMover();
- scene->_object9.addMover(mover2, &pt2, this);
+ scene->_object2.addMover(mover2, &pt2, this);
break;
}
case 5:
- scene->_object10.setStrip(2);
- scene->_object9.setStrip(3);
+ scene->_object3.setStrip(2);
+ scene->_object2.setStrip(3);
setDelay(45);
break;
case 6:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
break;
case 7:
- scene->_object10.remove();
- scene->_object9.remove();
+ scene->_object3.remove();
+ scene->_object2.remove();
_globals->setFlag(70);
_globals->_stripNum = 2102;
_globals->_player.enableControl();
@@ -973,7 +973,7 @@ void Scene2100::Action12::signal() {
break;
case 2:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 3: {
Common::Point pt1(158, 74);
@@ -982,27 +982,27 @@ void Scene2100::Action12::signal() {
Common::Point pt2(158, 68);
NpcMover *mover2 = new NpcMover();
- scene->_object9.addMover(mover2, &pt2, NULL);
+ scene->_object2.addMover(mover2, &pt2, NULL);
break;
}
case 4: {
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, NULL);
+ scene->_object1.animate(ANIM_MODE_6, NULL);
_globals->_player.setPriority2(-1);
Common::Point pt1(277, 84);
PlayerMover *mover1 = new PlayerMover();
_globals->_player.addMover(mover1, &pt1, this);
- scene->_object9.setPriority2(-1);
+ scene->_object2.setPriority2(-1);
Common::Point pt2(255, 76);
PlayerMover *mover2 = new PlayerMover();
- scene->_object9.addMover(mover2, &pt2, this);
+ scene->_object2.addMover(mover2, &pt2, this);
break;
}
case 6:
_globals->_player.setStrip(4);
- scene->_object9.setStrip(4);
+ scene->_object2.setStrip(4);
setDelay(60);
break;
case 7:
@@ -1016,7 +1016,7 @@ void Scene2100::Action12::signal() {
break;
case 9:
_globals->_events.setCursor(OBJECT_STUNNER);
- scene->_object9.setAction(&scene->_action13);
+ scene->_object2.setAction(&scene->_action13);
setDelay(60);
break;
case 10:
@@ -1052,25 +1052,25 @@ void Scene2100::Action13::signal() {
setDelay(6);
break;
case 1: {
- scene->_object9.setPriority2(113);
+ scene->_object2.setPriority2(113);
Common::Point pt(178, 116);
PlayerMover *mover = new PlayerMover();
- scene->_object9.addMover(mover, &pt, this);
+ scene->_object2.addMover(mover, &pt, this);
break;
}
case 2: {
Common::Point pt(150, 116);
NpcMover *mover = new NpcMover();
- scene->_object9.addMover(mover, &pt, this);
+ scene->_object2.addMover(mover, &pt, this);
break;
}
case 3:
- scene->_object9.setVisage(2108);
- scene->_object9._strip = 3;
- scene->_object9.setPosition(Common::Point(150, 100));
- scene->_object9.animate(ANIM_MODE_NONE, NULL);
- scene->_object9.changeZoom(100);
- scene->_object9.setAction(&scene->_action3);
+ scene->_object2.setVisage(2108);
+ scene->_object2._strip = 3;
+ scene->_object2.setPosition(Common::Point(150, 100));
+ scene->_object2.animate(ANIM_MODE_NONE, NULL);
+ scene->_object2.changeZoom(100);
+ scene->_object2.setAction(&scene->_action3);
setDelay(15);
break;
case 4:
@@ -1087,7 +1087,7 @@ void Scene2100::Action14::signal() {
setDelay(6);
break;
case 1:
- setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object8, NULL);
+ setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object1, NULL);
break;
case 2:
setAction(&scene->_sequenceManager, this, 2101, &_globals->_player, NULL);
@@ -1097,61 +1097,61 @@ void Scene2100::Action14::signal() {
break;
case 4:
scene->_soundHandler.startSound(99);
- scene->_object11.unflag100();
- scene->_object11.animate(ANIM_MODE_5, this);
+ scene->_object4.unflag100();
+ scene->_object4.animate(ANIM_MODE_5, this);
break;
case 5:
- scene->_object11.setStrip(2);
+ scene->_object4.setStrip(2);
scene->_stripManager.start(6009, this, scene);
break;
case 6:
scene->_soundHandler.proc1(false);
- scene->_object11.setStrip(1);
- scene->_object11.setFrame(scene->_object11.getFrameCount());
- scene->_object11.animate(ANIM_MODE_6, this);
+ scene->_object4.setStrip(1);
+ scene->_object4.setFrame(scene->_object4.getFrameCount());
+ scene->_object4.animate(ANIM_MODE_6, this);
break;
case 7:
scene->_stripManager.start(6060, this);
break;
case 8:
- scene->_object10._numFrames = 10;
- scene->_object10.setAction(NULL);
- scene->_object10.setVisage(2105);
- scene->_object10.setStrip(2);
- scene->_object10.setFrame(1);
- scene->_object10.animate(ANIM_MODE_5, this);
+ scene->_object3._numFrames = 10;
+ scene->_object3.setAction(NULL);
+ scene->_object3.setVisage(2105);
+ scene->_object3.setStrip(2);
+ scene->_object3.setFrame(1);
+ scene->_object3.animate(ANIM_MODE_5, this);
break;
case 9: {
- scene->_object10.setVisage(2705);
- scene->_object10.setStrip2(-1);
- scene->_object10.changeZoom(-1);
- scene->_object10.setPriority2(-1);
- scene->_object10.setPosition(Common::Point(260, 156));
- scene->_object10.setObjectWrapper(new SceneObjectWrapper());
- scene->_object10.animate(ANIM_MODE_1, NULL);
+ scene->_object3.setVisage(2705);
+ scene->_object3.setStrip2(-1);
+ scene->_object3.changeZoom(-1);
+ scene->_object3.setPriority2(-1);
+ scene->_object3.setPosition(Common::Point(260, 156));
+ scene->_object3.setObjectWrapper(new SceneObjectWrapper());
+ scene->_object3.animate(ANIM_MODE_1, NULL);
Common::Point pt(157, 65);
PlayerMover *mover = new PlayerMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 10:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 11: {
Common::Point pt(159, 51);
NpcMover *mover = new NpcMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 12:
- scene->_object10.setStrip(2);
+ scene->_object3.setStrip(2);
setDelay(30);
case 13:
- scene->_object10.setPriority2(1);
+ scene->_object3.setPriority2(1);
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
break;
case 14:
setDelay(90);
@@ -1171,54 +1171,54 @@ void Scene2100::Action15::signal() {
setDelay(6);
break;
case 1:
- scene->_object10.postInit();
- scene->_object10.setVisage(2705);
- scene->_object10.animate(ANIM_MODE_1, NULL);
- scene->_object10.setObjectWrapper(new SceneObjectWrapper());
- scene->_object10.setPosition(Common::Point(157, 56));
- scene->_object10.setPriority2(1);
- scene->_object10.changeZoom(-1);
+ scene->_object3.postInit();
+ scene->_object3.setVisage(2705);
+ scene->_object3.animate(ANIM_MODE_1, NULL);
+ scene->_object3.setObjectWrapper(new SceneObjectWrapper());
+ scene->_object3.setPosition(Common::Point(157, 56));
+ scene->_object3.setPriority2(1);
+ scene->_object3.changeZoom(-1);
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 2: {
- scene->_object10.setPriority2(-1);
+ scene->_object3.setPriority2(-1);
Common::Point pt(177, 68);
NpcMover *mover = new NpcMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 3: {
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
Common::Point pt(272, 140);
NpcMover *mover = new NpcMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 4: {
Common::Point pt(266, 150);
NpcMover *mover = new NpcMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 5: {
- scene->_object10.setPriority2(156);
+ scene->_object3.setPriority2(156);
Common::Point pt(260, 156);
NpcMover *mover = new NpcMover();
- scene->_object10.addMover(mover, &pt, this);
+ scene->_object3.addMover(mover, &pt, this);
break;
}
case 6:
- scene->_object10.setVisage(2105);
- scene->_object10._strip = 1;
- scene->_object10._frame = 1;
- scene->_object10.setPosition(Common::Point(256, 156));
- scene->_object10.animate(ANIM_MODE_5, this);
- scene->_object10.changeZoom(100);
+ scene->_object3.setVisage(2105);
+ scene->_object3._strip = 1;
+ scene->_object3._frame = 1;
+ scene->_object3.setPosition(Common::Point(256, 156));
+ scene->_object3.animate(ANIM_MODE_5, this);
+ scene->_object3.changeZoom(100);
scene->_object3.animate(ANIM_MODE_NONE, NULL);
break;
@@ -1251,7 +1251,7 @@ void Scene2100::Action16::signal() {
}
case 5:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_5, this);
+ scene->_object1.animate(ANIM_MODE_5, this);
break;
case 6: {
Common::Point pt(160, 54);
@@ -1266,7 +1266,7 @@ void Scene2100::Action16::signal() {
break;
case 8:
scene->_soundHandler.startSound(162);
- scene->_object8.animate(ANIM_MODE_6, this);
+ scene->_object1.animate(ANIM_MODE_6, this);
break;
case 9:
_globals->setFlag(15);
@@ -1285,7 +1285,7 @@ void Scene2100::Action17::signal() {
setDelay(60);
break;
case 1:
- setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object8, NULL);
+ setAction(&scene->_sequenceManager, this, 2104, &_globals->_player, &scene->_object1, NULL);
break;
case 2:
setAction(&scene->_sequenceManager, this, 2101, &_globals->_player, NULL);
@@ -1295,19 +1295,19 @@ void Scene2100::Action17::signal() {
break;
case 4:
scene->_soundHandler.startSound(99);
- scene->_object11.unflag100();
- scene->_object11.animate(ANIM_MODE_5, this);
+ scene->_object4.unflag100();
+ scene->_object4.animate(ANIM_MODE_5, this);
break;
case 5:
scene->_soundHandler.startSound(12);
- scene->_object11.setStrip(2);
+ scene->_object4.setStrip(2);
scene->_stripManager.start(7071, this, scene);
break;
case 6:
scene->_soundHandler.proc1(NULL);
- scene->_object11.setStrip(1);
- scene->_object11.setFrame(scene->_object11.getFrameCount());
- scene->_object11.animate(ANIM_MODE_6, this);
+ scene->_object4.setStrip(1);
+ scene->_object4.setFrame(scene->_object4.getFrameCount());
+ scene->_object4.animate(ANIM_MODE_6, this);
break;
case 7:
scene->_stripManager.start(7072, this);
@@ -1321,8 +1321,8 @@ void Scene2100::Action17::signal() {
}
/*--------------------------------------------------------------------------*/
-/*
-void Scene2100::Object1::doAction(int action) {
+
+void Scene2100::Hotspot2::doAction(int action) {
Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
switch (action) {
@@ -1334,7 +1334,184 @@ void Scene2100::Object1::doAction(int action) {
SceneItem::display2(2100, 29);
else {
_globals->_player.disableControl();
- scene->setAction(&_action4);
+ scene->setAction(&scene->_action4);
+ }
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Hotspot3::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 4);
+ break;
+ case CURSOR_USE:
+ if (_globals->getFlag(13))
+ SceneItem::display2(2100, 29);
+ else {
+ _globals->_player.disableControl();
+ scene->setAction(&scene->_action4);
+ }
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Hotspot4::doAction(int action) {
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 5);
+ break;
+ case CURSOR_USE:
+ SceneItem::display2(2100, 6);
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Hotspot8::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 12);
+ break;
+ case CURSOR_USE:
+ if (_globals->getFlag(13))
+ SceneItem::display2(2100, 29);
+ else {
+ _globals->_player.disableControl();
+ scene->setAction(&scene->_action4);
+ }
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Hotspot10::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 13);
+ break;
+ case CURSOR_USE:
+ if (scene->_field1800) {
+ _globals->_player.disableControl();
+ scene->_sceneMode = 2102;
+ scene->setAction(&scene->_sequenceManager, scene, 2102, &_globals->_player, NULL);
+ } else if (_globals->getFlag(13)) {
+ SceneItem::display2(2100, 28);
+ } else {
+ scene->setAction(&scene->_sequenceManager, scene, 2101, &_globals->_player, NULL);
+ }
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Hotspot14::doAction(int action) {
+ switch (action) {
+ case CURSOR_LOOK:
+ if (_globals->getFlag(0))
+ SceneItem::display2(2100, 19);
+ else
+ SceneItem::display2(2100, 18);
+ break;
+ case CURSOR_USE:
+ if (_globals->getFlag(1))
+ SceneItem::display2(2100, 21);
+ else
+ SceneItem::display2(2100, 20);
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Object1::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 1);
+ break;
+ case CURSOR_USE:
+ scene->setAction(&scene->_action4);
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Object2::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ SceneItem::display2(2100, 30);
+ break;
+ case CURSOR_USE:
+ if (_globals->getFlag(72)) {
+ _globals->_player.disableControl();
+ if (!_globals->getFlag(52))
+ scene->setAction(&scene->_sequenceManager, scene, 2111, NULL);
+ else {
+ scene->_sceneMode = _globals->getFlag(53) ? 2112 : 2110;
+ scene->setAction(&scene->_sequenceManager, scene, scene->_sceneMode, NULL);
+ }
+ } else {
+ if (_globals->getFlag(14))
+ SceneItem::display2(2100, 32);
+ else {
+ _globals->setFlag(14);
+ _globals->_player.disableControl();
+ scene->_sceneMode = 2108;
+ scene->setAction(&scene->_sequenceManager, scene, 2109, NULL);
+ }
+ }
+
+ scene->setAction(&scene->_action4);
+ break;
+ default:
+ SceneHotspot::doAction(action);
+ break;
+ }
+}
+
+void Scene2100::Object3::doAction(int action) {
+ Scene2100 *scene = (Scene2100 *)_globals->_sceneManager._scene;
+
+ switch (action) {
+ case CURSOR_LOOK:
+ if (_globals->getFlag(59))
+ SceneItem::display2(2100, 34);
+ else
+ error("***I have no response.");
+ break;
+
+ case CURSOR_TALK:
+ if (_globals->getFlag(59)) {
+ _globals->_player.disableControl();
+ scene->_sceneMode = 2108;
+ scene->setAction(&scene->_sequenceManager, scene, 2108, NULL);
+ } else {
+ error("***I have no response.");
}
break;
default:
@@ -1342,7 +1519,6 @@ void Scene2100::Object1::doAction(int action) {
break;
}
}
-*/
/*--------------------------------------------------------------------------*/
@@ -1423,7 +1599,15 @@ void Scene2100::SceneArea::synchronise(Serialiser &s) {
/*--------------------------------------------------------------------------*/
Scene2100::Scene2100():
- _hotspot1(0, 2100, 2, LIST_END) {
+ _hotspot1(0, CURSOR_LOOK, 2100, 2, LIST_END),
+ _hotspot5(0, CURSOR_LOOK, 2100, 9, LIST_END),
+ _hotspot6(0, CURSOR_LOOK, 2100, 7, CURSOR_USE, 2100, 8, LIST_END),
+ _hotspot7(0, CURSOR_LOOK, 2100, 7, CURSOR_USE, 2100, 11, LIST_END),
+ _hotspot9(0, CURSOR_LOOK, 2100, 14, LIST_END),
+ _hotspot11(0, CURSOR_LOOK, 2100, 15, CURSOR_USE, 2100, 16, LIST_END),
+ _hotspot12(0, CURSOR_LOOK, 2100, 24, CURSOR_USE, 2100, 25, LIST_END),
+ _hotspot13(0, CURSOR_LOOK, 2100, 17, LIST_END),
+ _hotspot15(0, CURSOR_LOOK, 2100, 22, CURSOR_USE, 2100, 23, LIST_END) {
}
void Scene2100::postInit(SceneObjectList *OwnerList) {
@@ -1441,111 +1625,112 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_stripManager.addSpeaker(&_speakerSAL);
_stripManager.addSpeaker(&_speakerHText);
_stripManager.addSpeaker(&_speakerGameText);
- _speakerMText._npc = &_object10;
+ _speakerMText._npc = &_object3;
_speakerQText._npc = &_globals->_player;
- _speakerSText._npc = &_object9;
+ _speakerSText._npc = &_object2;
- _object8.postInit();
- _object8.setVisage(2100);
- _object8.animate(ANIM_MODE_NONE, NULL);
- _object8.setPosition(Common::Point(157, 57));
- _object8.setPriority(5);
-
- _object2.postInit();
- _object2.setVisage(2101);
- _object2._frame = 1;
- _object2.animate(ANIM_MODE_2, NULL);
- _object2.setPosition(Common::Point(53, 44));
- _object2.changeZoom(100);
- _object2.setPriority2(1);
-
- _object3.postInit();
- _object3.setVisage(2101);
- _object3._frame = 1;
- _object3._strip = 3;
- _object3.animate(ANIM_MODE_8, 0, NULL);
- _object3.setPosition(Common::Point(274, 52));
- _object3.changeZoom(100);
- _object3.setPriority2(1);
-
- _object4.postInit();
- _object4.setVisage(2101);
- _object4._frame = 1;
- _object4._strip = 4;
- _object4.animate(ANIM_MODE_8, 0, NULL);
- _object4.setPosition(Common::Point(219, 141));
- _object4.changeZoom(100);
- _object4.setPriority2(160);
-
- _object5.postInit();
- _object5.setVisage(2101);
- _object5._frame = 1;
- _object5._strip = 5;
- _object5.setPriority2(175);
- _object5.animate(ANIM_MODE_8, 0, NULL);
- _object5.setPosition(Common::Point(97, 142));
- _object5.changeZoom(100);
-
- _object6.postInit();
- _object6.setVisage(2101);
- _object6._frame = 1;
- _object6._strip = 6;
- _object6.animate(ANIM_MODE_NONE, NULL);
- _object6.setPosition(Common::Point(133, 46));
- _object6.changeZoom(100);
- _object6.setPriority2(1);
-
- _object7.postInit();
- _object7.setVisage(2101);
- _object7._frame = 1;
- _object7._strip = 7;
- _object7.animate(ANIM_MODE_8, 0, NULL);
- _object7.setPosition(Common::Point(20, 45));
- _object7.changeZoom(100);
- _object7.setPriority2(1);
-
_object1.postInit();
- _object1.setVisage(2101);
- _object1._frame = 1;
- _object1._strip = 7;
- _object1.animate(ANIM_MODE_8, 0, NULL);
- _object1.setPosition(Common::Point(88, 41));
- _object1.changeZoom(100);
- _object1.setPriority2(1);
-
- _hotspot4.setBounds(Rect(139, 74, 173, 96));
- _hotspot3.setBounds(Rect(71, 100, 91, 135));
- _hotspot7.setBounds(Rect(100, 97, 216, 130));
- _hotspot6.setBounds(Rect(13, 124, 94, 168));
- _hotspot5.setBounds(Rect(217, 141, 307, 155));
- _hotspot8.setBounds(Rect(14, 90, 46, 107));
+ _object1.setVisage(2100);
+ _object1.animate(ANIM_MODE_NONE, NULL);
+ _object1.setPosition(Common::Point(157, 57));
+ _object1.setPriority(5);
+
+ _hotspot3.postInit();
+ _hotspot3.setVisage(2101);
+ _hotspot3._frame = 1;
+ _hotspot3.animate(ANIM_MODE_2, NULL);
+ _hotspot3.setPosition(Common::Point(53, 44));
+ _hotspot3.changeZoom(100);
+ _hotspot3.setPriority2(1);
+
+ _hotspot4.postInit();
+ _hotspot4.setVisage(2101);
+ _hotspot4._frame = 1;
+ _hotspot4._strip = 3;
+ _hotspot4.animate(ANIM_MODE_8, 0, NULL);
+ _hotspot4.setPosition(Common::Point(274, 52));
+ _hotspot4.changeZoom(100);
+ _hotspot4.setPriority2(1);
+
+ _hotspot5.postInit();
+ _hotspot5.setVisage(2101);
+ _hotspot5._frame = 1;
+ _hotspot5._strip = 4;
+ _hotspot5.animate(ANIM_MODE_8, 0, NULL);
+ _hotspot5.setPosition(Common::Point(219, 141));
+ _hotspot5.changeZoom(100);
+ _hotspot5.setPriority2(160);
+
+ _hotspot6.postInit();
+ _hotspot6.setVisage(2101);
+ _hotspot6._frame = 1;
+ _hotspot6._strip = 5;
+ _hotspot6.setPriority2(175);
+ _hotspot6.animate(ANIM_MODE_8, 0, NULL);
+ _hotspot6.setPosition(Common::Point(97, 142));
+ _hotspot6.changeZoom(100);
+
+ _hotspot7.postInit();
+ _hotspot7.setVisage(2101);
+ _hotspot7._frame = 1;
+ _hotspot7._strip = 6;
+ _hotspot7.animate(ANIM_MODE_NONE, NULL);
+ _hotspot7.setPosition(Common::Point(133, 46));
+ _hotspot7.changeZoom(100);
+ _hotspot7.setPriority2(1);
+
+ _hotspot8.postInit();
+ _hotspot8.setVisage(2101);
+ _hotspot8._frame = 1;
+ _hotspot8._strip = 7;
+ _hotspot8.animate(ANIM_MODE_8, 0, NULL);
+ _hotspot8.setPosition(Common::Point(20, 45));
+ _hotspot8.changeZoom(100);
+ _hotspot8.setPriority2(1);
+
+ _hotspot2.postInit();
+ _hotspot2.setVisage(2101);
+ _hotspot2._frame = 1;
+ _hotspot2._strip = 7;
+ _hotspot2.animate(ANIM_MODE_8, 0, NULL);
+ _hotspot2.setPosition(Common::Point(88, 41));
+ _hotspot2.changeZoom(100);
+ _hotspot2.setPriority2(1);
+
+ _hotspot11.setBounds(Rect(139, 74, 173, 96));
+ _hotspot10.setBounds(Rect(71, 100, 91, 135));
+ _hotspot9.setBounds(Rect(225, 110, 251, 136));
+ _hotspot14.setBounds(Rect(100, 97, 216, 130));
+ _hotspot13.setBounds(Rect(13, 124, 94, 168));
+ _hotspot12.setBounds(Rect(217, 141, 307, 155));
+ _hotspot15.setBounds(Rect(14, 90, 46, 107));
_hotspot1.setBounds(Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT));
if (!_globals->getFlag(36) && !_globals->getFlag(70) && !_globals->getFlag(43)) {
- _object10.postInit();
- _object10.setPosition(Common::Point(246, 156));
- _object10.animate(ANIM_MODE_NONE, NULL);
- _object10.changeZoom(100);
- _object10.setPriority2(156);
- _object10.setVisage(2107);
- _object10.setStrip(1);
- _object10.setAction(&_action2);
- _globals->_sceneItems.push_back(&_object10);
+ _object3.postInit();
+ _object3.setPosition(Common::Point(246, 156));
+ _object3.animate(ANIM_MODE_NONE, NULL);
+ _object3.changeZoom(100);
+ _object3.setPriority2(156);
+ _object3.setVisage(2107);
+ _object3.setStrip(1);
+ _object3.setAction(&_action2);
+ _globals->_sceneItems.push_back(&_object3);
}
if (!_globals->getFlag(59) && !_globals->getFlag(70) && !_globals->getFlag(37) && !_globals->getFlag(114)) {
- _object9.postInit();
- _object9.setPosition(Common::Point(150, 100));
- _object9.animate(ANIM_MODE_NONE, NULL);
- _object9.changeZoom(100);
- _object9.setPriority2(113);
- _object9.setAction(&_action3);
- _globals->_sceneItems.push_back(&_object9);
+ _object2.postInit();
+ _object2.setPosition(Common::Point(150, 100));
+ _object2.animate(ANIM_MODE_NONE, NULL);
+ _object2.changeZoom(100);
+ _object2.setPriority2(113);
+ _object2.setAction(&_action3);
+ _globals->_sceneItems.push_back(&_object2);
}
- _globals->_sceneItems.addItems(&_hotspot8, &_hotspot4, &_hotspot3, &_hotspot2, &_hotspot7, &_hotspot6,
- &_hotspot5, &_object7, &_object8, &_object1, &_object2, &_object3, &_object4, &_object5, &_object6,
- &_hotspot1, NULL);
+ _globals->_sceneItems.addItems(&_hotspot15, &_hotspot11, &_hotspot10, &_hotspot9, &_hotspot14,
+ &_hotspot13, &_hotspot12, &_hotspot8, &_object1, &_hotspot2, &_hotspot3, &_hotspot4, &_hotspot5,
+ &_hotspot6, &_hotspot7, &_hotspot1, NULL);
_area1.setup(2153, 2, 1, 2100);
_area1._pt = Common::Point(200, 31);
@@ -1569,7 +1754,7 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
case 2120:
_globals->_soundHandler.startSound(160);
_globals->_soundHandler.proc5(true);
- _object8.setPriority2(-1);
+ _object1.setPriority2(-1);
_globals->_player.setPriority2(-1);
_globals->_player.setPosition(Common::Point(80, 66));
_globals->_player.enableControl();
@@ -1578,52 +1763,52 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(157, 56));
_sceneMode = 2104;
- setAction(&_sequenceManager, this, 2104, &_globals->_player, &_object8, NULL);
+ setAction(&_sequenceManager, this, 2104, &_globals->_player, &_object1, NULL);
break;
case 2222:
- if (_globals->_sceneObjects->contains(&_object10))
- _object10.remove();
+ if (_globals->_sceneObjects->contains(&_object3))
+ _object3.remove();
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(144, 55));
- _object9.setVisage(2806);
- _object9.changeZoom(-1);
- _object9.setPosition(Common::Point(158, 55));
- _object9.setPriority2(1);
- _object9.setAction(NULL);
- _object9.setObjectWrapper(new SceneObjectWrapper());
- _object9.animate(ANIM_MODE_1, NULL);
- _object9.setStrip(3);
+ _object2.setVisage(2806);
+ _object2.changeZoom(-1);
+ _object2.setPosition(Common::Point(158, 55));
+ _object2.setPriority2(1);
+ _object2.setAction(NULL);
+ _object2.setObjectWrapper(new SceneObjectWrapper());
+ _object2.animate(ANIM_MODE_1, NULL);
+ _object2.setStrip(3);
setAction(&_action12);
break;
case 2320:
if (_globals->_stripNum == 2321) {
- if (_globals->_sceneObjects->contains(&_object10))
- _object10.remove();
+ if (_globals->_sceneObjects->contains(&_object3))
+ _object3.remove();
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(144, 55));
- _object9.postInit();
- _object9.setVisage(2806);
- _object9.setStrip(1);
- _object9.changeZoom(-1);
- _object9.setPosition(Common::Point(158, 55));
- _object9.setPriority2(1);
- _object9.setAction(NULL);
- _object9.setObjectWrapper(new SceneObjectWrapper());
- _object9.animate(ANIM_MODE_1, NULL);
+ _object2.postInit();
+ _object2.setVisage(2806);
+ _object2.setStrip(1);
+ _object2.changeZoom(-1);
+ _object2.setPosition(Common::Point(158, 55));
+ _object2.setPriority2(1);
+ _object2.setAction(NULL);
+ _object2.setObjectWrapper(new SceneObjectWrapper());
+ _object2.animate(ANIM_MODE_1, NULL);
setAction(&_action12);
} else if (_globals->_stripNum == 6100) {
_globals->_player.setPosition(Common::Point(157, 56));
_globals->_player.setPriority2(1);
- _object11.postInit();
- _object11.setVisage(2102);
- _object11.setPosition(Common::Point(160, 199));
- _object11.flag100();
+ _object4.postInit();
+ _object4.setVisage(2102);
+ _object4.setPosition(Common::Point(160, 199));
+ _object4.flag100();
setAction(&_action14);
} else {
@@ -1631,7 +1816,7 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPosition(Common::Point(157, 56));
_sceneMode = 2104;
- setAction(&_sequenceManager, this, 2104, &_globals->_player, &_object8, NULL);
+ setAction(&_sequenceManager, this, 2104, &_globals->_player, &_object1, NULL);
}
break;
case 3700:
@@ -1639,8 +1824,8 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_soundHandler.proc5(true);
Scene::setZoomPercents(80, 75, 100, 90);
- if (_globals->_sceneObjects->contains(&_object9))
- _object9.remove();
+ if (_globals->_sceneObjects->contains(&_object2))
+ _object2.remove();
_globals->_player._angle = 225;
_globals->_player.setStrip(6);
@@ -1648,10 +1833,10 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPriority2(-1);
_globals->_player.setPosition(Common::Point(272, 127));
- _object10.setPosition(Common::Point(246, 156));
- _object10.setPriority2(156);
+ _object3.setPosition(Common::Point(246, 156));
+ _object3.setPriority2(156);
_sceneMode = 2105;
- setAction(&_sequenceManager, this, 2105, &_object10, NULL);
+ setAction(&_sequenceManager, this, 2105, &_object3, NULL);
break;
case 4250:
_globals->_soundHandler.startSound(160);
@@ -1664,28 +1849,28 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPriority2(152);
_globals->_player.setStrip(2);
- _object11.postInit();
- _object11.setVisage(2102);
- _object11.setPosition(Common::Point(160, 199));
- _object11.flag100();
+ _object4.postInit();
+ _object4.setVisage(2102);
+ _object4.setPosition(Common::Point(160, 199));
+ _object4.flag100();
_sceneMode = 2107;
- setAction(&_sequenceManager, this, 2107, &_object11, NULL);
+ setAction(&_sequenceManager, this, 2107, &_object4, NULL);
break;
case 5000:
_globals->_soundHandler.startSound(160);
_globals->_soundHandler.proc5(true);
- if (_globals->_sceneObjects->contains(&_object9))
- _object9.remove();
+ if (_globals->_sceneObjects->contains(&_object2))
+ _object2.remove();
_globals->_player.setStrip(3);
_globals->_player.setFrame(1);
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(157, 56));
- _object10.setPosition(Common::Point(246, 156));
- _object10.setPriority2(156);
+ _object3.setPosition(Common::Point(246, 156));
+ _object3.setPriority2(156);
setAction(&_action5);
break;
@@ -1700,10 +1885,10 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_field1800 = 1;
- _object11.postInit();
- _object11.setVisage(2102);
- _object11.setPosition(Common::Point(160, 199));
- _object11.flag100();
+ _object4.postInit();
+ _object4.setVisage(2102);
+ _object4.setPosition(Common::Point(160, 199));
+ _object4.flag100();
_globals->_inventory._stasisBox._sceneNumber = 0;
setAction(&_action9);
@@ -1716,10 +1901,10 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(157, 56));
- _object11.postInit();
- _object11.setVisage(2102);
- _object11.setPosition(Common::Point(160, 199));
- _object11.flag100();
+ _object4.postInit();
+ _object4.setVisage(2102);
+ _object4.setPosition(Common::Point(160, 199));
+ _object4.flag100();
_globals->clearFlag(15);
_globals->clearFlag(109);
_globals->clearFlag(72);
@@ -1740,8 +1925,8 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_soundHandler.startSound(160);
_globals->_soundHandler.proc5(true);
- if (_globals->_sceneObjects->contains(&_object9))
- _object9.remove();
+ if (_globals->_sceneObjects->contains(&_object2))
+ _object2.remove();
_globals->_player.setPriority2(1);
_globals->_player.setPosition(Common::Point(157, 56));
@@ -1771,13 +1956,13 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
_globals->_player.setPriority2(152);
_globals->_player.setStrip(2);
- _object11.postInit();
- _object11.setVisage(2102);
- _object11.setPosition(Common::Point(160, 199));
- _object11.flag100();
+ _object4.postInit();
+ _object4.setVisage(2102);
+ _object4.setPosition(Common::Point(160, 199));
+ _object4.flag100();
_sceneMode = 2103;
- setAction(&_sequenceManager, this, 2103, &_object11, NULL);
+ setAction(&_sequenceManager, this, 2103, &_object4, NULL);
break;
default:
_globals->_soundHandler.startSound(160);
@@ -1794,11 +1979,11 @@ void Scene2100::postInit(SceneObjectList *OwnerList) {
void Scene2100::stripCallback(int v) {
switch (v) {
case 1:
- _object11._numFrames = 4;
- _object11.animate(ANIM_MODE_7, NULL);
+ _object4._numFrames = 4;
+ _object4.animate(ANIM_MODE_7, NULL);
break;
case 2:
- _object11.animate(ANIM_MODE_NONE, NULL);
+ _object4.animate(ANIM_MODE_NONE, NULL);
break;
}
}
diff --git a/engines/tsage/ringworld_scenes3.h b/engines/tsage/ringworld_scenes3.h
index ff093b912e..72affa3358 100644
--- a/engines/tsage/ringworld_scenes3.h
+++ b/engines/tsage/ringworld_scenes3.h
@@ -197,7 +197,41 @@ class Scene2100: public Scene {
};
/* Hotspots */
- class Hotspot2: public SceneHotspot {
+ class Hotspot2: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Hotspot3: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Hotspot4: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Hotspot8: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Hotspot10: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Hotspot14: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+
+ /* Objects */
+ class Object1: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Object2: public SceneObject {
+ public:
+ virtual void doAction(int action);
+ };
+ class Object3: public SceneObject {
public:
virtual void doAction(int action);
};
@@ -241,11 +275,22 @@ public:
SpeakerHText _speakerHText;
DisplayHotspot _hotspot1;
- SceneHotspot _hotspot2, _hotspot3, _hotspot4;
- SceneHotspot _hotspot5, _hotspot6, _hotspot7, _hotspot8;
- SceneObject _object1, _object2, _object3, _object4, _object5;
- SceneObject _object6, _object7, _object8, _object9, _object10;
- SceneObject _object11;
+ Hotspot2 _hotspot2;
+ Hotspot3 _hotspot3;
+ Hotspot4 _hotspot4;
+ DisplayHotspot _hotspot5, _hotspot6, _hotspot7;
+ Hotspot8 _hotspot8;
+ DisplayHotspot _hotspot9;
+ Hotspot10 _hotspot10;
+ DisplayHotspot _hotspot11, _hotspot12, _hotspot13;
+ Hotspot14 _hotspot14;
+ DisplayHotspot _hotspot15;
+
+ Object1 _object1;
+ Object2 _object2;
+ Object3 _object3;
+ SceneObject _object4;
+
Action1 _action1;
Action2 _action2;
Action3 _action3;