aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2011-03-20 20:26:09 +1100
committerstrangerke2011-03-21 08:15:46 +0100
commit1c6d46ce834f4d114ef0b74eca854fee93da0b8e (patch)
tree7c387e59e0b0f3218516673e8037cab6e5d62dc7
parent08918b512ef646a7a0e843b793215ab614dec500 (diff)
downloadscummvm-rg350-1c6d46ce834f4d114ef0b74eca854fee93da0b8e.tar.gz
scummvm-rg350-1c6d46ce834f4d114ef0b74eca854fee93da0b8e.tar.bz2
scummvm-rg350-1c6d46ce834f4d114ef0b74eca854fee93da0b8e.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 2eacb2a316..ba8df21589 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"
#include "tsage/ringworld_scenes8.h"
namespace tSage {
@@ -106,6 +107,8 @@ Scene *SceneFactory::createScene(int sceneNumber) {
case 3700: return new Scene3700();
/* Scene group 5 */
+ // Village
+ case 4000: return new Scene4000();
/* Scene group 6 */
@@ -429,6 +432,26 @@ SpeakerSKText::SpeakerSKText(): ScreenSpeaker() {
/*--------------------------------------------------------------------------*/
+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;
+}
+
+/*--------------------------------------------------------------------------*/
+
SpeakerSKL::SpeakerSKL(): AnimatedSpeaker() {
_speakerName = "SKL";
_newSceneNumber = 7011;
@@ -744,4 +767,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 012ba8b2ba..24970e5b7d 100644
--- a/engines/tsage/ringworld_logic.h
+++ b/engines/tsage/ringworld_logic.h
@@ -182,6 +182,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 SpeakerSKText: public ScreenSpeaker {
public:
SpeakerSKText();
@@ -271,6 +285,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