aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-09-08 20:40:23 +1000
committerPaul Gilbert2011-09-08 20:40:23 +1000
commit88e68abd4b0e2b8430395cc0ad87dac45ef974c6 (patch)
tree97caa31ec3b2c99f20c33fb62dc9af4553bb7ab2
parenta2620d6edfb5beef2eb4ae6c9f855f46ece6ae42 (diff)
downloadscummvm-rg350-88e68abd4b0e2b8430395cc0ad87dac45ef974c6.tar.gz
scummvm-rg350-88e68abd4b0e2b8430395cc0ad87dac45ef974c6.tar.bz2
scummvm-rg350-88e68abd4b0e2b8430395cc0ad87dac45ef974c6.zip
TSAGE: Separated speaker classes for both games into separate files
-rw-r--r--engines/tsage/blue_force/blueforce_speakers.cpp291
-rw-r--r--engines/tsage/blue_force/blueforce_speakers.h123
-rw-r--r--engines/tsage/ringworld/ringworld_logic.cpp872
-rw-r--r--engines/tsage/ringworld/ringworld_logic.h296
-rw-r--r--engines/tsage/ringworld/ringworld_scenes1.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes10.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes2.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes3.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes4.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes5.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes6.h1
-rw-r--r--engines/tsage/ringworld/ringworld_scenes8.h1
-rw-r--r--engines/tsage/ringworld/ringworld_speakers.cpp905
-rw-r--r--engines/tsage/ringworld/ringworld_speakers.h337
14 files changed, 1664 insertions, 1168 deletions
diff --git a/engines/tsage/blue_force/blueforce_speakers.cpp b/engines/tsage/blue_force/blueforce_speakers.cpp
new file mode 100644
index 0000000000..95a7372cdd
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_speakers.cpp
@@ -0,0 +1,291 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/blue_force/blueforce_speakers.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/graphics.h"
+#include "tsage/staticres.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+VisualSpeaker::VisualSpeaker(): Speaker() {
+ _textWidth = 312;
+ _color1 = 19;
+ _hideObjects = false;
+ _removeObject1 = false;
+ _removeObject2 = false;
+ _xp = 160;
+ _fontNumber = 4;
+ _color2 = 82;
+ _offsetPos = Common::Point(4, 170);
+ _numFrames = 0;
+}
+
+void VisualSpeaker::remove() {
+ if (_removeObject2)
+ _object2.remove();
+ if (_removeObject1)
+ _object1.remove();
+
+ Speaker::remove();
+}
+
+void VisualSpeaker::synchronize(Serializer &s) {
+ Speaker::synchronize(s);
+
+ s.syncAsByte(_removeObject1);
+ s.syncAsByte(_removeObject2);
+ s.syncAsSint16LE(_xp);
+ s.syncAsSint16LE(_numFrames);
+ s.syncAsSint16LE(_offsetPos.x);
+ s.syncAsSint16LE(_offsetPos.y);
+}
+
+void VisualSpeaker::proc12(Action *action) {
+ Speaker::proc12(action);
+ _textPos = Common::Point(_offsetPos.x + BF_GLOBALS._sceneManager._scene->_sceneBounds.left,
+ _offsetPos.y + BF_GLOBALS._sceneManager._scene->_sceneBounds.top);
+ _numFrames = 0;
+}
+
+void VisualSpeaker::setText(const Common::String &msg) {
+ _objectList.draw();
+ BF_GLOBALS._sceneObjects->draw();
+
+ _sceneText._color1 = _color1;
+ _sceneText._color2 = _color2;
+ _sceneText._color3 = _color3;
+ _sceneText._width = _textWidth;
+ _sceneText._fontNumber = _fontNumber;
+ _sceneText._textMode = _textMode;
+ _sceneText.setup(msg);
+
+ // Get the string bounds
+ GfxFont f;
+ f.setFontNumber(_fontNumber);
+ Rect bounds;
+ f.getStringBounds(msg.c_str(), bounds, _textWidth);
+
+ // Set the position for the text
+ switch (_textMode) {
+ case ALIGN_LEFT:
+ case ALIGN_JUSTIFIED:
+ _sceneText.setPosition(_textPos);
+ break;
+ case ALIGN_CENTER:
+ _sceneText.setPosition(Common::Point(_textPos.x + (_textWidth - bounds.width()) / 2, _textPos.y));
+ break;
+ case ALIGN_RIGHT:
+ _sceneText.setPosition(Common::Point(_textPos.x + _textWidth - bounds.width(), _textPos.y));
+ break;
+ default:
+ break;
+ }
+
+ // Ensure the text is in the foreground
+ _sceneText.fixPriority(256);
+
+ // Count the number of words (by spaces) in the string
+ const char *s = msg.c_str();
+ int spaceCount = 0;
+ while (*s) {
+ if (*s++ == ' ')
+ ++spaceCount;
+ }
+
+ _numFrames = spaceCount * 3 + 2;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerGameText::SpeakerGameText(): VisualSpeaker() {
+ _speakerName = "GAMETEXT";
+ _color1 = 8;
+ _color2 = 19;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSutter::SpeakerSutter() {
+ _speakerName = "SUTTER";
+ _color1 = 20;
+ _color2 = 22;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerSutter::setText(const Common::String &msg) {
+ _removeObject1 = _removeObject2 = true;
+
+ _object1.postInit();
+ _object1.setVisage(329);
+ _object1.setStrip2(2);
+ _object1.fixPriority(254);
+ _object1.changeZoom(100);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 45,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ _object2.postInit();
+ _object2.setVisage(329);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 45,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ VisualSpeaker::setText(msg);
+ _object2.fixCountdown(8, _numFrames);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerDoug::SpeakerDoug(): VisualSpeaker() {
+ _color1 = 32;
+ _speakerName = "DOUG";
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerJakeNoHead::SpeakerJakeNoHead(): VisualSpeaker() {
+ _color1 = 13;
+ _speakerName = "JAKE_NO_HEAD";
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerHarrison::SpeakerHarrison(): VisualSpeaker() {
+ _color1 = 32;
+ _speakerName = "HARRISON";
+}
+
+void SpeakerHarrison::setText(const Common::String &msg) {
+ _removeObject1 = _removeObject2 = true;
+
+ _object1.postInit();
+ _object1.setVisage(325);
+ _object1.setStrip2(7);
+ _object1.fixPriority(254);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 277,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ _object2.postInit();
+ _object2.fixPriority(255);
+ _object2.setVisage(325);
+ _object2.setStrip2(6);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 277,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ VisualSpeaker::setText(msg);
+ _object2.fixCountdown(8, _numFrames);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerJakeJacket::SpeakerJakeJacket(): VisualSpeaker() {
+ _color1 = 13;
+ _color2 = 7;
+ _speakerName = "JAKEJACKET";
+}
+
+void SpeakerJakeJacket::setText(const Common::String &msg) {
+ _removeObject1 = _removeObject2 = true;
+
+ _object1.postInit();
+ _object1.setVisage(1001);
+ _object1.setStrip2(4);
+ _object1.fixPriority(254);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + _xp,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ _object2.postInit();
+ _object2.setVisage(1001);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + _xp,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ VisualSpeaker::setText(msg);
+ _object2.fixCountdown(8, _numFrames);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerJakeUniform::SpeakerJakeUniform(): VisualSpeaker() {
+ _color1 = 13;
+ _color2 = 7;
+ _speakerName = "JAKEUNIFORM";
+}
+
+void SpeakerJakeUniform::setText(const Common::String &msg) {
+ _removeObject1 = _removeObject2 = true;
+
+ _object1.postInit();
+ _object1.setVisage(1001);
+ _object1.setStrip2(3);
+ _object1.fixPriority(254);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 45,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ _object2.postInit();
+ _object2.setVisage(1001);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 45,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ VisualSpeaker::setText(msg);
+ _object2.fixCountdown(8, _numFrames);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerJailer::SpeakerJailer(): VisualSpeaker() {
+ _color1 = 13;
+ _color2 = 7;
+ _speakerName = "JAILER";
+}
+
+void SpeakerJailer::setText(const Common::String &msg) {
+ _removeObject1 = _removeObject2 = true;
+
+ _object1.postInit();
+ _object1.setVisage(395);
+ _object1.setStrip(6);
+ _object1.fixPriority(254);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 40,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ _object2.postInit();
+ _object2.setVisage(395);
+ _object2.setStrip(5);
+ _object2.fixPriority(255);
+ _object1.setPosition(Common::Point(BF_GLOBALS._sceneManager._scene->_sceneBounds.left + 40,
+ BF_GLOBALS._sceneManager._scene->_sceneBounds.top + 166));
+
+ VisualSpeaker::setText(msg);
+ _object2.fixCountdown(8, _numFrames);
+}
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_speakers.h b/engines/tsage/blue_force/blueforce_speakers.h
new file mode 100644
index 0000000000..9db0dd2126
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_speakers.h
@@ -0,0 +1,123 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_BLUEFORCE_SPEAKERS_H
+#define TSAGE_BLUEFORCE_SPEAKERS_H
+
+#include "common/scummsys.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/blue_force/blueforce_logic.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class VisualSpeaker: public Speaker {
+public:
+ NamedObject _object1;
+ CountdownObject _object2;
+ bool _removeObject1, _removeObject2;
+ int _xp;
+ int _numFrames;
+ Common::Point _offsetPos;
+public:
+ VisualSpeaker();
+
+ virtual Common::String getClassName() { return "VisualSpeaker"; }
+ virtual void synchronize(Serializer &s);
+ virtual void remove();
+ virtual void proc12(Action *action);
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerGameText: public VisualSpeaker {
+public:
+ SpeakerGameText();
+
+ virtual Common::String getClassName() { return "SpeakerGameText"; }
+};
+
+class SpeakerSutter: public VisualSpeaker {
+public:
+ SpeakerSutter();
+
+ virtual Common::String getClassName() { return "SpeakerSutter"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerDoug: public VisualSpeaker {
+public:
+ SpeakerDoug();
+
+ virtual Common::String getClassName() { return "SpeakerDoug"; }
+};
+
+class SpeakerJakeNoHead: public VisualSpeaker {
+public:
+ SpeakerJakeNoHead();
+
+ virtual Common::String getClassName() { return "SpeakerJakeNoHead"; }
+};
+
+class SpeakerHarrison: public VisualSpeaker {
+public:
+ SpeakerHarrison();
+
+ virtual Common::String getClassName() { return "SpeakerHarrison"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerJakeJacket: public VisualSpeaker {
+public:
+ SpeakerJakeJacket();
+
+ virtual Common::String getClassName() { return "SpeakerJakeJacket"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerJakeUniform: public VisualSpeaker {
+public:
+ SpeakerJakeUniform();
+
+ virtual Common::String getClassName() { return "SpeakerJakeUniform"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerJailer: public VisualSpeaker {
+public:
+ SpeakerJailer();
+
+ virtual Common::String getClassName() { return "SpeakerJailer"; }
+ virtual void setText(const Common::String &msg);
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/ringworld/ringworld_logic.cpp b/engines/tsage/ringworld/ringworld_logic.cpp
index 72c56973d9..4bd0b0a7f6 100644
--- a/engines/tsage/ringworld/ringworld_logic.cpp
+++ b/engines/tsage/ringworld/ringworld_logic.cpp
@@ -331,878 +331,6 @@ void SceneArea::synchronize(Serializer &s) {
/*--------------------------------------------------------------------------*/
-SpeakerGText::SpeakerGText() {
- _speakerName = "GTEXT";
- _textWidth = 160;
- _textPos = Common::Point(130, 10);
- _color1 = 42;
- _hideObjects = false;
-}
-
-void SpeakerGText::setText(const Common::String &msg) {
- // Set the animation properties
- _sceneObject.postInit();
- _sceneObject.setVisage(9405);
- _sceneObject.setStrip2(3);
- _sceneObject.fixPriority(255);
- _sceneObject.changeZoom(100);
- _sceneObject._frame = 1;
- _sceneObject.setPosition(Common::Point(183, 71));
- _sceneObject.animate(ANIM_MODE_7, 0, NULL);
-
- // Set the text
- Rect textRect;
- _globals->gfxManager()._font.getStringBounds(msg.c_str(), textRect, _textWidth);
- textRect.center(_sceneObject._position.x, _sceneObject._position.y);
- _textPos.x = textRect.left;
- Speaker::setText(msg);
-}
-
-void SpeakerGText::removeText() {
- _sceneObject.remove();
- Speaker::removeText();
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerPOR::SpeakerPOR() {
- _speakerName = "POR";
- _newSceneNumber = 7221;
- _textPos = Common::Point(10, 30);
- _color1 = 41;
-}
-
-void SpeakerPOR::SpeakerAction1::signal(){
- switch (_actionIndex++) {
- case 0:
- setDelay(_globals->_randomSource.getRandomNumber(60) + 60);
- break;
- case 1:
- static_cast<SceneObject *>(_owner)->animate(ANIM_MODE_5, this, NULL);
- break;
- case 2:
- setDelay(_globals->_randomSource.getRandomNumber(10));
- _actionIndex = 0;
- break;
- default:
- break;
- }
-}
-
-void SpeakerPOR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(7223);
- _object1.setStrip2(2);
- _object1.setPosition(Common::Point(191, 166));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(7223);
- _object2.setPosition(Common::Point(159, 86));
- _object2.setAction(&_speakerAction, NULL);
-
- _object3.postInit(&_objectList);
- _object3.setVisage(7223);
- _object3.setStrip(3);
- _object3.setPosition(Common::Point(119, 107));
- _object3.fixPriority(199);
- _object3.setAction(&_action2);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerOR::SpeakerOR() {
- _speakerName = "OR";
- _newSceneNumber = 9430;
- _textPos = Common::Point(8, 36);
- _color1 = 42;
- _textWidth = 136;
-}
-
-void SpeakerOR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(9431);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(202, 147));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(9431);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.setZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(199, 85));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerOText::SpeakerOText() : SpeakerGText() {
- _speakerName = "OTEXT";
- _textWidth = 240;
- _textPos = Common::Point(130, 10);
- _color1 = 42;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQText::SpeakerQText() : ScreenSpeaker() {
- _speakerName = "QTEXT";
- _textPos = Common::Point(160, 40);
- _color1 = 35;
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSText::SpeakerSText() : ScreenSpeaker() {
- _speakerName = "STEXT";
- _color1 = 13;
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerPOText::SpeakerPOText() : ScreenSpeaker() {
- _speakerName = "POTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 41;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerMText::SpeakerMText() {
- _speakerName = "MTEXT";
- _color1 = 22;
- _textWidth = 230;
- _textMode = ALIGN_CENTER;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCText::SpeakerCText() {
- _speakerName = "CTEXT";
- _color1 = 4;
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerEText::SpeakerEText() {
- _speakerName = "ETEXT";
- _textPos = Common::Point(20, 20);
- _color1 = 22;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerGR::SpeakerGR() : AnimatedSpeaker() {
- _speakerName = "GR";
- _newSceneNumber = 9220;
- _textWidth = 136;
- _textPos = Common::Point(168, 36);
- _color1 = 14;
-}
-
-void SpeakerGR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(9221);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(101, 70));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerHText::SpeakerHText() {
- _speakerName = "HTEXT";
- _textPos = Common::Point(160, 40);
- _color1 = 52;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSKText::SpeakerSKText() : ScreenSpeaker() {
- _speakerName = "SKTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 9;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerPText::SpeakerPText() {
- _speakerName = "PTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 5;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCHFText::SpeakerCHFText() {
- _speakerName = "CHFTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 56;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCDRText::SpeakerCDRText() {
- _speakerName = "CDRTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 52;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerFLText::SpeakerFLText() {
- _speakerName = "FLTEXT";
- _textPos = Common::Point(10, 40);
- _color1 = 17;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerBatText::SpeakerBatText() {
- _speakerName = "BATTEXT";
- _textWidth = 240;
- _textMode = ALIGN_CENTER;
- _color1 = 3;
- _hideObjects = false;
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSKL::SpeakerSKL() : AnimatedSpeaker() {
- _speakerName = "SKL";
- _newSceneNumber = 7011;
- _textPos = Common::Point(10, 30);
- _color1 = 9;
-}
-
-void SpeakerSKL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(7013);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(203, 120));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(7013);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(197, 80));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQL::SpeakerQL() : AnimatedSpeaker() {
- _speakerName = "QL";
- _newSceneNumber = 2610;
- _textPos = Common::Point(160, 30);
- _color1 = 35;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerQL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2612);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(128, 146));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2612);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(122, 84));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSR::SpeakerSR() {
- _speakerName = "SR";
- _newSceneNumber = 2811;
- _textPos = Common::Point(10, 30);
- _color1 = 13;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerSR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2813);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(224, 198));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2813);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(203, 96));
- _object2.setAction(&_speakerAction, NULL);
-
- _object3.postInit(&_objectList);
- _object3.setVisage(2813);
- _object3.setStrip(3);
- _object3.setPosition(Common::Point(204, 91));
- _object3.fixPriority(199);
- _object3._numFrames = 3;
- _object3.animate(ANIM_MODE_7, 0, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSL::SpeakerSL() {
- _speakerName = "SL";
- _newSceneNumber = 2810;
- _textPos = Common::Point(140, 30);
- _textWidth = 160;
- _color1 = 13;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerSL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2812);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(95, 198));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2812);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(116, 96));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQR::SpeakerQR() {
- _speakerName = "QR";
- _newSceneNumber = 2611;
- _textPos = Common::Point(10, 30);
- _color1 = 35;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerQR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2613);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(191, 146));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2613);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(197, 84));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerQU::SpeakerQU() {
- _speakerName = "QU";
- _newSceneNumber = 7020;
- _textPos = Common::Point(160, 30);
- _color1 = 35;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerQU::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(7021);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(116, 120));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(7021);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(111, 84));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCR::SpeakerCR() {
- _speakerName = "CR";
- _newSceneNumber = 9010;
- _textPos = Common::Point(20, 40);
- _color1 = 4;
-}
-
-void SpeakerCR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(9011);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.setPosition(Common::Point(219, 168));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(9011);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.setPosition(Common::Point(232, 81));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerMR::SpeakerMR() {
- _speakerName = "MR";
- _newSceneNumber = 2711;
- _textPos = Common::Point(10, 40);
- _color1 = 22;
-}
-
-void SpeakerMR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2713);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(220, 143));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2713);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(215, 99));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerSAL::SpeakerSAL() {
- _speakerName = "SAL";
- _newSceneNumber = 2851;
- _textPos = Common::Point(10, 30);
- _color1 = 13;
- _textMode = ALIGN_CENTER;
-}
-
-void SpeakerSAL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2853);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(185, 200));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2853);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(170, 92));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerML::SpeakerML() {
- _speakerName = "ML";
- _newSceneNumber = 2710;
- _textPos = Common::Point(160, 40);
- _color1 = 22;
-}
-
-void SpeakerML::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(2712);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(99, 143));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(2712);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(105, 99));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCHFL::SpeakerCHFL() {
- _speakerName = "CHFL";
- _newSceneNumber = 4111;
- _textPos = Common::Point(10, 40);
- _color1 = 56;
-}
-
-void SpeakerCHFL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4113);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(205, 116));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4113);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(202, 71));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCHFR::SpeakerCHFR() {
- _speakerName = "CHFR";
- _newSceneNumber = 4110;
- _textPos = Common::Point(160, 40);
- _color1 = 56;
-}
-
-void SpeakerCHFR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4112);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(103, 116));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4112);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(106, 71));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerPL::SpeakerPL() {
- _speakerName = "PL";
- _newSceneNumber = 4060;
- _textPos = Common::Point(160, 40);
- _color1 = 5;
-}
-
-void SpeakerPL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4062);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(107, 117));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4062);
- _object2.setStrip2(1);
- _object2.fixPriority(200);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(105, 62));
- _object2.setAction(&_speakerAction, NULL);
-
- _object3.postInit(&_objectList);
- _object3.setVisage(4062);
- _object3.setStrip2(3);
- _object3.fixPriority(255);
- _object3.changeZoom(100);
- _object3._frame = 1;
- _object3.setPosition(Common::Point(105, 59));
- _object3.setAction(&_speakerAction2, NULL);
-
- Speaker::setText(msg);
-}
-
-void SpeakerPL::removeText() {
- _object3.remove();
- AnimatedSpeaker::removeText();
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerPR::SpeakerPR() {
- _speakerName = "PR";
- _newSceneNumber = 4061;
- _textPos = Common::Point(10, 40);
- _color1 = 5;
-}
-
-void SpeakerPR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4063);
- _object1.setStrip2(1);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(212, 117));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4063);
- _object2.setStrip2(2);
- _object2.fixPriority(200);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(214, 62));
- _object2.setAction(&_speakerAction, NULL);
-
- _object3.postInit(&_objectList);
- _object3.setVisage(4063);
- _object3.setStrip2(3);
- _object3.fixPriority(255);
- _object3.changeZoom(100);
- _object3._frame = 1;
- _object3.setPosition(Common::Point(214, 59));
- _object3.setAction(&_speakerAction2, NULL);
-
- Speaker::setText(msg);
-}
-
-void SpeakerPR::removeText() {
- _object3.remove();
- AnimatedSpeaker::removeText();
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCDR::SpeakerCDR() {
- _speakerName = "CDR";
- _newSceneNumber = 4161;
- _textPos = Common::Point(10, 40);
- _color1 = 52;
-}
-
-void SpeakerCDR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4163);
- _object1.setStrip2(1);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(208, 97));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4163);
- _object2.setStrip2(2);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(200, 57));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerCDL::SpeakerCDL() {
- _speakerName = "CDL";
- _newSceneNumber = 4160;
- _textPos = Common::Point(160, 40);
- _color1 = 52;
-}
-
-void SpeakerCDL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(4162);
- _object1.setStrip2(1);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(112, 97));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(4162);
- _object2.setStrip2(2);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(115, 57));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerFLL::SpeakerFLL() {
- _speakerName = "FLL";
- _newSceneNumber = 5221;
- _textPos = Common::Point(10, 40);
- _color1 = 17;
-}
-
-void SpeakerFLL::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(5223);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(216, 129));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(5223);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(210, 67));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
-SpeakerBatR::SpeakerBatR() {
- _speakerName = "BATR";
- _newSceneNumber = 5360;
- _textPos = Common::Point(140, 40);
- _color1 = 3;
-}
-
-void SpeakerBatR::setText(const Common::String &msg) {
- _object1.postInit(&_objectList);
- _object1.setVisage(5361);
- _object1.setStrip2(2);
- _object1.fixPriority(255);
- _object1.changeZoom(100);
- _object1._frame = 1;
- _object1.setPosition(Common::Point(137, 122));
- _object1.animate(ANIM_MODE_7, 0, NULL);
-
- _object2.postInit(&_objectList);
- _object2.setVisage(5361);
- _object2.setStrip2(1);
- _object2.fixPriority(255);
- _object2.changeZoom(100);
- _object2._frame = 1;
- _object2.setPosition(Common::Point(137, 104));
- _object2.setAction(&_speakerAction, NULL);
-
- Speaker::setText(msg);
-}
-
-/*--------------------------------------------------------------------------*/
-
RingworldInvObjectList::RingworldInvObjectList() :
_stunner(2280, 1, 2, OBJECT_STUNNER, "This is your stunner."),
_scanner(1, 1, 3, OBJECT_SCANNER, "A combination scanner comm unit."),
diff --git a/engines/tsage/ringworld/ringworld_logic.h b/engines/tsage/ringworld/ringworld_logic.h
index 830b28302a..286abd38a1 100644
--- a/engines/tsage/ringworld/ringworld_logic.h
+++ b/engines/tsage/ringworld/ringworld_logic.h
@@ -102,302 +102,6 @@ public:
};
/*--------------------------------------------------------------------------*/
-// Ringworld specific game speakers
-
-class SpeakerGText : public Speaker {
-public:
- SceneObject _sceneObject;
-public:
- SpeakerGText();
-
- virtual Common::String getClassName() { return "SpeakerGText"; }
- virtual void setText(const Common::String &msg);
- virtual void removeText();
-};
-
-class SpeakerPOR : public AnimatedSpeaker {
- class SpeakerAction1 : public SpeakerAction {
- public:
- virtual void signal();
- };
-
-public:
- SceneObject _object3;
- SpeakerAction1 _action2;
-public:
- SpeakerPOR();
- virtual Common::String getClassName() { return "SpeakerPOR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerOR : public AnimatedSpeaker {
-public:
- SpeakerOR();
- virtual Common::String getClassName() { return "SpeakerOR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerOText : public SpeakerGText {
-public:
- SpeakerOText();
-
- virtual Common::String getClassName() { return "SpeakerOText"; }
-};
-
-class SpeakerPOText : public ScreenSpeaker {
-public:
- SpeakerPOText();
-
- virtual Common::String getClassName() { return "SpeakerPOText"; }
-};
-
-class SpeakerSText : public ScreenSpeaker {
-public:
- SpeakerSText();
-
- virtual Common::String getClassName() { return "SpeakerSText"; }
-};
-
-class SpeakerQText : public ScreenSpeaker {
-public:
- SpeakerQText();
-
- virtual Common::String getClassName() { return "SpeakerQText"; }
-};
-
-class SpeakerMText : public ScreenSpeaker {
-public:
- SpeakerMText();
-
- virtual Common::String getClassName() { return "SpeakerMText"; }
-};
-
-class SpeakerCText : public ScreenSpeaker {
-public:
- SpeakerCText();
-
- virtual Common::String getClassName() { return "SpeakerCText"; }
-};
-
-class SpeakerEText : public ScreenSpeaker {
-public:
- SpeakerEText();
-
- virtual Common::String getClassName() { return "SpeakerEText"; }
-};
-
-class SpeakerGR : public AnimatedSpeaker {
-public:
- SpeakerGR();
-
- virtual Common::String getClassName() { return "SpeakerGR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerHText : public ScreenSpeaker {
-public:
- SpeakerHText();
-
- virtual Common::String getClassName() { return "SpeakerHText"; }
-};
-
-class SpeakerPText : public ScreenSpeaker {
-public:
- SpeakerPText();
-
- virtual Common::String getClassName() { return "SpeakerPText"; }
-};
-
-class SpeakerCHFText : public ScreenSpeaker {
-public:
- SpeakerCHFText();
-
- virtual Common::String getClassName() { return "SpeakerCHFText"; }
-};
-
-class SpeakerSKText : public ScreenSpeaker {
-public:
- SpeakerSKText();
-
- virtual Common::String getClassName() { return "SpeakerSKText"; }
-};
-
-class SpeakerCDRText : public ScreenSpeaker {
-public:
- SpeakerCDRText();
-
- virtual Common::String getClassName() { return "SpeakerCDRText"; }
-};
-
-class SpeakerFLText : public ScreenSpeaker {
-public:
- SpeakerFLText();
-
- virtual Common::String getClassName() { return "SpeakerFLText"; }
-};
-
-class SpeakerBatText : public ScreenSpeaker {
-public:
- SpeakerBatText();
-
- virtual Common::String getClassName() { return "SpeakerFLText"; }
-};
-
-class SpeakerQR : public AnimatedSpeaker {
-public:
- SpeakerQR();
-
- virtual Common::String getClassName() { return "SpeakerQR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerQU : public AnimatedSpeaker {
-public:
- SpeakerQU();
-
- virtual Common::String getClassName() { return "SpeakerQU"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerSKL : public AnimatedSpeaker {
-public:
- SpeakerSKL();
-
- virtual Common::String getClassName() { return "SpeakerQL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerQL : public AnimatedSpeaker {
-public:
- SpeakerQL();
-
- virtual Common::String getClassName() { return "SpeakerQL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerSR : public AnimatedSpeaker {
-public:
- SceneObject _object3;
-public:
- SpeakerSR();
-
- virtual Common::String getClassName() { return "SpeakerSR"; }
- void setText(const Common::String &msg);
-};
-
-class SpeakerSL : public AnimatedSpeaker {
-public:
- SpeakerSL();
-
- virtual Common::String getClassName() { return "SpeakerSL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerCR : public AnimatedSpeaker {
-public:
- SpeakerCR();
-
- virtual Common::String getClassName() { return "SpeakerCR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerMR : public AnimatedSpeaker {
-public:
- SpeakerMR();
-
- virtual Common::String getClassName() { return "SpeakerMR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerSAL : public AnimatedSpeaker {
-public:
- SpeakerSAL();
-
- virtual Common::String getClassName() { return "SpeakerSAL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerML : public AnimatedSpeaker {
-public:
- SpeakerML();
-
- virtual Common::String getClassName() { return "SpeakerML"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerCHFL : public AnimatedSpeaker {
-public:
- SpeakerCHFL();
-
- virtual Common::String getClassName() { return "SpeakerCHFL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerCHFR : public AnimatedSpeaker {
-public:
- SpeakerCHFR();
-
- virtual Common::String getClassName() { return "SpeakerCHFR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerPL : public AnimatedSpeaker {
-public:
- SceneObject _object3;
- SpeakerAction _speakerAction2;
-
- SpeakerPL();
-
- virtual Common::String getClassName() { return "SpeakerPL"; }
- virtual void setText(const Common::String &msg);
- virtual void removeText();
-};
-
-class SpeakerPR : public AnimatedSpeaker {
-public:
- SceneObject _object3;
- SpeakerAction _speakerAction2;
-
- SpeakerPR();
-
- virtual Common::String getClassName() { return "SpeakerPR"; }
- virtual void setText(const Common::String &msg);
- virtual void removeText();
-};
-
-class SpeakerCDR : public AnimatedSpeaker {
-public:
- SpeakerCDR();
-
- virtual Common::String getClassName() { return "SpeakerCDR"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerCDL : public AnimatedSpeaker {
-public:
- SpeakerCDL();
-
- virtual Common::String getClassName() { return "SpeakerCDL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerFLL : public AnimatedSpeaker {
-public:
- SpeakerFLL();
-
- virtual Common::String getClassName() { return "SpeakerFLL"; }
- virtual void setText(const Common::String &msg);
-};
-
-class SpeakerBatR : public AnimatedSpeaker {
-public:
- SpeakerBatR();
-
- virtual Common::String getClassName() { return "SpeakerBatR"; }
- virtual void setText(const Common::String &msg);
-};
-
-/*--------------------------------------------------------------------------*/
class RingworldInvObjectList : public InvObjectList {
public:
diff --git a/engines/tsage/ringworld/ringworld_scenes1.h b/engines/tsage/ringworld/ringworld_scenes1.h
index 49ea65eb3a..bb98c89a8c 100644
--- a/engines/tsage/ringworld/ringworld_scenes1.h
+++ b/engines/tsage/ringworld/ringworld_scenes1.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
diff --git a/engines/tsage/ringworld/ringworld_scenes10.h b/engines/tsage/ringworld/ringworld_scenes10.h
index 02c42f3d01..6bca48776b 100644
--- a/engines/tsage/ringworld/ringworld_scenes10.h
+++ b/engines/tsage/ringworld/ringworld_scenes10.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
diff --git a/engines/tsage/ringworld/ringworld_scenes2.h b/engines/tsage/ringworld/ringworld_scenes2.h
index 3502aea15b..382d9d4157 100644
--- a/engines/tsage/ringworld/ringworld_scenes2.h
+++ b/engines/tsage/ringworld/ringworld_scenes2.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
diff --git a/engines/tsage/ringworld/ringworld_scenes3.h b/engines/tsage/ringworld/ringworld_scenes3.h
index 2dbdc27211..682ef44fc6 100644
--- a/engines/tsage/ringworld/ringworld_scenes3.h
+++ b/engines/tsage/ringworld/ringworld_scenes3.h
@@ -27,6 +27,7 @@
#include "tsage/core.h"
#include "tsage/converse.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
namespace TsAGE {
diff --git a/engines/tsage/ringworld/ringworld_scenes4.h b/engines/tsage/ringworld/ringworld_scenes4.h
index af31de84b9..64706805bc 100644
--- a/engines/tsage/ringworld/ringworld_scenes4.h
+++ b/engines/tsage/ringworld/ringworld_scenes4.h
@@ -27,6 +27,7 @@
#include "tsage/core.h"
#include "tsage/converse.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
namespace TsAGE {
diff --git a/engines/tsage/ringworld/ringworld_scenes5.h b/engines/tsage/ringworld/ringworld_scenes5.h
index 6c6b6b6f32..80e67755bd 100644
--- a/engines/tsage/ringworld/ringworld_scenes5.h
+++ b/engines/tsage/ringworld/ringworld_scenes5.h
@@ -27,6 +27,7 @@
#include "tsage/core.h"
#include "tsage/converse.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
namespace TsAGE {
diff --git a/engines/tsage/ringworld/ringworld_scenes6.h b/engines/tsage/ringworld/ringworld_scenes6.h
index 79e604a177..bf353de415 100644
--- a/engines/tsage/ringworld/ringworld_scenes6.h
+++ b/engines/tsage/ringworld/ringworld_scenes6.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
diff --git a/engines/tsage/ringworld/ringworld_scenes8.h b/engines/tsage/ringworld/ringworld_scenes8.h
index 4878db5cc8..84178c36f9 100644
--- a/engines/tsage/ringworld/ringworld_scenes8.h
+++ b/engines/tsage/ringworld/ringworld_scenes8.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "tsage/ringworld/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_speakers.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
diff --git a/engines/tsage/ringworld/ringworld_speakers.cpp b/engines/tsage/ringworld/ringworld_speakers.cpp
new file mode 100644
index 0000000000..c56639a5b2
--- /dev/null
+++ b/engines/tsage/ringworld/ringworld_speakers.cpp
@@ -0,0 +1,905 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/ringworld/ringworld_speakers.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/graphics.h"
+#include "tsage/staticres.h"
+
+namespace TsAGE {
+
+namespace Ringworld {
+
+SpeakerGText::SpeakerGText() {
+ _speakerName = "GTEXT";
+ _textWidth = 160;
+ _textPos = Common::Point(130, 10);
+ _color1 = 42;
+ _hideObjects = false;
+}
+
+void SpeakerGText::setText(const Common::String &msg) {
+ // Set the animation properties
+ _sceneObject.postInit();
+ _sceneObject.setVisage(9405);
+ _sceneObject.setStrip2(3);
+ _sceneObject.fixPriority(255);
+ _sceneObject.changeZoom(100);
+ _sceneObject._frame = 1;
+ _sceneObject.setPosition(Common::Point(183, 71));
+ _sceneObject.animate(ANIM_MODE_7, 0, NULL);
+
+ // Set the text
+ Rect textRect;
+ _globals->gfxManager()._font.getStringBounds(msg.c_str(), textRect, _textWidth);
+ textRect.center(_sceneObject._position.x, _sceneObject._position.y);
+ _textPos.x = textRect.left;
+ Speaker::setText(msg);
+}
+
+void SpeakerGText::removeText() {
+ _sceneObject.remove();
+ Speaker::removeText();
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerPOR::SpeakerPOR() {
+ _speakerName = "POR";
+ _newSceneNumber = 7221;
+ _textPos = Common::Point(10, 30);
+ _color1 = 41;
+}
+
+void SpeakerPOR::SpeakerAction1::signal(){
+ switch (_actionIndex++) {
+ case 0:
+ setDelay(_globals->_randomSource.getRandomNumber(60) + 60);
+ break;
+ case 1:
+ static_cast<SceneObject *>(_owner)->animate(ANIM_MODE_5, this, NULL);
+ break;
+ case 2:
+ setDelay(_globals->_randomSource.getRandomNumber(10));
+ _actionIndex = 0;
+ break;
+ default:
+ break;
+ }
+}
+
+void SpeakerPOR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(7223);
+ _object1.setStrip2(2);
+ _object1.setPosition(Common::Point(191, 166));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(7223);
+ _object2.setPosition(Common::Point(159, 86));
+ _object2.setAction(&_speakerAction, NULL);
+
+ _object3.postInit(&_objectList);
+ _object3.setVisage(7223);
+ _object3.setStrip(3);
+ _object3.setPosition(Common::Point(119, 107));
+ _object3.fixPriority(199);
+ _object3.setAction(&_action2);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerOR::SpeakerOR() {
+ _speakerName = "OR";
+ _newSceneNumber = 9430;
+ _textPos = Common::Point(8, 36);
+ _color1 = 42;
+ _textWidth = 136;
+}
+
+void SpeakerOR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(9431);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(202, 147));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(9431);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.setZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(199, 85));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerOText::SpeakerOText() : SpeakerGText() {
+ _speakerName = "OTEXT";
+ _textWidth = 240;
+ _textPos = Common::Point(130, 10);
+ _color1 = 42;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerQText::SpeakerQText() : ScreenSpeaker() {
+ _speakerName = "QTEXT";
+ _textPos = Common::Point(160, 40);
+ _color1 = 35;
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSText::SpeakerSText() : ScreenSpeaker() {
+ _speakerName = "STEXT";
+ _color1 = 13;
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerPOText::SpeakerPOText() : ScreenSpeaker() {
+ _speakerName = "POTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 41;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerMText::SpeakerMText() {
+ _speakerName = "MTEXT";
+ _color1 = 22;
+ _textWidth = 230;
+ _textMode = ALIGN_CENTER;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCText::SpeakerCText() {
+ _speakerName = "CTEXT";
+ _color1 = 4;
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerEText::SpeakerEText() {
+ _speakerName = "ETEXT";
+ _textPos = Common::Point(20, 20);
+ _color1 = 22;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerGR::SpeakerGR() : AnimatedSpeaker() {
+ _speakerName = "GR";
+ _newSceneNumber = 9220;
+ _textWidth = 136;
+ _textPos = Common::Point(168, 36);
+ _color1 = 14;
+}
+
+void SpeakerGR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(9221);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(101, 70));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerHText::SpeakerHText() {
+ _speakerName = "HTEXT";
+ _textPos = Common::Point(160, 40);
+ _color1 = 52;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSKText::SpeakerSKText() : ScreenSpeaker() {
+ _speakerName = "SKTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 9;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerPText::SpeakerPText() {
+ _speakerName = "PTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 5;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCHFText::SpeakerCHFText() {
+ _speakerName = "CHFTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 56;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCDRText::SpeakerCDRText() {
+ _speakerName = "CDRTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 52;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerFLText::SpeakerFLText() {
+ _speakerName = "FLTEXT";
+ _textPos = Common::Point(10, 40);
+ _color1 = 17;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerBatText::SpeakerBatText() {
+ _speakerName = "BATTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTER;
+ _color1 = 3;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSKL::SpeakerSKL() : AnimatedSpeaker() {
+ _speakerName = "SKL";
+ _newSceneNumber = 7011;
+ _textPos = Common::Point(10, 30);
+ _color1 = 9;
+}
+
+void SpeakerSKL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(7013);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(203, 120));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(7013);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(197, 80));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerQL::SpeakerQL() : AnimatedSpeaker() {
+ _speakerName = "QL";
+ _newSceneNumber = 2610;
+ _textPos = Common::Point(160, 30);
+ _color1 = 35;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerQL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2612);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(128, 146));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2612);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(122, 84));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSR::SpeakerSR() {
+ _speakerName = "SR";
+ _newSceneNumber = 2811;
+ _textPos = Common::Point(10, 30);
+ _color1 = 13;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerSR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2813);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(224, 198));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2813);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(203, 96));
+ _object2.setAction(&_speakerAction, NULL);
+
+ _object3.postInit(&_objectList);
+ _object3.setVisage(2813);
+ _object3.setStrip(3);
+ _object3.setPosition(Common::Point(204, 91));
+ _object3.fixPriority(199);
+ _object3._numFrames = 3;
+ _object3.animate(ANIM_MODE_7, 0, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSL::SpeakerSL() {
+ _speakerName = "SL";
+ _newSceneNumber = 2810;
+ _textPos = Common::Point(140, 30);
+ _textWidth = 160;
+ _color1 = 13;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerSL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2812);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(95, 198));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2812);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(116, 96));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerQR::SpeakerQR() {
+ _speakerName = "QR";
+ _newSceneNumber = 2611;
+ _textPos = Common::Point(10, 30);
+ _color1 = 35;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerQR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2613);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(191, 146));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2613);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(197, 84));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerQU::SpeakerQU() {
+ _speakerName = "QU";
+ _newSceneNumber = 7020;
+ _textPos = Common::Point(160, 30);
+ _color1 = 35;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerQU::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(7021);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(116, 120));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(7021);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(111, 84));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCR::SpeakerCR() {
+ _speakerName = "CR";
+ _newSceneNumber = 9010;
+ _textPos = Common::Point(20, 40);
+ _color1 = 4;
+}
+
+void SpeakerCR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(9011);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.setPosition(Common::Point(219, 168));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(9011);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.setPosition(Common::Point(232, 81));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerMR::SpeakerMR() {
+ _speakerName = "MR";
+ _newSceneNumber = 2711;
+ _textPos = Common::Point(10, 40);
+ _color1 = 22;
+}
+
+void SpeakerMR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2713);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(220, 143));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2713);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(215, 99));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerSAL::SpeakerSAL() {
+ _speakerName = "SAL";
+ _newSceneNumber = 2851;
+ _textPos = Common::Point(10, 30);
+ _color1 = 13;
+ _textMode = ALIGN_CENTER;
+}
+
+void SpeakerSAL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2853);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(185, 200));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2853);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(170, 92));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerML::SpeakerML() {
+ _speakerName = "ML";
+ _newSceneNumber = 2710;
+ _textPos = Common::Point(160, 40);
+ _color1 = 22;
+}
+
+void SpeakerML::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(2712);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(99, 143));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(2712);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(105, 99));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCHFL::SpeakerCHFL() {
+ _speakerName = "CHFL";
+ _newSceneNumber = 4111;
+ _textPos = Common::Point(10, 40);
+ _color1 = 56;
+}
+
+void SpeakerCHFL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4113);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(205, 116));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4113);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(202, 71));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCHFR::SpeakerCHFR() {
+ _speakerName = "CHFR";
+ _newSceneNumber = 4110;
+ _textPos = Common::Point(160, 40);
+ _color1 = 56;
+}
+
+void SpeakerCHFR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4112);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(103, 116));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4112);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(106, 71));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerPL::SpeakerPL() {
+ _speakerName = "PL";
+ _newSceneNumber = 4060;
+ _textPos = Common::Point(160, 40);
+ _color1 = 5;
+}
+
+void SpeakerPL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4062);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(107, 117));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4062);
+ _object2.setStrip2(1);
+ _object2.fixPriority(200);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(105, 62));
+ _object2.setAction(&_speakerAction, NULL);
+
+ _object3.postInit(&_objectList);
+ _object3.setVisage(4062);
+ _object3.setStrip2(3);
+ _object3.fixPriority(255);
+ _object3.changeZoom(100);
+ _object3._frame = 1;
+ _object3.setPosition(Common::Point(105, 59));
+ _object3.setAction(&_speakerAction2, NULL);
+
+ Speaker::setText(msg);
+}
+
+void SpeakerPL::removeText() {
+ _object3.remove();
+ AnimatedSpeaker::removeText();
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerPR::SpeakerPR() {
+ _speakerName = "PR";
+ _newSceneNumber = 4061;
+ _textPos = Common::Point(10, 40);
+ _color1 = 5;
+}
+
+void SpeakerPR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4063);
+ _object1.setStrip2(1);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(212, 117));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4063);
+ _object2.setStrip2(2);
+ _object2.fixPriority(200);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(214, 62));
+ _object2.setAction(&_speakerAction, NULL);
+
+ _object3.postInit(&_objectList);
+ _object3.setVisage(4063);
+ _object3.setStrip2(3);
+ _object3.fixPriority(255);
+ _object3.changeZoom(100);
+ _object3._frame = 1;
+ _object3.setPosition(Common::Point(214, 59));
+ _object3.setAction(&_speakerAction2, NULL);
+
+ Speaker::setText(msg);
+}
+
+void SpeakerPR::removeText() {
+ _object3.remove();
+ AnimatedSpeaker::removeText();
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCDR::SpeakerCDR() {
+ _speakerName = "CDR";
+ _newSceneNumber = 4161;
+ _textPos = Common::Point(10, 40);
+ _color1 = 52;
+}
+
+void SpeakerCDR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4163);
+ _object1.setStrip2(1);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(208, 97));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4163);
+ _object2.setStrip2(2);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(200, 57));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCDL::SpeakerCDL() {
+ _speakerName = "CDL";
+ _newSceneNumber = 4160;
+ _textPos = Common::Point(160, 40);
+ _color1 = 52;
+}
+
+void SpeakerCDL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4162);
+ _object1.setStrip2(1);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(112, 97));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(4162);
+ _object2.setStrip2(2);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(115, 57));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerFLL::SpeakerFLL() {
+ _speakerName = "FLL";
+ _newSceneNumber = 5221;
+ _textPos = Common::Point(10, 40);
+ _color1 = 17;
+}
+
+void SpeakerFLL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(5223);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(216, 129));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(5223);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(210, 67));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerBatR::SpeakerBatR() {
+ _speakerName = "BATR";
+ _newSceneNumber = 5360;
+ _textPos = Common::Point(140, 40);
+ _color1 = 3;
+}
+
+void SpeakerBatR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(5361);
+ _object1.setStrip2(2);
+ _object1.fixPriority(255);
+ _object1.changeZoom(100);
+ _object1._frame = 1;
+ _object1.setPosition(Common::Point(137, 122));
+ _object1.animate(ANIM_MODE_7, 0, NULL);
+
+ _object2.postInit(&_objectList);
+ _object2.setVisage(5361);
+ _object2.setStrip2(1);
+ _object2.fixPriority(255);
+ _object2.changeZoom(100);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(137, 104));
+ _object2.setAction(&_speakerAction, NULL);
+
+ Speaker::setText(msg);
+}
+
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld/ringworld_speakers.h b/engines/tsage/ringworld/ringworld_speakers.h
new file mode 100644
index 0000000000..305984a184
--- /dev/null
+++ b/engines/tsage/ringworld/ringworld_speakers.h
@@ -0,0 +1,337 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_RINGWORLD_SPEAKERS_H
+#define TSAGE_RINGWORLD_SPEAKERS_H
+
+#include "common/scummsys.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/ringworld/ringworld_logic.h"
+
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
+
+class SpeakerGText : public Speaker {
+public:
+ SceneObject _sceneObject;
+public:
+ SpeakerGText();
+
+ virtual Common::String getClassName() { return "SpeakerGText"; }
+ virtual void setText(const Common::String &msg);
+ virtual void removeText();
+};
+
+class SpeakerPOR : public AnimatedSpeaker {
+ class SpeakerAction1 : public SpeakerAction {
+ public:
+ virtual void signal();
+ };
+
+public:
+ SceneObject _object3;
+ SpeakerAction1 _action2;
+public:
+ SpeakerPOR();
+ virtual Common::String getClassName() { return "SpeakerPOR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerOR : public AnimatedSpeaker {
+public:
+ SpeakerOR();
+ virtual Common::String getClassName() { return "SpeakerOR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerOText : public SpeakerGText {
+public:
+ SpeakerOText();
+
+ virtual Common::String getClassName() { return "SpeakerOText"; }
+};
+
+class SpeakerPOText : public ScreenSpeaker {
+public:
+ SpeakerPOText();
+
+ virtual Common::String getClassName() { return "SpeakerPOText"; }
+};
+
+class SpeakerSText : public ScreenSpeaker {
+public:
+ SpeakerSText();
+
+ virtual Common::String getClassName() { return "SpeakerSText"; }
+};
+
+class SpeakerQText : public ScreenSpeaker {
+public:
+ SpeakerQText();
+
+ virtual Common::String getClassName() { return "SpeakerQText"; }
+};
+
+class SpeakerMText : public ScreenSpeaker {
+public:
+ SpeakerMText();
+
+ virtual Common::String getClassName() { return "SpeakerMText"; }
+};
+
+class SpeakerCText : public ScreenSpeaker {
+public:
+ SpeakerCText();
+
+ virtual Common::String getClassName() { return "SpeakerCText"; }
+};
+
+class SpeakerEText : public ScreenSpeaker {
+public:
+ SpeakerEText();
+
+ virtual Common::String getClassName() { return "SpeakerEText"; }
+};
+
+class SpeakerGR : public AnimatedSpeaker {
+public:
+ SpeakerGR();
+
+ virtual Common::String getClassName() { return "SpeakerGR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerHText : public ScreenSpeaker {
+public:
+ SpeakerHText();
+
+ virtual Common::String getClassName() { return "SpeakerHText"; }
+};
+
+class SpeakerPText : public ScreenSpeaker {
+public:
+ SpeakerPText();
+
+ virtual Common::String getClassName() { return "SpeakerPText"; }
+};
+
+class SpeakerCHFText : public ScreenSpeaker {
+public:
+ SpeakerCHFText();
+
+ virtual Common::String getClassName() { return "SpeakerCHFText"; }
+};
+
+class SpeakerSKText : public ScreenSpeaker {
+public:
+ SpeakerSKText();
+
+ virtual Common::String getClassName() { return "SpeakerSKText"; }
+};
+
+class SpeakerCDRText : public ScreenSpeaker {
+public:
+ SpeakerCDRText();
+
+ virtual Common::String getClassName() { return "SpeakerCDRText"; }
+};
+
+class SpeakerFLText : public ScreenSpeaker {
+public:
+ SpeakerFLText();
+
+ virtual Common::String getClassName() { return "SpeakerFLText"; }
+};
+
+class SpeakerBatText : public ScreenSpeaker {
+public:
+ SpeakerBatText();
+
+ virtual Common::String getClassName() { return "SpeakerFLText"; }
+};
+
+class SpeakerQR : public AnimatedSpeaker {
+public:
+ SpeakerQR();
+
+ virtual Common::String getClassName() { return "SpeakerQR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerQU : public AnimatedSpeaker {
+public:
+ SpeakerQU();
+
+ virtual Common::String getClassName() { return "SpeakerQU"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerSKL : public AnimatedSpeaker {
+public:
+ SpeakerSKL();
+
+ virtual Common::String getClassName() { return "SpeakerQL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerQL : public AnimatedSpeaker {
+public:
+ SpeakerQL();
+
+ virtual Common::String getClassName() { return "SpeakerQL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerSR : public AnimatedSpeaker {
+public:
+ SceneObject _object3;
+public:
+ SpeakerSR();
+
+ virtual Common::String getClassName() { return "SpeakerSR"; }
+ void setText(const Common::String &msg);
+};
+
+class SpeakerSL : public AnimatedSpeaker {
+public:
+ SpeakerSL();
+
+ virtual Common::String getClassName() { return "SpeakerSL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerCR : public AnimatedSpeaker {
+public:
+ SpeakerCR();
+
+ virtual Common::String getClassName() { return "SpeakerCR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerMR : public AnimatedSpeaker {
+public:
+ SpeakerMR();
+
+ virtual Common::String getClassName() { return "SpeakerMR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerSAL : public AnimatedSpeaker {
+public:
+ SpeakerSAL();
+
+ virtual Common::String getClassName() { return "SpeakerSAL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerML : public AnimatedSpeaker {
+public:
+ SpeakerML();
+
+ virtual Common::String getClassName() { return "SpeakerML"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerCHFL : public AnimatedSpeaker {
+public:
+ SpeakerCHFL();
+
+ virtual Common::String getClassName() { return "SpeakerCHFL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerCHFR : public AnimatedSpeaker {
+public:
+ SpeakerCHFR();
+
+ virtual Common::String getClassName() { return "SpeakerCHFR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerPL : public AnimatedSpeaker {
+public:
+ SceneObject _object3;
+ SpeakerAction _speakerAction2;
+
+ SpeakerPL();
+
+ virtual Common::String getClassName() { return "SpeakerPL"; }
+ virtual void setText(const Common::String &msg);
+ virtual void removeText();
+};
+
+class SpeakerPR : public AnimatedSpeaker {
+public:
+ SceneObject _object3;
+ SpeakerAction _speakerAction2;
+
+ SpeakerPR();
+
+ virtual Common::String getClassName() { return "SpeakerPR"; }
+ virtual void setText(const Common::String &msg);
+ virtual void removeText();
+};
+
+class SpeakerCDR : public AnimatedSpeaker {
+public:
+ SpeakerCDR();
+
+ virtual Common::String getClassName() { return "SpeakerCDR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerCDL : public AnimatedSpeaker {
+public:
+ SpeakerCDL();
+
+ virtual Common::String getClassName() { return "SpeakerCDL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerFLL : public AnimatedSpeaker {
+public:
+ SpeakerFLL();
+
+ virtual Common::String getClassName() { return "SpeakerFLL"; }
+ virtual void setText(const Common::String &msg);
+};
+
+class SpeakerBatR : public AnimatedSpeaker {
+public:
+ SpeakerBatR();
+
+ virtual Common::String getClassName() { return "SpeakerBatR"; }
+ virtual void setText(const Common::String &msg);
+};
+
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
+
+#endif