aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2011-12-30 12:08:41 +0100
committerStrangerke2011-12-30 16:56:18 +0100
commit211eb00e8725e36b8c802a9b7b9b9812e9c3053e (patch)
tree563fb105428389da6dda05ef82683c4cb3bcea6d
parenta473934abd2dc4d402963c6f43cec4147ab71e82 (diff)
downloadscummvm-rg350-211eb00e8725e36b8c802a9b7b9b9812e9c3053e.tar.gz
scummvm-rg350-211eb00e8725e36b8c802a9b7b9b9812e9c3053e.tar.bz2
scummvm-rg350-211eb00e8725e36b8c802a9b7b9b9812e9c3053e.zip
TSAGE: R2R - Cleanup: reorganise speakers, add ancestor classes where speaker declaration is common to several speakers.
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes2.h11
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes3.h4
-rw-r--r--engines/tsage/ringworld2/ringworld2_speakers.cpp2102
-rw-r--r--engines/tsage/ringworld2/ringworld2_speakers.h425
4 files changed, 1055 insertions, 1487 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_scenes2.h b/engines/tsage/ringworld2/ringworld2_scenes2.h
index d007f7e9f5..281d1da366 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes2.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes2.h
@@ -106,8 +106,8 @@ class Scene2350 : public SceneExt {
};
public:
- SpeakerQuinn2350 _quinnSpeaker;
- SpeakerPharisha2350 _pharishaSpeaker;
+ SpeakerQuinn _quinnSpeaker;
+ SpeakerPharisha _pharishaSpeaker;
NamedHotspot _item1;
SceneActor _actor1;
Actor2 _actor2;
@@ -368,9 +368,9 @@ class Scene2500 : public SceneExt {
virtual void changeScene();
};
public:
- SpeakerQuinn2500 _quinnSpeaker;
- SpeakerSeeker2500 _seekerSpeaker;
- SpeakerMiranda2500 _mirandaSpeaker;
+ SpeakerQuinn _quinnSpeaker;
+ SpeakerSeeker _seekerSpeaker;
+ SpeakerMiranda _mirandaSpeaker;
SpeakerWebbster2500 _webbsterSpeaker;
NamedHotspot _item1;
SceneActor _actor1;
@@ -665,6 +665,7 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index 558acf62e9..812ab800cc 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -47,7 +47,7 @@ class Scene3100 : public SceneExt {
public:
int _field412;
- SpeakerGuard3100 _guardSpeaker;
+ SpeakerGuard _guardSpeaker;
NamedHotspot _item1;
NamedHotspot _item2;
SceneActor _actor1;
@@ -241,7 +241,7 @@ class Scene3240 : public SceneExt {
public:
SpeakerTeal3240 _tealSpeaker;
SpeakerWebbster3240 _webbsterSpeaker;
- SpeakerMiranda2500 _mirandaSpeaker;
+ SpeakerMiranda _mirandaSpeaker;
SceneActor _actor1;
SceneActor _actor2;
SequenceManager _sequenceManager;
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index b8773192b0..7f5cdc1328 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -191,11 +191,13 @@ void VisualSpeaker::setDelay(int delay) {
_frameNumber = R2_GLOBALS._events.getFrameNumber();
}
-/*--------------------------------------------------------------------------*/
+//----------------------------------------------------------------------------
+// Classes related to CAPTAIN
+//----------------------------------------------------------------------------
-SpeakerMiranda300::SpeakerMiranda300(): VisualSpeaker() {
- _speakerName = "MIRANDA";
- _color1 = 154;
+SpeakerCaptain3210::SpeakerCaptain3210() {
+ _speakerName = "Captain";
+ _color1 = 5;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -205,17 +207,12 @@ SpeakerMiranda300::SpeakerMiranda300(): VisualSpeaker() {
_numFrames = 0;
}
-void SpeakerMiranda300::proc15() {
+void SpeakerCaptain3210::proc15() {
int v = _fieldF6;
+ Scene3210 *scene = (Scene3210 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3) {
- _object2 = &R2_GLOBALS._player;
- } else {
- Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_miranda;
- }
-
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -226,30 +223,20 @@ void SpeakerMiranda300::proc15() {
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- } else if (v == 100) {
- _numFrames = 0;
- ((SceneItem *)_action)->_sceneRegionId = 0;
-
- _object1.setStrip(_object1._strip - 1);
- _object1.setFrame(_object1.getFrameCount());
- _object1.animate(ANIM_MODE_6, this);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
-
- if (v == 4) {
- _object1.setup(304, 5, 1);
- } else {
- _object1.setup(305, v * 2 - 1, 1);
- }
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-/*--------------------------------------------------------------------------*/
+//----------------------------------------------------------------------------
+// Classes related to CARETAKER
+//----------------------------------------------------------------------------
-SpeakerSeeker300::SpeakerSeeker300(): VisualSpeaker() {
- _speakerName = "SEEKER";
- _color1 = 35;
+SpeakerCaretaker2450::SpeakerCaretaker2450() {
+ _speakerName = "CARETAKER";
+ _color1 = 43;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -259,20 +246,30 @@ SpeakerSeeker300::SpeakerSeeker300(): VisualSpeaker() {
_numFrames = 0;
}
-void SpeakerSeeker300::proc15() {
+//----------------------------------------------------------------------------
+// Classes related to GUARD
+//----------------------------------------------------------------------------
+
+SpeakerGuard::SpeakerGuard() {
+ _speakerName = "GUARD";
+ _color1 = 5;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerGuard2800::proc15() {
int v = _fieldF6;
+ Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3) {
- _object2 = &R2_GLOBALS._player;
- } else {
- Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_seeker;
- }
-
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
- _object1.fixPriority(140);
_object1.setPosition(_object2->_position);
if (_object2->_mover)
@@ -281,55 +278,21 @@ void SpeakerSeeker300::proc15() {
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- } else if (v == 100) {
- _numFrames = 0;
- ((SceneItem *)_action)->_sceneRegionId = 0;
-
- _object1.setStrip(_object1._strip - 1);
- _object1.setFrame(_object1.getFrameCount());
- _object1.animate(ANIM_MODE_6, this);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(306, v * 2 - 1, 1);
+ _object1.setZoom(75);
+ _object1.setup(4060, 3, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-/*--------------------------------------------------------------------------*/
+//----------------------------------------------------------------------------
+// Classes related to JOCKO
+//----------------------------------------------------------------------------
-SpeakerSeekerL::SpeakerSeekerL(): VisualSpeaker() {
- _speakerName = "SEEKERL";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
- _fontNumber = 10;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQuinnL::SpeakerQuinnL(): VisualSpeaker() {
- _speakerName = "QUINNL";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
- _fontNumber = 10;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQuinn300::SpeakerQuinn300(): VisualSpeaker() {
- _speakerName = "QUINN";
- _color1 = 60;
+SpeakerJocko::SpeakerJocko() {
+ _speakerName = "Jocko";
+ _color1 = 45;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -339,17 +302,12 @@ SpeakerQuinn300::SpeakerQuinn300(): VisualSpeaker() {
_numFrames = 0;
}
-void SpeakerQuinn300::proc15() {
+void SpeakerJocko3200::proc15() {
int v = _fieldF6;
+ Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3) {
- _object2 = &R2_GLOBALS._player;
- } else {
- Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_quinn;
- }
-
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -360,54 +318,20 @@ void SpeakerQuinn300::proc15() {
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- } else if (v == 100) {
- _numFrames = 0;
- ((SceneItem *)_action)->_sceneRegionId = 0;
-
- _object1.setStrip(_object1._strip - 1);
- _object1.setFrame(_object1.getFrameCount());
- _object1.animate(ANIM_MODE_6, this);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
-
- switch (_object2->_visage) {
- case 10:
- _object1.setup((v - 1) / 4 + 4010, ((v - ((v - 1) / 4 * 4) - 1) % 8) * 2 + 1, 1);
- break;
- case 302:
- _object1.setup(308, (v - 1) % 8 + 1, 1);
- break;
- case 308:
- _object1.setup(308, 5, 1);
- break;
- }
-
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-/*--------------------------------------------------------------------------*/
-
-SpeakerTeal300::SpeakerTeal300(): VisualSpeaker() {
- _speakerName = "TEAL";
- _color1 = 22;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerTeal300::proc15() {
+void SpeakerJocko3220::proc15() {
int v = _fieldF6;
+ Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_teal;
+ _object2 = &scene->_actor2;
_object2->hide();
-
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -419,34 +343,18 @@ void SpeakerTeal300::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(303, 1, 1);
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSoldier300::SpeakerSoldier300(): VisualSpeaker() {
- _speakerName = "SOLDIER";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerSoldier300::proc15() {
+void SpeakerJocko3230::proc15() {
int v = _fieldF6;
+ Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_teal;
+ _object2 = &scene->_actor2;
_object2->hide();
-
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -458,28 +366,18 @@ void SpeakerSoldier300::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(303, 3, 1);
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-/*--------------------------------------------------------------------------*/
+//----------------------------------------------------------------------------
+// Classes related to MIRANDA
+//----------------------------------------------------------------------------
-SpeakerQuinn2350::SpeakerQuinn2350(): VisualSpeaker() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerPharisha2350::SpeakerPharisha2350(): VisualSpeaker() {
- _speakerName = "PHARISHA";
- _color1 = 151;
+SpeakerMiranda::SpeakerMiranda(): VisualSpeaker() {
+ _speakerName = "MIRANDA";
+ _color1 = 154;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -489,70 +387,55 @@ SpeakerPharisha2350::SpeakerPharisha2350(): VisualSpeaker() {
_numFrames = 0;
}
-/*--------------------------------------------------------------------------*/
-
-SpeakerQuinn2435::SpeakerQuinn2435() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-void SpeakerQuinn2435::proc15() {
+void SpeakerMiranda300::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 1) {
+ if (R2_GLOBALS._player._characterIndex == 3) {
_object2 = &R2_GLOBALS._player;
} else {
- Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_actor1;
+ Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_miranda;
}
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
+ } else if (v == 100) {
+ _numFrames = 0;
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+
+ _object1.setStrip(_object1._strip - 1);
+ _object1.setFrame(_object1.getFrameCount());
+ _object1.animate(ANIM_MODE_6, this);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object2->setStrip(7);
- _object1.setup(2020, 5, 1);
+
+ if (v == 4) {
+ _object1.setup(304, 5, 1);
+ } else {
+ _object1.setup(305, v * 2 - 1, 1);
+ }
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerSeeker2435::SpeakerSeeker2435() {
- _speakerName = "SEEKER";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerSeeker2435::proc15() {
+void SpeakerMiranda3255::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 2) {
- _object2 = &R2_GLOBALS._player;
- } else {
- Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_actor1;
- }
-
+ _object2 = &R2_GLOBALS._player;
_object2->hide();
_object1.postInit();
+ _object1._effect = _object2->_effect;
+ _object1._shade = _object2->_shade;
_object1.setPosition(_object2->_position);
}
@@ -560,230 +443,211 @@ void SpeakerSeeker2435::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object2->setStrip(7);
- _object1.setup(4099, 1, 1);
+ _object1.setup(3257, 5, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerPharisha2435::SpeakerPharisha2435() {
- _speakerName = "PHARISHA";
- _color1 = 151;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerMiranda3375::proc15() {
+ Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerPharisha2435::proc15() {
int v = _fieldF6;
- Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ if (R2_GLOBALS._player._characterIndex == 3)
+ _object2 = &R2_GLOBALS._player;
+ else
+ _object2 = &scene->_actor2;
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (scene->_actor1._position.y != 163)
+ R2_GLOBALS._player.setStrip(8);
+ else
+ R2_GLOBALS._player.setStrip(2);
+
+ R2_GLOBALS._player.disableControl();
+
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
+
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4098, 5, 1);
+ _object1.setup(4051, 5, 1);
_object1.animate(ANIM_MODE_5, this);
+ break;
+ default:
+ signal();
+ break;
}
}
-/*--------------------------------------------------------------------------*/
+void SpeakerMiranda3385::proc15() {
+ Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
-SpeakerQuinn2450::SpeakerQuinn2450() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-void SpeakerQuinn2450::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 1) {
+ if (R2_GLOBALS._player._characterIndex == 3)
_object2 = &R2_GLOBALS._player;
- } else {
- Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_actor1;
- }
+ else
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (R2_GLOBALS._sceneManager._previousScene == 3375)
+ R2_GLOBALS._player.setStrip(4);
+ else
+ R2_GLOBALS._player.setStrip(3);
+
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
+ R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
+
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- if (R2_GLOBALS.getFlag(61))
- _object1.setup(2020, 3, 1);
- else
- _object1.setup(2020, 1, 1);
+ _object1.setup(4051, 5, 1);
_object1.animate(ANIM_MODE_5, this);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerSeeker2450::SpeakerSeeker2450() {
- _speakerName = "SEEKER";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerMiranda3400::proc15() {
+ Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerSeeker2450::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 2) {
+ if (R2_GLOBALS._player._characterIndex == 3)
_object2 = &R2_GLOBALS._player;
- } else {
- Scene2450 *scene = (Scene2450 *)R2_GLOBALS._sceneManager._scene;
- _object2 = &scene->_actor1;
- }
+ else
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+ R2_GLOBALS._player.disableControl();
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4099, 3, 1);
- _object1.animate(ANIM_MODE_5, this);
+ _object1.setup(4051, 5, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4050, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerCaretaker2450::SpeakerCaretaker2450() {
- _speakerName = "CARETAKER";
- _color1 = 43;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQuinn2500::SpeakerQuinn2500() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerSeeker2500::SpeakerSeeker2500() {
- _speakerName = "SEEKER";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerMiranda2500::SpeakerMiranda2500() {
- // Not in uppercase in the original
- _speakerName = "Miranda";
- _color1 = 154;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerWebbster2500::SpeakerWebbster2500() {
- // Not in uppercase in the original
- _speakerName = "Webbster";
- _color1 = 27;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerQuinn2700::SpeakerQuinn2700() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerMiranda3700::proc15() {
+ Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerQuinn2700::proc15() {
int v = _fieldF6;
if (!_object2) {
- _object2 = &R2_GLOBALS._player;
+ _object2 = &scene->_actor3;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ R2_GLOBALS._player.disableControl();
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- if (v == 0) {
+ _object1.setPosition(_object2->_position);
+
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- switch (_object2->_visage) {
- case 19:
- _object1.setup(4022, 5, 1);
- break;
- case 2701:
- _object1.setup(4022, 1, 1);
- break;
- default:
- break;
- }
- _object1.animate(ANIM_MODE_5, this);
+ scene->_actor1.setup(10, 6, 1);
+ scene->_actor2.setup(20, 5, 1);
+ _object2->setup(30, 1, 1);
+ scene->_actor4.setup(40, 1, 1);
+ _object1.setup(4050, 5, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ scene->_actor3.setup(30, 8, 1);
+ _object1.setup(4052, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 3:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ scene->_actor2.setup(20, 1, 1);
+ scene->_actor3.setup(30, 1, 1);
+ _object1.setup(4051, 7, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerNej2700::SpeakerNej2700() {
+//----------------------------------------------------------------------------
+// Classes related to NEJ
+//----------------------------------------------------------------------------
+
+SpeakerNej::SpeakerNej() {
_speakerName = "NEJ";
_color1 = 171;
_color2 = 0;
@@ -830,23 +694,12 @@ void SpeakerNej2700::proc15() {
}
}
-SpeakerQuinn2750::SpeakerQuinn2750() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerQuinn2750::proc15() {
+void SpeakerNej2750::proc15() {
int v = _fieldF6;
+ Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &R2_GLOBALS._player;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -860,8 +713,8 @@ void SpeakerQuinn2750::proc15() {
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
switch (_object2->_visage) {
- case 19:
- _object1.setup(4022, 5, 1);
+ case 2705:
+ _object1.setup(4022, 7, 1);
break;
case 2752:
_object1.setup(2752, 1, 1);
@@ -873,24 +726,12 @@ void SpeakerQuinn2750::proc15() {
}
}
-SpeakerNej2750::SpeakerNej2750() {
- _speakerName = "NEJ";
- _color1 = 171;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerNej2750::proc15() {
+void SpeakerNej2800::proc15() {
int v = _fieldF6;
Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -903,23 +744,20 @@ void SpeakerNej2750::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- switch (_object2->_visage) {
- case 2705:
- _object1.setup(4022, 7, 1);
- break;
- case 2752:
- _object1.setup(2752, 1, 1);
- break;
- default:
- break;
- }
+ _object1.setup(4023, 3, 1);
+ if (_object2->_visage == 2801)
+ _object1.setPosition(Common::Point(R2_GLOBALS._player._position.x - 12, R2_GLOBALS._player._position.y));
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerQuinn2800::SpeakerQuinn2800() {
- _speakerName = "QUINN";
- _color1 = 60;
+//----------------------------------------------------------------------------
+// Classes related to PHARISHA
+//----------------------------------------------------------------------------
+
+SpeakerPharisha::SpeakerPharisha(): VisualSpeaker() {
+ _speakerName = "PHARISHA";
+ _color1 = 151;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -929,48 +767,33 @@ SpeakerQuinn2800::SpeakerQuinn2800() {
_numFrames = 0;
}
-void SpeakerQuinn2800::proc15() {
+void SpeakerPharisha2435::proc15() {
int v = _fieldF6;
+ Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &R2_GLOBALS._player;
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- switch (_object2->_visage) {
- case 16:
- _object1.setZoom(75);
- _object1.setup(4023, 5, 1);
- break;
- case 19:
- _object1.setup(4023, 1, 1);
- break;
- case 3110:
- _object1.setZoom(75);
- if (_object2->_strip == 1)
- _object1.setup(4061 , 1, 1);
- else
- _object1.setup(4061 , 3, 1);
- break;
- default:
- break;
- }
+ _object1.setup(4098, 5, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerNej2800::SpeakerNej2800() {
- _speakerName = "NEJ";
- _color1 = 171;
+//----------------------------------------------------------------------------
+// Classes related to PRIVATE
+//----------------------------------------------------------------------------
+
+SpeakerPrivate3210::SpeakerPrivate3210() {
+ _speakerName = "Private";
+ _color1 = 45;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -980,9 +803,9 @@ SpeakerNej2800::SpeakerNej2800() {
_numFrames = 0;
}
-void SpeakerNej2800::proc15() {
+void SpeakerPrivate3210::proc15() {
int v = _fieldF6;
- Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene;
+ Scene3210 *scene = (Scene3210 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
_object2 = &scene->_actor2;
@@ -998,16 +821,18 @@ void SpeakerNej2800::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4023, 3, 1);
- if (_object2->_visage == 2801)
- _object1.setPosition(Common::Point(R2_GLOBALS._player._position.x - 12, R2_GLOBALS._player._position.y));
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerGuard2800::SpeakerGuard2800() {
- _speakerName = "GUARD";
- _color1 = 5;
+//----------------------------------------------------------------------------
+// Classes related to QUINN
+//----------------------------------------------------------------------------
+
+SpeakerQuinn::SpeakerQuinn(): VisualSpeaker() {
+ _speakerName = "QUINN";
+ _color1 = 60;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -1017,12 +842,17 @@ SpeakerGuard2800::SpeakerGuard2800() {
_numFrames = 0;
}
-void SpeakerGuard2800::proc15() {
+void SpeakerQuinn300::proc15() {
int v = _fieldF6;
- Scene2750 *scene = (Scene2750 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ if (R2_GLOBALS._player._characterIndex == 3) {
+ _object2 = &R2_GLOBALS._player;
+ } else {
+ Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_quinn;
+ }
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1033,114 +863,91 @@ void SpeakerGuard2800::proc15() {
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
+ } else if (v == 100) {
+ _numFrames = 0;
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+
+ _object1.setStrip(_object1._strip - 1);
+ _object1.setFrame(_object1.getFrameCount());
+ _object1.animate(ANIM_MODE_6, this);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setZoom(75);
- _object1.setup(4060, 3, 1);
+
+ switch (_object2->_visage) {
+ case 10:
+ _object1.setup((v - 1) / 4 + 4010, ((v - ((v - 1) / 4 * 4) - 1) % 8) * 2 + 1, 1);
+ break;
+ case 302:
+ _object1.setup(308, (v - 1) % 8 + 1, 1);
+ break;
+ case 308:
+ _object1.setup(308, 5, 1);
+ break;
+ }
+
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerGuard3100::SpeakerGuard3100() {
- _speakerName = "GUARD";
- _color1 = 5;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-SpeakerRocko3200::SpeakerRocko3200() {
- _speakerName = "Rocko";
- _color1 = 5;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerRocko3200::proc15() {
+void SpeakerQuinn2435::proc15() {
int v = _fieldF6;
- Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ if (R2_GLOBALS._player._characterIndex == 1) {
+ _object2 = &R2_GLOBALS._player;
+ } else {
+ Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_actor1;
+ }
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object2->setStrip(7);
+ _object1.setup(2020, 5, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerJocko3200::SpeakerJocko3200() {
- _speakerName = "Jocko";
- _color1 = 45;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerJocko3200::proc15() {
+void SpeakerQuinn2450::proc15() {
int v = _fieldF6;
- Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ if (R2_GLOBALS._player._characterIndex == 1) {
+ _object2 = &R2_GLOBALS._player;
+ } else {
+ Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_actor1;
+ }
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ if (R2_GLOBALS.getFlag(61))
+ _object1.setup(2020, 3, 1);
+ else
+ _object1.setup(2020, 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerSocko3200::SpeakerSocko3200() {
- _speakerName = "Socko";
- _color1 = 10;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerSocko3200::proc15() {
+void SpeakerQuinn2700::proc15() {
int v = _fieldF6;
- Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor3;
+ _object2 = &R2_GLOBALS._player;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1153,29 +960,25 @@ void SpeakerSocko3200::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ switch (_object2->_visage) {
+ case 19:
+ _object1.setup(4022, 5, 1);
+ break;
+ case 2701:
+ _object1.setup(4022, 1, 1);
+ break;
+ default:
+ break;
+ }
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerCaptain3210::SpeakerCaptain3210() {
- _speakerName = "Captain";
- _color1 = 5;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerCaptain3210::proc15() {
+void SpeakerQuinn2750::proc15() {
int v = _fieldF6;
- Scene3210 *scene = (Scene3210 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ _object2 = &R2_GLOBALS._player;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1188,29 +991,25 @@ void SpeakerCaptain3210::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ switch (_object2->_visage) {
+ case 19:
+ _object1.setup(4022, 5, 1);
+ break;
+ case 2752:
+ _object1.setup(2752, 1, 1);
+ break;
+ default:
+ break;
+ }
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerPrivate3210::SpeakerPrivate3210() {
- _speakerName = "Private";
- _color1 = 45;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerPrivate3210::proc15() {
+void SpeakerQuinn2800::proc15() {
int v = _fieldF6;
- Scene3210 *scene = (Scene3210 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ _object2 = &R2_GLOBALS._player;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1223,189 +1022,283 @@ void SpeakerPrivate3210::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ switch (_object2->_visage) {
+ case 16:
+ _object1.setZoom(75);
+ _object1.setup(4023, 5, 1);
+ break;
+ case 19:
+ _object1.setup(4023, 1, 1);
+ break;
+ case 3110:
+ _object1.setZoom(75);
+ if (_object2->_strip == 1)
+ _object1.setup(4061 , 1, 1);
+ else
+ _object1.setup(4061 , 3, 1);
+ break;
+ default:
+ break;
+ }
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerRocko3220::SpeakerRocko3220() {
- _speakerName = "Rocko";
- _color1 = 5;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerQuinn3255::proc15() {
+ Scene3255 *scene = (Scene3255 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerRocko3220::proc15() {
int v = _fieldF6;
- Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ _object2 = &scene->_actor4;
_object2->hide();
_object1.postInit();
+ _object1._effect = _object2->_effect;
+ _object1._shade = _object2->_shade;
_object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.setup(3257, 3, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerJocko3220::SpeakerJocko3220() {
- _speakerName = "Jocko";
- _color1 = 45;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerQuinn3375::proc15() {
+ Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerJocko3220::proc15() {
int v = _fieldF6;
- Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ if (R2_GLOBALS._player._characterIndex == 1)
+ _object2 = &R2_GLOBALS._player;
+ else if (R2_GLOBALS._player._characterIndex == 2)
+ _object2 = &scene->_actor1;
+ else
+ _object2 = &scene->_actor2;
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (scene->_actor1._position.y != 163)
+ R2_GLOBALS._player.setStrip(8);
+ else
+ R2_GLOBALS._player.setStrip(2);
- if (_object2->_mover)
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
+ R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
_object2->addMover(NULL);
}
+
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.setup(4010, 5, 1);
_object1.animate(ANIM_MODE_5, this);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerRocko3230::SpeakerRocko3230() {
- _speakerName = "Rocko";
- _color1 = 5;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerQuinn3385::proc15() {
+ Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerRocko3230::proc15() {
int v = _fieldF6;
- Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ if (R2_GLOBALS._player._characterIndex == 1)
+ _object2 = &R2_GLOBALS._player;
+ else if (R2_GLOBALS._player._characterIndex == 2)
+ _object2 = &scene->_actor1;
+ else
+ _object2 = &scene->_actor2;
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (R2_GLOBALS._sceneManager._previousScene == 3375)
+ R2_GLOBALS._player.setStrip(4);
+ else
+ R2_GLOBALS._player.setStrip(3);
- if (_object2->_mover)
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
+ R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
_object2->addMover(NULL);
}
+
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4111, (_object2->_strip * 2) - 1, 1);
+ if (R2_GLOBALS._player._characterIndex == 2)
+ _object1.setup(4010, 3, 1);
+ else
+ _object1.setup(4010, 5, 1);
+
_object1.animate(ANIM_MODE_5, this);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerJocko3230::SpeakerJocko3230() {
- _speakerName = "Jocko";
- _color1 = 45;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
+void SpeakerQuinn3400::proc15() {
+ Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
-void SpeakerJocko3230::proc15() {
int v = _fieldF6;
- Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ if (R2_GLOBALS._player._characterIndex == 1)
+ _object2 = &R2_GLOBALS._player;
+ else if (R2_GLOBALS._player._characterIndex == 2)
+ _object2 = &scene->_actor1;
+ else
+ _object2 = &scene->_actor2;
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+ R2_GLOBALS._player.disableControl();
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- if (v == 0) {
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
- _object1.animate(ANIM_MODE_5, this);
+ _object1.setup(4010, 5, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4010, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 3:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4012, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerTeal3240::SpeakerTeal3240() {
- _speakerName = "Teal";
- _color1 = 22;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
+void SpeakerQuinn3700::setText(const Common::String &msg) {
+ Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+
+ switch (_fieldF6) {
+ case 2:
+ scene->_actor3.setup(30, 1, 1);
+ R2_GLOBALS._sound2.play(44);
+ break;
+ case 3:
+ scene->_actor3.setup(30, 1, 1);
+ break;
+ default:
+ scene->_actor3.setup(30, 7, 1);
+ break;
+ }
+ VisualSpeaker::setText(msg);
}
-void SpeakerTeal3240::proc15() {
+void SpeakerQuinn3700::proc15() {
+ Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+
int v = _fieldF6;
- Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
_object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ R2_GLOBALS._player.disableControl();
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- if (v == 0) {
+ _object1.setPosition(_object2->_position);
+
+ switch (v) {
+ case 0:
_object1.animate(ANIM_MODE_2, NULL);
- } else {
+ break;
+ case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4070, (_object2->_strip * 2) - 1, 1);
- _object1.animate(ANIM_MODE_5, this);
+ R2_GLOBALS._sound2.stop();
+ scene->_actor1.setup(10, 4, 1);
+ scene->_actor3.setup(30, 7, 1);
+ _object1.setup(3701, 1, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ scene->_actor2.setup(20, 1, 1);
+ scene->_actor3.setup(30, 1, 1);
+ _object1.setup(3701, 2, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 3:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ scene->_actor1.setup(10, 2, 1);
+ scene->_actor3.setup(30, 1, 1);
+ _object1.setup(4011, 1, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ default:
+ signal();
+ break;
}
}
-SpeakerWebbster3240::SpeakerWebbster3240() {
- _speakerName = "Webbster";
- _color1 = 10;
+//----------------------------------------------------------------------------
+// Classes related to QUINNL
+//----------------------------------------------------------------------------
+
+SpeakerQuinnL::SpeakerQuinnL(): VisualSpeaker() {
+ _speakerName = "QUINNL";
+ _color1 = 35;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -1413,30 +1306,12 @@ SpeakerWebbster3240::SpeakerWebbster3240() {
_object2 = NULL;
_displayMode = 1;
_numFrames = 0;
+ _fontNumber = 10;
}
-void SpeakerWebbster3240::proc15() {
- int v = _fieldF6;
- Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
-
- if (!_object2) {
- _object2 = &scene->_actor2;
- _object2->hide();
- _object1.postInit();
- _object1.setPosition(_object2->_position);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
- }
-
- if (v == 0) {
- _object1.animate(ANIM_MODE_2, NULL);
- } else {
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 5, 1);
- _object1.animate(ANIM_MODE_5, this);
- }
-}
+//----------------------------------------------------------------------------
+// Classes related to RALF
+//----------------------------------------------------------------------------
SpeakerRalf3245::SpeakerRalf3245() {
_speakerName = "Ralf";
@@ -1486,9 +1361,13 @@ void SpeakerRalf3245::proc15() {
}
}
-SpeakerTomko3245::SpeakerTomko3245() {
- _speakerName = "Tomko";
- _color1 = 10;
+//----------------------------------------------------------------------------
+// Classes related to ROCKO
+//----------------------------------------------------------------------------
+
+SpeakerRocko::SpeakerRocko() {
+ _speakerName = "Rocko";
+ _color1 = 5;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -1498,12 +1377,12 @@ SpeakerTomko3245::SpeakerTomko3245() {
_numFrames = 0;
}
-void SpeakerTomko3245::proc15() {
+void SpeakerRocko3200::proc15() {
int v = _fieldF6;
- Scene3245 *scene = (Scene3245 *)R2_GLOBALS._sceneManager._scene;
+ Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor2;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1516,95 +1395,64 @@ void SpeakerTomko3245::proc15() {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- switch (_object2->_visage) {
- case 3100:
- _object1.setup(4105, (_object2->_strip * 2) - 1, 1);
- break;
- case 3101:
- _object1.setup(4108, (_object2->_strip * 2) - 1, 1);
- break;
- case 3102:
- _object1.setup(4109, (_object2->_strip * 2) - 1, 1);
- break;
- default:
- break;
- }
-
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerQuinn3255::SpeakerQuinn3255() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerQuinn3255::proc15() {
- Scene3255 *scene = (Scene3255 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerRocko3220::proc15() {
int v = _fieldF6;
+ Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor4;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
- _object1._effect = _object2->_effect;
- _object1._shade = _object2->_shade;
_object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(3257, 3, 1);
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerMiranda3255::SpeakerMiranda3255() {
- _speakerName = "MIRANDA";
- _color1 = 154;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerMiranda3255::proc15() {
+void SpeakerRocko3230::proc15() {
int v = _fieldF6;
+ Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &R2_GLOBALS._player;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
- _object1._effect = _object2->_effect;
- _object1._shade = _object2->_shade;
_object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
}
if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
} else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(3257, 5, 1);
+ _object1.setup(4111, (_object2->_strip * 2) - 1, 1);
_object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerQuinn3375::SpeakerQuinn3375() {
- _speakerName = "QUINN";
- _color1 = 60;
+//----------------------------------------------------------------------------
+// Classes related to SEEKER
+//----------------------------------------------------------------------------
+
+SpeakerSeeker::SpeakerSeeker(): VisualSpeaker() {
+ _speakerName = "SEEKER";
+ _color1 = 35;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -1614,199 +1462,104 @@ SpeakerQuinn3375::SpeakerQuinn3375() {
_numFrames = 0;
}
-void SpeakerQuinn3375::proc15() {
- Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerSeeker300::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 1)
+ if (R2_GLOBALS._player._characterIndex == 3) {
_object2 = &R2_GLOBALS._player;
- else if (R2_GLOBALS._player._characterIndex == 2)
- _object2 = &scene->_actor1;
- else
- _object2 = &scene->_actor2;
+ } else {
+ Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_seeker;
+ }
_object2->hide();
_object1.postInit();
+ _object1.fixPriority(140);
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
-
- if (scene->_actor1._position.y != 163)
- R2_GLOBALS._player.setStrip(8);
- else
- R2_GLOBALS._player.setStrip(2);
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._player.disableControl(CURSOR_TALK);
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
-
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
-
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
+ } else if (v == 100) {
+ _numFrames = 0;
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4010, 5, 1);
+
+ _object1.setStrip(_object1._strip - 1);
+ _object1.setFrame(_object1.getFrameCount());
+ _object1.animate(ANIM_MODE_6, this);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(306, v * 2 - 1, 1);
_object1.animate(ANIM_MODE_5, this);
- break;
- default:
- signal();
- break;
}
}
-SpeakerSeeker3375::SpeakerSeeker3375() {
- _speakerName = "SEEKER";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerSeeker3375::proc15() {
- Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerSeeker2435::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 2)
+ if (R2_GLOBALS._player._characterIndex == 2) {
_object2 = &R2_GLOBALS._player;
- else
+ } else {
+ Scene2435 *scene = (Scene2435 *)R2_GLOBALS._sceneManager._scene;
_object2 = &scene->_actor1;
+ }
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
-
- if (scene->_actor1._position.y != 163)
- R2_GLOBALS._player.setStrip(8);
- else
- R2_GLOBALS._player.setStrip(2);
-
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._player.disableControl(CURSOR_TALK);
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
-
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4031, 1, 1);
+ _object2->setStrip(7);
+ _object1.setup(4099, 1, 1);
_object1.animate(ANIM_MODE_5, this);
- break;
- default:
- signal();
- break;
}
}
-SpeakerMiranda3375::SpeakerMiranda3375() {
- _speakerName = "MIRANDA";
- _color1 = 154;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerMiranda3375::proc15() {
- Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerSeeker2450::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3)
+ if (R2_GLOBALS._player._characterIndex == 2) {
_object2 = &R2_GLOBALS._player;
- else
- _object2 = &scene->_actor2;
+ } else {
+ Scene2450 *scene = (Scene2450 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_actor1;
+ }
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
-
- if (scene->_actor1._position.y != 163)
- R2_GLOBALS._player.setStrip(8);
- else
- R2_GLOBALS._player.setStrip(2);
-
- R2_GLOBALS._player.disableControl();
-
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
-
- if (_object2->_mover)
- _object2->addMover(NULL);
}
-
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4051, 5, 1);
+ _object1.setup(4099, 3, 1);
_object1.animate(ANIM_MODE_5, this);
- break;
- default:
- signal();
- break;
}
}
-SpeakerWebbster3375::SpeakerWebbster3375() {
- _speakerName = "WEBBSTER";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerWebbster3375::proc15() {
+void SpeakerSeeker3375::proc15() {
Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
if (!_object2) {
- _object2 = &scene->_actor3;
+ if (R2_GLOBALS._player._characterIndex == 2)
+ _object2 = &R2_GLOBALS._player;
+ else
+ _object2 = &scene->_actor1;
+
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
@@ -1822,7 +1575,7 @@ void SpeakerWebbster3375::proc15() {
if (R2_GLOBALS._player._mover)
R2_GLOBALS._player.addMover(NULL);
- R2_GLOBALS._player.disableControl();
+ R2_GLOBALS._player.disableControl(CURSOR_TALK);
R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
if (_object2->_mover)
@@ -1836,7 +1589,7 @@ void SpeakerWebbster3375::proc15() {
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 5, 1);
+ _object1.setup(4031, 1, 1);
_object1.animate(ANIM_MODE_5, this);
break;
default:
@@ -1845,29 +1598,16 @@ void SpeakerWebbster3375::proc15() {
}
}
-SpeakerQuinn3385::SpeakerQuinn3385() {
- _speakerName = "QUINN";
- _color1 = 60;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-void SpeakerQuinn3385::proc15() {
+void SpeakerSeeker3385::proc15() {
Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 1)
+ if (R2_GLOBALS._player._characterIndex == 2)
_object2 = &R2_GLOBALS._player;
- else if (R2_GLOBALS._player._characterIndex == 2)
- _object2 = &scene->_actor1;
else
- _object2 = &scene->_actor2;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
@@ -1898,11 +1638,7 @@ void SpeakerQuinn3385::proc15() {
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- if (R2_GLOBALS._player._characterIndex == 2)
- _object1.setup(4010, 3, 1);
- else
- _object1.setup(4010, 5, 1);
-
+ _object1.setup(4031, 3, 1);
_object1.animate(ANIM_MODE_5, this);
break;
default:
@@ -1911,20 +1647,8 @@ void SpeakerQuinn3385::proc15() {
}
}
-SpeakerSeeker3385::SpeakerSeeker3385() {
- _speakerName = "SEEKER";
- _color1 = 35;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerSeeker3385::proc15() {
- Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerSeeker3400::proc15() {
+ Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
@@ -1940,22 +1664,12 @@ void SpeakerSeeker3385::proc15() {
_object1._numFrames = 7;
_object1._effect = 1;
_object1.changeZoom(-1);
-
- if (R2_GLOBALS._sceneManager._previousScene == 3375)
- R2_GLOBALS._player.setStrip(4);
- else
- R2_GLOBALS._player.setStrip(3);
-
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._player.disableControl();
R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
if (_object2->_mover)
_object2->addMover(NULL);
}
-
switch (v) {
case 0:
@@ -1963,8 +1677,28 @@ void SpeakerSeeker3385::proc15() {
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4031, 1, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
_object1.setup(4031, 3, 1);
- _object1.animate(ANIM_MODE_5, this);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 3:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4030, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 4:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4031, 7, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 5:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4033, 1, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
break;
default:
signal();
@@ -1972,51 +1706,37 @@ void SpeakerSeeker3385::proc15() {
}
}
-SpeakerMiranda3385::SpeakerMiranda3385() {
- _speakerName = "MIRANDA";
- _color1 = 154;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
+void SpeakerSeeker3700::setText(const Common::String &msg) {
+ Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+
+ if (_fieldF6 == 1) {
+ R2_GLOBALS._sound2.play(44);
+ scene->_actor3.setup(30, 8, 1);
+ } else {
+ scene->_actor3.setup(30, 2, 1);
+ }
+ VisualSpeaker::setText(msg);
}
-void SpeakerMiranda3385::proc15() {
- Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerSeeker3700::proc15() {
+ Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3)
- _object2 = &R2_GLOBALS._player;
- else
- _object2 = &scene->_actor2;
-
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
_object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
-
- if (R2_GLOBALS._sceneManager._previousScene == 3375)
- R2_GLOBALS._player.setStrip(4);
- else
- R2_GLOBALS._player.setStrip(3);
-
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._player.disableControl();
R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
if (_object2->_mover)
_object2->addMover(NULL);
}
-
+
+ _object1.setPosition(_object2->_position);
switch (v) {
case 0:
@@ -2024,8 +1744,20 @@ void SpeakerMiranda3385::proc15() {
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4051, 5, 1);
- _object1.animate(ANIM_MODE_5, this);
+ R2_GLOBALS._sound2.stop();
+ scene->_actor1.setup(10, 8, 1);
+ scene->_actor2.setup(20, 7, 1);
+ scene->_actor3.setup(30, 8, 1);
+ _object1.setup(3701, 3, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
+ break;
+ case 2:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ scene->_actor1.setup(10, 2, 1);
+ scene->_actor2.setup(20, 1, 1);
+ scene->_actor3.setup(30, 1, 1);
+ _object1.setup(4031, 1, 1);
+ _object1.animate(ANIM_MODE_5, NULL);
break;
default:
signal();
@@ -2033,9 +1765,13 @@ void SpeakerMiranda3385::proc15() {
}
}
-SpeakerWebbster3385::SpeakerWebbster3385() {
- _speakerName = "WEBBSTER";
- _color1 = 60;
+//----------------------------------------------------------------------------
+// Classes related to SEEKERL
+//----------------------------------------------------------------------------
+
+SpeakerSeekerL::SpeakerSeekerL(): VisualSpeaker() {
+ _speakerName = "SEEKERL";
+ _color1 = 35;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2043,55 +1779,16 @@ SpeakerWebbster3385::SpeakerWebbster3385() {
_object2 = NULL;
_displayMode = 1;
_numFrames = 0;
+ _fontNumber = 10;
}
-void SpeakerWebbster3385::proc15() {
- Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
-
- int v = _fieldF6;
-
- if (!_object2) {
- _object2 = &scene->_actor3;
- _object2->hide();
- _object1.postInit();
- _object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
-
- if (R2_GLOBALS._sceneManager._previousScene == 3375)
- R2_GLOBALS._player.setStrip(4);
- else
- R2_GLOBALS._player.setStrip(3);
-
- if (R2_GLOBALS._player._mover)
- R2_GLOBALS._player.addMover(NULL);
-
- R2_GLOBALS._player.disableControl(CURSOR_TALK);
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+//----------------------------------------------------------------------------
+// Classes related to SOCKO
+//----------------------------------------------------------------------------
- if (_object2->_mover)
- _object2->addMover(NULL);
- }
-
- switch (v) {
- case 0:
- _object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 5, 1);
- _object1.animate(ANIM_MODE_5, this);
- break;
- default:
- signal();
- break;
- }
-}
-
-SpeakerQuinn3400::SpeakerQuinn3400() {
- _speakerName = "QUINN";
- _color1 = 60;
+SpeakerSocko3200::SpeakerSocko3200() {
+ _speakerName = "Socko";
+ _color1 = 10;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2100,58 +1797,37 @@ SpeakerQuinn3400::SpeakerQuinn3400() {
_displayMode = 1;
_numFrames = 0;
}
-void SpeakerQuinn3400::proc15() {
- Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerSocko3200::proc15() {
int v = _fieldF6;
+ Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 1)
- _object2 = &R2_GLOBALS._player;
- else if (R2_GLOBALS._player._characterIndex == 2)
- _object2 = &scene->_actor1;
- else
- _object2 = &scene->_actor2;
-
+ _object2 = &scene->_actor3;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
- R2_GLOBALS._player.disableControl();
- if (_object2->_mover)
+
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4010, 5, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4010, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 3:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4012, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- default:
- signal();
- break;
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerSeeker3400::SpeakerSeeker3400() {
- _speakerName = "SEEKER";
- _color1 = 35;
+//----------------------------------------------------------------------------
+// Classes related to SOLDIER
+//----------------------------------------------------------------------------
+
+SpeakerSoldier300::SpeakerSoldier300(): VisualSpeaker() {
+ _speakerName = "SOLDIER";
+ _color1 = 60;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2161,68 +1837,37 @@ SpeakerSeeker3400::SpeakerSeeker3400() {
_numFrames = 0;
}
-void SpeakerSeeker3400::proc15() {
- Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerSoldier300::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 2)
- _object2 = &R2_GLOBALS._player;
- else
- _object2 = &scene->_actor1;
-
+ Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_teal;
_object2->hide();
+
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
- R2_GLOBALS._player.disableControl();
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4031, 1, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4031, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 3:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4030, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 4:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4031, 7, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 5:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4033, 1, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- default:
- signal();
- break;
+ _object1.setup(303, 3, 1);
+ _object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerMiranda3400::SpeakerMiranda3400() {
- _speakerName = "MIRANDA";
- _color1 = 154;
+//----------------------------------------------------------------------------
+// Classes related to TEAL
+//----------------------------------------------------------------------------
+
+SpeakerTeal::SpeakerTeal(): VisualSpeaker() {
+ _speakerName = "TEAL";
+ _color1 = 22;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2232,119 +1877,53 @@ SpeakerMiranda3400::SpeakerMiranda3400() {
_numFrames = 0;
}
-void SpeakerMiranda3400::proc15() {
- Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerTeal300::proc15() {
int v = _fieldF6;
if (!_object2) {
- if (R2_GLOBALS._player._characterIndex == 3)
- _object2 = &R2_GLOBALS._player;
- else
- _object2 = &scene->_actor2;
-
+ Scene300 *scene = (Scene300 *)R2_GLOBALS._sceneManager._scene;
+ _object2 = &scene->_teal;
_object2->hide();
+
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
- R2_GLOBALS._player.disableControl();
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4051, 5, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4050, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- default:
- signal();
- break;
+ _object1.setup(303, 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerWebbster3400::SpeakerWebbster3400() {
- _speakerName = "WEBBSTER";
- _color1 = 27;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
-void SpeakerWebbster3400::proc15() {
- Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerTeal3240::proc15() {
int v = _fieldF6;
+ Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor3;
+ _object2 = &scene->_actor1;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- _object1._effect = 1;
- _object1.changeZoom(-1);
- R2_GLOBALS._player.disableControl();
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 5, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 7, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 3:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- _object1.setup(4110, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- default:
- signal();
- break;
+ _object1.setup(4070, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerTeal3400::SpeakerTeal3400() {
- _speakerName = "TEAL";
- _color1 = 22;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
-}
-
void SpeakerTeal3400::proc15() {
Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
@@ -2402,9 +1981,13 @@ void SpeakerTeal3400::proc15() {
}
}
-SpeakerQuinn3700::SpeakerQuinn3700() {
- _speakerName = "QUINN";
- _color1 = 60;
+//----------------------------------------------------------------------------
+// Classes related to TOMKO
+//----------------------------------------------------------------------------
+
+SpeakerTomko3245::SpeakerTomko3245() {
+ _speakerName = "Tomko";
+ _color1 = 10;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2414,79 +1997,49 @@ SpeakerQuinn3700::SpeakerQuinn3700() {
_numFrames = 0;
}
-void SpeakerQuinn3700::setText(const Common::String &msg) {
- Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
-
- switch (_fieldF6) {
- case 2:
- scene->_actor3.setup(30, 1, 1);
- R2_GLOBALS._sound2.play(44);
- break;
- case 3:
- scene->_actor3.setup(30, 1, 1);
- break;
- default:
- scene->_actor3.setup(30, 7, 1);
- break;
- }
- VisualSpeaker::setText(msg);
-}
-
-void SpeakerQuinn3700::proc15() {
- Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
-
+void SpeakerTomko3245::proc15() {
int v = _fieldF6;
+ Scene3245 *scene = (Scene3245 *)R2_GLOBALS._sceneManager._scene;
if (!_object2) {
- _object2 = &scene->_actor1;
+ _object2 = &scene->_actor2;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
- _object1._numFrames = 7;
- R2_GLOBALS._player.disableControl();
- R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
- if (_object2->_mover)
+ if (_object2->_mover)
_object2->addMover(NULL);
}
- _object1.setPosition(_object2->_position);
-
- switch (v) {
- case 0:
+ if (v == 0) {
_object1.animate(ANIM_MODE_2, NULL);
- break;
- case 1:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- R2_GLOBALS._sound2.stop();
- scene->_actor1.setup(10, 4, 1);
- scene->_actor3.setup(30, 7, 1);
- _object1.setup(3701, 1, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor2.setup(20, 1, 1);
- scene->_actor3.setup(30, 1, 1);
- _object1.setup(3701, 2, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 3:
+ } else {
((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor1.setup(10, 2, 1);
- scene->_actor3.setup(30, 1, 1);
- _object1.setup(4011, 1, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- default:
- signal();
- break;
+ switch (_object2->_visage) {
+ case 3100:
+ _object1.setup(4105, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3101:
+ _object1.setup(4108, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3102:
+ _object1.setup(4109, (_object2->_strip * 2) - 1, 1);
+ break;
+ default:
+ break;
+ }
+
+ _object1.animate(ANIM_MODE_5, this);
}
}
-SpeakerSeeker3700::SpeakerSeeker3700() {
- _speakerName = "SEEKER";
- _color1 = 35;
+//----------------------------------------------------------------------------
+// Classes related to WEBBSTER
+//----------------------------------------------------------------------------
+
+SpeakerWebbster::SpeakerWebbster(int colour) {
+ _speakerName = "WEBBSTER";
+ _color1 = colour;
_color2 = 0;
_fieldF6 = 0;
_textWidth = 300;
@@ -2496,29 +2049,51 @@ SpeakerSeeker3700::SpeakerSeeker3700() {
_numFrames = 0;
}
-void SpeakerSeeker3700::setText(const Common::String &msg) {
- Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerWebbster3240::proc15() {
+ int v = _fieldF6;
+ Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
- if (_fieldF6 == 1) {
- R2_GLOBALS._sound2.play(44);
- scene->_actor3.setup(30, 8, 1);
+ if (!_object2) {
+ _object2 = &scene->_actor2;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
} else {
- scene->_actor3.setup(30, 2, 1);
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4110, 5, 1);
+ _object1.animate(ANIM_MODE_5, this);
}
- VisualSpeaker::setText(msg);
}
-void SpeakerSeeker3700::proc15() {
- Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerWebbster3375::proc15() {
+ Scene3375 *scene = (Scene3375 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
if (!_object2) {
- _object2 = &scene->_actor2;
+ _object2 = &scene->_actor3;
_object2->hide();
_object1.postInit();
_object1.setPosition(_object2->_position);
_object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (scene->_actor1._position.y != 163)
+ R2_GLOBALS._player.setStrip(8);
+ else
+ R2_GLOBALS._player.setStrip(2);
+
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
R2_GLOBALS._player.disableControl();
R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
@@ -2526,28 +2101,14 @@ void SpeakerSeeker3700::proc15() {
_object2->addMover(NULL);
}
- _object1.setPosition(_object2->_position);
-
switch (v) {
case 0:
_object1.animate(ANIM_MODE_2, NULL);
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- R2_GLOBALS._sound2.stop();
- scene->_actor1.setup(10, 8, 1);
- scene->_actor2.setup(20, 7, 1);
- scene->_actor3.setup(30, 8, 1);
- _object1.setup(3701, 3, 1);
- _object1.animate(ANIM_MODE_5, NULL);
- break;
- case 2:
- ((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor1.setup(10, 2, 1);
- scene->_actor2.setup(20, 1, 1);
- scene->_actor3.setup(30, 1, 1);
- _object1.setup(4031, 1, 1);
- _object1.animate(ANIM_MODE_5, NULL);
+ _object1.setup(4110, 5, 1);
+ _object1.animate(ANIM_MODE_5, this);
break;
default:
signal();
@@ -2555,20 +2116,52 @@ void SpeakerSeeker3700::proc15() {
}
}
-SpeakerMiranda3700::SpeakerMiranda3700() {
- _speakerName = "MIRANDA";
- _color1 = 154;
- _color2 = 0;
- _fieldF6 = 0;
- _textWidth = 300;
- _hideObjects = false;
- _object2 = NULL;
- _displayMode = 1;
- _numFrames = 0;
+void SpeakerWebbster3385::proc15() {
+ Scene3385 *scene = (Scene3385 *)R2_GLOBALS._sceneManager._scene;
+
+ int v = _fieldF6;
+
+ if (!_object2) {
+ _object2 = &scene->_actor3;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+ _object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
+
+ if (R2_GLOBALS._sceneManager._previousScene == 3375)
+ R2_GLOBALS._player.setStrip(4);
+ else
+ R2_GLOBALS._player.setStrip(3);
+
+ if (R2_GLOBALS._player._mover)
+ R2_GLOBALS._player.addMover(NULL);
+
+ R2_GLOBALS._player.disableControl(CURSOR_TALK);
+ R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ switch (v) {
+ case 0:
+ _object1.animate(ANIM_MODE_2, NULL);
+ break;
+ case 1:
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4110, 5, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ break;
+ default:
+ signal();
+ break;
+ }
}
-void SpeakerMiranda3700::proc15() {
- Scene3700 *scene = (Scene3700 *)R2_GLOBALS._sceneManager._scene;
+void SpeakerWebbster3400::proc15() {
+ Scene3400 *scene = (Scene3400 *)R2_GLOBALS._sceneManager._scene;
int v = _fieldF6;
@@ -2578,6 +2171,8 @@ void SpeakerMiranda3700::proc15() {
_object1.postInit();
_object1.setPosition(_object2->_position);
_object1._numFrames = 7;
+ _object1._effect = 1;
+ _object1.changeZoom(-1);
R2_GLOBALS._player.disableControl();
R2_GLOBALS._events.setCursor(CURSOR_CROSSHAIRS);
@@ -2585,32 +2180,23 @@ void SpeakerMiranda3700::proc15() {
_object2->addMover(NULL);
}
- _object1.setPosition(_object2->_position);
-
switch (v) {
case 0:
_object1.animate(ANIM_MODE_2, NULL);
break;
case 1:
((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor1.setup(10, 6, 1);
- scene->_actor2.setup(20, 5, 1);
- _object2->setup(30, 1, 1);
- scene->_actor4.setup(40, 1, 1);
- _object1.setup(4050, 5, 1);
+ _object1.setup(4110, 5, 1);
_object1.animate(ANIM_MODE_5, NULL);
break;
case 2:
((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor3.setup(30, 8, 1);
- _object1.setup(4052, 3, 1);
+ _object1.setup(4110, 7, 1);
_object1.animate(ANIM_MODE_5, NULL);
break;
case 3:
((SceneItem *)_action)->_sceneRegionId = 0;
- scene->_actor2.setup(20, 1, 1);
- scene->_actor3.setup(30, 1, 1);
- _object1.setup(4051, 7, 1);
+ _object1.setup(4110, 3, 1);
_object1.animate(ANIM_MODE_5, NULL);
break;
default:
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index c3de6a68a8..3020b19431 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -63,461 +63,442 @@ public:
void setDelay(int delay);
};
-class SpeakerMiranda300 : public VisualSpeaker {
+// Classes related to Captain
+
+class SpeakerCaptain3210 : public VisualSpeaker {
public:
- SpeakerMiranda300();
+ SpeakerCaptain3210();
- virtual Common::String getClassName() { return "SpeakerMiranda300"; }
+ virtual Common::String getClassName() { return "SpeakerCaptain3210"; }
virtual void proc15();
};
-class SpeakerSeeker300 : public VisualSpeaker {
+// Classes related to Caretaker
+
+class SpeakerCaretaker2450 : public VisualSpeaker {
public:
- SpeakerSeeker300();
+ SpeakerCaretaker2450();
- virtual Common::String getClassName() { return "SpeakerSeeker300"; }
- virtual void proc15();
+ virtual Common::String getClassName() { return "SpeakerCaretaker2450"; }
};
-class SpeakerSeekerL : public VisualSpeaker {
-public:
- SpeakerSeekerL();
+// Classes related to Guard
- virtual Common::String getClassName() { return "SpeakerSeekerL"; }
+class SpeakerGuard : public VisualSpeaker {
+public:
+ SpeakerGuard();
+ virtual Common::String getClassName() { return "SpeakerGuard"; }
};
-class SpeakerQuinnL : public VisualSpeaker {
+class SpeakerGuard2800 : public SpeakerGuard {
public:
- SpeakerQuinnL();
-
- virtual Common::String getClassName() { return "SpeakerQuinnL"; }
+ virtual Common::String getClassName() { return "SpeakerGuard2800"; }
+ virtual void proc15();
};
-class SpeakerQuinn300 : public VisualSpeaker {
+// Classes related to Jocko
+
+class SpeakerJocko : public VisualSpeaker {
public:
- SpeakerQuinn300();
+ SpeakerJocko();
+ virtual Common::String getClassName() { return "SpeakerJocko"; }
+};
- virtual Common::String getClassName() { return "SpeakerQuinn300"; }
+class SpeakerJocko3200 : public SpeakerJocko {
+public:
+ virtual Common::String getClassName() { return "SpeakerJocko3200"; }
virtual void proc15();
};
-class SpeakerTeal300 : public VisualSpeaker {
+class SpeakerJocko3220 : public SpeakerJocko {
public:
- SpeakerTeal300();
-
- virtual Common::String getClassName() { return "SpeakerTeal300"; }
+ virtual Common::String getClassName() { return "SpeakerJocko3220"; }
virtual void proc15();
};
-class SpeakerSoldier300 : public VisualSpeaker {
+class SpeakerJocko3230 : public SpeakerJocko {
public:
- SpeakerSoldier300();
-
- virtual Common::String getClassName() { return "SpeakerSoldier300"; }
+ virtual Common::String getClassName() { return "SpeakerJocko3230"; }
virtual void proc15();
};
-class SpeakerQuinn2350 : public VisualSpeaker {
-public:
- SpeakerQuinn2350();
+// Classes related to Miranda
- virtual Common::String getClassName() { return "SpeakerQuinn2350"; }
+class SpeakerMiranda : public VisualSpeaker {
+public:
+ SpeakerMiranda();
+ virtual Common::String getClassName() { return "SpeakerMiranda"; }
};
-class SpeakerPharisha2350 : public VisualSpeaker {
+class SpeakerMiranda300 : public SpeakerMiranda {
public:
- SpeakerPharisha2350();
-
- virtual Common::String getClassName() { return "SpeakerPharisha2350"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda300"; }
+ virtual void proc15();
};
-class SpeakerQuinn2435 : public VisualSpeaker {
+class SpeakerMiranda3255 : public SpeakerMiranda {
public:
- SpeakerQuinn2435();
-
- virtual Common::String getClassName() { return "SpeakerQuinn2435"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda3255"; }
virtual void proc15();
};
-class SpeakerSeeker2435 : public VisualSpeaker {
+class SpeakerMiranda3375 : public SpeakerMiranda {
public:
- SpeakerSeeker2435();
-
- virtual Common::String getClassName() { return "SpeakerSeeker2435"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda3375"; }
virtual void proc15();
};
-class SpeakerPharisha2435 : public VisualSpeaker {
+class SpeakerMiranda3385 : public SpeakerMiranda {
public:
- SpeakerPharisha2435();
-
- virtual Common::String getClassName() { return "SpeakerPharisha2435"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda3385"; }
virtual void proc15();
};
-class SpeakerQuinn2450 : public VisualSpeaker {
+class SpeakerMiranda3400 : public SpeakerMiranda {
public:
- SpeakerQuinn2450();
-
- virtual Common::String getClassName() { return "SpeakerQuinn2450"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda3400"; }
virtual void proc15();
};
-class SpeakerSeeker2450 : public VisualSpeaker {
+class SpeakerMiranda3700 : public SpeakerMiranda {
public:
- SpeakerSeeker2450();
-
- virtual Common::String getClassName() { return "SpeakerSeeker2450"; }
+ virtual Common::String getClassName() { return "SpeakerMiranda3700"; }
virtual void proc15();
};
-class SpeakerCaretaker2450 : public VisualSpeaker {
-public:
- SpeakerCaretaker2450();
+// Classes related to Nej
- virtual Common::String getClassName() { return "SpeakerCaretaker2450"; }
+class SpeakerNej : public VisualSpeaker {
+public:
+ SpeakerNej();
+ virtual Common::String getClassName() { return "SpeakerNej"; }
};
-class SpeakerQuinn2500 : public VisualSpeaker {
+class SpeakerNej2700 : public SpeakerNej {
public:
- SpeakerQuinn2500();
-
- virtual Common::String getClassName() { return "SpeakerQuinn2500"; }
+ virtual Common::String getClassName() { return "SpeakerNej2700"; }
+ virtual void proc15();
};
-class SpeakerSeeker2500 : public VisualSpeaker {
+class SpeakerNej2750 : public SpeakerNej {
public:
- SpeakerSeeker2500();
-
- virtual Common::String getClassName() { return "SpeakerSeeker2500"; }
+ virtual Common::String getClassName() { return "SpeakerNej2750"; }
+ virtual void proc15();
};
-class SpeakerMiranda2500 : public VisualSpeaker {
+class SpeakerNej2800 : public SpeakerNej {
public:
- SpeakerMiranda2500();
-
- virtual Common::String getClassName() { return "SpeakerMiranda2500"; }
+ virtual Common::String getClassName() { return "SpeakerNej2800"; }
+ virtual void proc15();
};
-class SpeakerWebbster2500 : public VisualSpeaker {
+// Classes related to Pharisha
+
+class SpeakerPharisha : public VisualSpeaker {
public:
- SpeakerWebbster2500();
+ SpeakerPharisha();
- virtual Common::String getClassName() { return "SpeakerWebbster2500"; }
+ virtual Common::String getClassName() { return "SpeakerPharisha"; }
};
-class SpeakerQuinn2700 : public VisualSpeaker {
+class SpeakerPharisha2435 : public SpeakerPharisha {
public:
- SpeakerQuinn2700();
-
- virtual Common::String getClassName() { return "SpeakerQuinn2700"; }
+ virtual Common::String getClassName() { return "SpeakerPharisha2435"; }
virtual void proc15();
};
-class SpeakerNej2700 : public VisualSpeaker {
+// Classes related to Private
+
+class SpeakerPrivate3210 : public VisualSpeaker {
public:
- SpeakerNej2700();
+ SpeakerPrivate3210();
- virtual Common::String getClassName() { return "SpeakerNej2700"; }
+ virtual Common::String getClassName() { return "SpeakerPrivate3210"; }
virtual void proc15();
};
-class SpeakerQuinn2750 : public VisualSpeaker {
-public:
- SpeakerQuinn2750();
+// Classes related to Quinn
- virtual Common::String getClassName() { return "SpeakerQuinn2750"; }
- virtual void proc15();
+class SpeakerQuinn : public VisualSpeaker {
+public:
+ SpeakerQuinn();
+ virtual Common::String getClassName() { return "SpeakerQuinn"; }
};
-class SpeakerNej2750 : public VisualSpeaker {
+class SpeakerQuinn300 : public SpeakerQuinn {
public:
- SpeakerNej2750();
-
- virtual Common::String getClassName() { return "SpeakerNej2750"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn300"; }
virtual void proc15();
};
-class SpeakerQuinn2800 : public VisualSpeaker {
+class SpeakerQuinn2435 : public SpeakerQuinn {
public:
- SpeakerQuinn2800();
-
- virtual Common::String getClassName() { return "SpeakerQuinn2800"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn2435"; }
virtual void proc15();
};
-class SpeakerNej2800 : public VisualSpeaker {
+class SpeakerQuinn2450 : public SpeakerQuinn {
public:
- SpeakerNej2800();
-
- virtual Common::String getClassName() { return "SpeakerNej2800"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn2450"; }
virtual void proc15();
};
-class SpeakerGuard2800 : public VisualSpeaker {
+class SpeakerQuinn2700 : public SpeakerQuinn {
public:
- SpeakerGuard2800();
-
- virtual Common::String getClassName() { return "SpeakerGuard2800"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn2700"; }
virtual void proc15();
};
-class SpeakerGuard3100 : public VisualSpeaker {
+class SpeakerQuinn2750 : public SpeakerQuinn {
public:
- SpeakerGuard3100();
-
- virtual Common::String getClassName() { return "SpeakerGuard3100"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn2750"; }
+ virtual void proc15();
};
-class SpeakerRocko3200 : public VisualSpeaker {
+class SpeakerQuinn2800 : public SpeakerQuinn {
public:
- SpeakerRocko3200();
-
- virtual Common::String getClassName() { return "SpeakerRocko3200"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn2800"; }
virtual void proc15();
};
-class SpeakerJocko3200 : public VisualSpeaker {
+class SpeakerQuinn3255 : public SpeakerQuinn {
public:
- SpeakerJocko3200();
-
- virtual Common::String getClassName() { return "SpeakerJocko3200"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn3255"; }
virtual void proc15();
};
-class SpeakerSocko3200 : public VisualSpeaker {
+class SpeakerQuinn3375 : public SpeakerQuinn {
public:
- SpeakerSocko3200();
-
- virtual Common::String getClassName() { return "SpeakerSocko3200"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn3375"; }
virtual void proc15();
};
-class SpeakerCaptain3210 : public VisualSpeaker {
+class SpeakerQuinn3385 : public SpeakerQuinn {
public:
- SpeakerCaptain3210();
-
- virtual Common::String getClassName() { return "SpeakerCaptain3210"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn3385"; }
virtual void proc15();
};
-class SpeakerPrivate3210 : public VisualSpeaker {
+class SpeakerQuinn3400 : public SpeakerQuinn {
public:
- SpeakerPrivate3210();
-
- virtual Common::String getClassName() { return "SpeakerPrivate3210"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn3400"; }
virtual void proc15();
};
-class SpeakerRocko3220 : public VisualSpeaker {
+class SpeakerQuinn3700 : public SpeakerQuinn {
public:
- SpeakerRocko3220();
-
- virtual Common::String getClassName() { return "SpeakerRocko3220"; }
+ virtual Common::String getClassName() { return "SpeakerQuinn3700"; }
+ virtual void setText(const Common::String &msg);
virtual void proc15();
};
-class SpeakerJocko3220 : public VisualSpeaker {
+// Classes related to QuinnL
+
+class SpeakerQuinnL : public VisualSpeaker {
public:
- SpeakerJocko3220();
+ SpeakerQuinnL();
- virtual Common::String getClassName() { return "SpeakerJocko3220"; }
- virtual void proc15();
+ virtual Common::String getClassName() { return "SpeakerQuinnL"; }
};
-class SpeakerRocko3230 : public VisualSpeaker {
+// Classes related to Ralf
+
+class SpeakerRalf3245 : public VisualSpeaker {
public:
- SpeakerRocko3230();
+ SpeakerRalf3245();
- virtual Common::String getClassName() { return "SpeakerRocko3230"; }
+ virtual Common::String getClassName() { return "SpeakerRalf3245"; }
virtual void proc15();
};
-class SpeakerJocko3230 : public VisualSpeaker {
-public:
- SpeakerJocko3230();
+// Classes related to Rocko
- virtual Common::String getClassName() { return "SpeakerJocko3230"; }
- virtual void proc15();
+class SpeakerRocko : public VisualSpeaker {
+public:
+ SpeakerRocko();
+ virtual Common::String getClassName() { return "SpeakerRocko"; }
};
-class SpeakerTeal3240 : public VisualSpeaker {
+class SpeakerRocko3200 : public SpeakerRocko {
public:
- SpeakerTeal3240();
-
- virtual Common::String getClassName() { return "SpeakerTeal3240"; }
+ virtual Common::String getClassName() { return "SpeakerRocko3200"; }
virtual void proc15();
};
-class SpeakerWebbster3240 : public VisualSpeaker {
+class SpeakerRocko3220 : public SpeakerRocko {
public:
- SpeakerWebbster3240();
-
- virtual Common::String getClassName() { return "SpeakerWebbster3240"; }
+ virtual Common::String getClassName() { return "SpeakerRocko3220"; }
virtual void proc15();
};
-class SpeakerRalf3245 : public VisualSpeaker {
+class SpeakerRocko3230 : public SpeakerRocko {
public:
- SpeakerRalf3245();
-
- virtual Common::String getClassName() { return "SpeakerRalf3245"; }
+ virtual Common::String getClassName() { return "SpeakerRocko3230"; }
virtual void proc15();
};
-class SpeakerTomko3245 : public VisualSpeaker {
-public:
- SpeakerTomko3245();
+// Classes related to Seeker
- virtual Common::String getClassName() { return "SpeakerTomko3245"; }
- virtual void proc15();
+class SpeakerSeeker : public VisualSpeaker {
+public:
+ SpeakerSeeker();
+ virtual Common::String getClassName() { return "SpeakerSeeker"; }
};
-class SpeakerQuinn3255 : public VisualSpeaker {
+class SpeakerSeeker300 : public SpeakerSeeker {
public:
- SpeakerQuinn3255();
-
- virtual Common::String getClassName() { return "SpeakerQuinn3255"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker300"; }
virtual void proc15();
};
-class SpeakerMiranda3255 : public VisualSpeaker {
+class SpeakerSeeker2435 : public SpeakerSeeker {
public:
- SpeakerMiranda3255();
-
- virtual Common::String getClassName() { return "SpeakerMiranda3255"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker2435"; }
virtual void proc15();
};
-class SpeakerQuinn3375 : public VisualSpeaker {
+class SpeakerSeeker2450 : public SpeakerSeeker {
public:
- SpeakerQuinn3375();
-
- virtual Common::String getClassName() { return "SpeakerQuinn3375"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker2450"; }
virtual void proc15();
};
-class SpeakerSeeker3375 : public VisualSpeaker {
+class SpeakerSeeker3375 : public SpeakerSeeker {
public:
- SpeakerSeeker3375();
-
virtual Common::String getClassName() { return "SpeakerSeeker3375"; }
virtual void proc15();
};
-class SpeakerMiranda3375 : public VisualSpeaker {
+class SpeakerSeeker3385 : public SpeakerSeeker {
public:
- SpeakerMiranda3375();
-
- virtual Common::String getClassName() { return "SpeakerMiranda3375"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker3385"; }
virtual void proc15();
};
-class SpeakerWebbster3375 : public VisualSpeaker {
+class SpeakerSeeker3400 : public SpeakerSeeker {
public:
- SpeakerWebbster3375();
-
- virtual Common::String getClassName() { return "SpeakerWebbster3375"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker3400"; }
virtual void proc15();
};
-class SpeakerQuinn3385 : public VisualSpeaker {
+class SpeakerSeeker3700 : public SpeakerSeeker {
public:
- SpeakerQuinn3385();
-
- virtual Common::String getClassName() { return "SpeakerQuinn3385"; }
+ virtual Common::String getClassName() { return "SpeakerSeeker3700"; }
+ virtual void setText(const Common::String &msg);
virtual void proc15();
};
-class SpeakerSeeker3385 : public VisualSpeaker {
+// Classes related to SeekerL
+
+class SpeakerSeekerL : public VisualSpeaker {
public:
- SpeakerSeeker3385();
+ SpeakerSeekerL();
- virtual Common::String getClassName() { return "SpeakerSeeker3385"; }
- virtual void proc15();
+ virtual Common::String getClassName() { return "SpeakerSeekerL"; }
};
-class SpeakerMiranda3385 : public VisualSpeaker {
+// Classes related to Socko
+
+class SpeakerSocko3200 : public VisualSpeaker {
public:
- SpeakerMiranda3385();
+ SpeakerSocko3200();
- virtual Common::String getClassName() { return "SpeakerMiranda3385"; }
+ virtual Common::String getClassName() { return "SpeakerSocko3200"; }
virtual void proc15();
};
-class SpeakerWebbster3385 : public VisualSpeaker {
+// Classes related to Soldier
+
+class SpeakerSoldier300 : public VisualSpeaker {
public:
- SpeakerWebbster3385();
+ SpeakerSoldier300();
- virtual Common::String getClassName() { return "SpeakerWebbster3385"; }
+ virtual Common::String getClassName() { return "SpeakerSoldier300"; }
virtual void proc15();
};
-class SpeakerQuinn3400 : public VisualSpeaker {
+// Classes related to Teal
+
+class SpeakerTeal : public VisualSpeaker {
public:
- SpeakerQuinn3400();
+ SpeakerTeal();
+ virtual Common::String getClassName() { return "SpeakerTeal"; }
+};
- virtual Common::String getClassName() { return "SpeakerQuinn3400"; }
+class SpeakerTeal300 : public SpeakerTeal {
+public:
+ virtual Common::String getClassName() { return "SpeakerTeal300"; }
virtual void proc15();
};
-class SpeakerSeeker3400 : public VisualSpeaker {
+class SpeakerTeal3240 : public SpeakerTeal {
public:
- SpeakerSeeker3400();
+ virtual Common::String getClassName() { return "SpeakerTeal3240"; }
+ virtual void proc15();
+};
- virtual Common::String getClassName() { return "SpeakerSeeker3400"; }
+class SpeakerTeal3400 : public SpeakerTeal {
+public:
+ virtual Common::String getClassName() { return "SpeakerTeal3400"; }
virtual void proc15();
};
-class SpeakerMiranda3400 : public VisualSpeaker {
+// Classes related to Tomko
+
+class SpeakerTomko3245 : public VisualSpeaker {
public:
- SpeakerMiranda3400();
+ SpeakerTomko3245();
- virtual Common::String getClassName() { return "SpeakerMiranda3400"; }
+ virtual Common::String getClassName() { return "SpeakerTomko3245"; }
virtual void proc15();
};
-class SpeakerWebbster3400 : public VisualSpeaker {
+// Classes related to Webbster
+
+class SpeakerWebbster : public VisualSpeaker {
public:
- SpeakerWebbster3400();
+ SpeakerWebbster(int colour);
+ virtual Common::String getClassName() { return "SpeakerWebbster"; }
+};
- virtual Common::String getClassName() { return "SpeakerWebbster3400"; }
- virtual void proc15();
+class SpeakerWebbster2500 : public SpeakerWebbster {
+public:
+ SpeakerWebbster2500() : SpeakerWebbster(27) {}
+ virtual Common::String getClassName() { return "SpeakerWebbster2500"; }
};
-class SpeakerTeal3400 : public VisualSpeaker {
+class SpeakerWebbster3240 : public SpeakerWebbster {
public:
- SpeakerTeal3400();
+ SpeakerWebbster3240() : SpeakerWebbster(10) {};
- virtual Common::String getClassName() { return "SpeakerTeal3400"; }
+ virtual Common::String getClassName() { return "SpeakerWebbster3240"; }
virtual void proc15();
};
-class SpeakerQuinn3700 : public VisualSpeaker {
+class SpeakerWebbster3375 : public SpeakerWebbster {
public:
- SpeakerQuinn3700();
+ SpeakerWebbster3375() : SpeakerWebbster(60) {};
- virtual Common::String getClassName() { return "SpeakerQuinn3700"; }
- virtual void setText(const Common::String &msg);
+ virtual Common::String getClassName() { return "SpeakerWebbster3375"; }
virtual void proc15();
};
-class SpeakerSeeker3700 : public VisualSpeaker {
+class SpeakerWebbster3385 : public SpeakerWebbster {
public:
- SpeakerSeeker3700();
+ SpeakerWebbster3385() : SpeakerWebbster(60) {};
- virtual Common::String getClassName() { return "SpeakerSeeker3700"; }
- virtual void setText(const Common::String &msg);
+ virtual Common::String getClassName() { return "SpeakerWebbster3385"; }
virtual void proc15();
};
-class SpeakerMiranda3700 : public VisualSpeaker {
+class SpeakerWebbster3400 : public SpeakerWebbster {
public:
- SpeakerMiranda3700();
+ SpeakerWebbster3400() : SpeakerWebbster(27) {};
- virtual Common::String getClassName() { return "SpeakerMiranda3700"; }
+ virtual Common::String getClassName() { return "SpeakerWebbster3400"; }
virtual void proc15();
};
+
} // End of namespace Ringworld2
} // End of namespace TsAGE