aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-03-20 20:26:09 +1100
committerPaul Gilbert2011-03-20 20:26:09 +1100
commite2af308ad2c4b35d8325dbf8357d299dd9606fc0 (patch)
treee5f7ec018f89f8c046b3a279bfaead6bbe42ee1b
parentae29b57edbca8738768043af1c88973ab6ab8f3b (diff)
downloadscummvm-rg350-e2af308ad2c4b35d8325dbf8357d299dd9606fc0.tar.gz
scummvm-rg350-e2af308ad2c4b35d8325dbf8357d299dd9606fc0.tar.bz2
scummvm-rg350-e2af308ad2c4b35d8325dbf8357d299dd9606fc0.zip
TSAGE: Added new speaker classes
-rw-r--r--engines/tsage/ringworld_logic.cpp126
-rw-r--r--engines/tsage/ringworld_logic.h44
2 files changed, 170 insertions, 0 deletions
diff --git a/engines/tsage/ringworld_logic.cpp b/engines/tsage/ringworld_logic.cpp
index f5b001eb2b..4793f70c6c 100644
--- a/engines/tsage/ringworld_logic.cpp
+++ b/engines/tsage/ringworld_logic.cpp
@@ -31,6 +31,7 @@
#include "tsage/ringworld_scenes2.h"
#include "tsage/ringworld_scenes3.h"
#include "tsage/ringworld_scenes4.h"
+#include "tsage/ringworld_scenes5.h"
namespace tSage {
@@ -105,6 +106,8 @@ Scene *SceneFactory::createScene(int sceneNumber) {
case 3700: return new Scene3700();
/* Scene group 5 */
+ // Village
+ case 4000: return new Scene4000();
/* Scene group 6 */
@@ -346,6 +349,26 @@ SpeakerHText::SpeakerHText() {
/*--------------------------------------------------------------------------*/
+SpeakerPText::SpeakerPText() {
+ _speakerName = "PTEXT";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTRE;
+ _colour1 = 5;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
+SpeakerCHFText::SpeakerCHFText() {
+ _speakerName = "SpeakerCHFText";
+ _textWidth = 240;
+ _textMode = ALIGN_CENTRE;
+ _colour1 = 56;
+ _hideObjects = false;
+}
+
+/*--------------------------------------------------------------------------*/
+
SpeakerQL::SpeakerQL(): AnimatedSpeaker() {
_speakerName = "QL";
_newSceneNumber = 2610;
@@ -599,4 +622,107 @@ void SpeakerML::setText(const Common::String &msg) {
Speaker::setText(msg);
}
+/*--------------------------------------------------------------------------*/
+
+SpeakerCHFL::SpeakerCHFL() {
+ _speakerName = "CHFL";
+ _newSceneNumber = 4111;
+ _textPos = Common::Point(10, 40);
+ _colour1 = 56;
+}
+
+void SpeakerCHFL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4113);
+ _object1.setStrip2(2);
+ _object1.setPriority2(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.setPriority2(255);
+ _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);
+ _colour1 = 56;
+}
+
+void SpeakerCHFR::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4112);
+ _object1.setStrip2(2);
+ _object1.setPriority2(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.setPriority2(255);
+ _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);
+ _colour1 = 5;
+}
+
+void SpeakerPL::setText(const Common::String &msg) {
+ _object1.postInit(&_objectList);
+ _object1.setVisage(4062);
+ _object1.setStrip2(2);
+ _object1.setPriority2(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.setPriority2(200);
+ _object2._frame = 1;
+ _object2.setPosition(Common::Point(105, 62));
+ _object2.setAction(&_speakerAction, NULL);
+
+ _object3.postInit(&_objectList);
+ _object3.setVisage(4062);
+ _object3.setStrip2(3);
+ _object3.setPriority2(255);
+ _object3._frame = 1;
+ _object3.setPosition(Common::Point(105, 59));
+ _object3.setAction(&_speakerAction2, NULL);
+
+ Speaker::setText(msg);
+}
+
+void SpeakerPL::removeText() {
+ _object3.remove();
+ AnimatedSpeaker::removeText();
+}
+
} // End of namespace tSage
diff --git a/engines/tsage/ringworld_logic.h b/engines/tsage/ringworld_logic.h
index fd48dec0b6..4ebf078da8 100644
--- a/engines/tsage/ringworld_logic.h
+++ b/engines/tsage/ringworld_logic.h
@@ -153,6 +153,20 @@ public:
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 SpeakerQL: public AnimatedSpeaker {
public:
SpeakerQL();
@@ -219,6 +233,36 @@ public:
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();
+};
+
+
+
} // End of namespace tSage
#endif