aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/scumm/actor.cpp9
-rw-r--r--engines/scumm/intern.h2
-rw-r--r--engines/scumm/string.cpp9
3 files changed, 14 insertions, 6 deletions
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index 8882abfeb4..5002a22a6f 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -1884,13 +1884,16 @@ void ScummEngine_v7::actorTalk(const byte *msg) {
if (_game.version == 7)
VAR(VAR_HAVE_MSG) = 0xFF;
_haveActorSpeechMsg = true;
- if (_game.version == 8) {
+ if (_game.id == GID_DIG || _game.id == GID_CMI) {
stringWrap = _string[0].wrapping;
_string[0].wrapping = true;
}
CHARSET_1();
- if (_game.version == 8) {
- VAR(VAR_HAVE_MSG) = (_string[0].no_talk_anim) ? 2 : 1;
+ if (_game.id == GID_DIG || _game.id == GID_CMI) {
+ if (_game.version == 8)
+ VAR(VAR_HAVE_MSG) = (_string[0].no_talk_anim) ? 2 : 1;
+ else
+ VAR(VAR_HAVE_MSG) = 1;
_string[0].wrapping = stringWrap;
}
}
diff --git a/engines/scumm/intern.h b/engines/scumm/intern.h
index c693787e83..391e7216fa 100644
--- a/engines/scumm/intern.h
+++ b/engines/scumm/intern.h
@@ -909,6 +909,7 @@ public:
void processSubtitleQueue();
void addSubtitleToQueue(const byte *text, const Common::Point &pos, byte color, byte charset);
void clearSubtitleQueue();
+ virtual void CHARSET_1();
protected:
virtual int runDialog(Dialog &dialog);
@@ -977,7 +978,6 @@ protected:
virtual const char *getOpcodeDesc(byte i);
virtual void printString(int m, const byte *msg);
- virtual void CHARSET_1();
virtual void scummLoop_handleSaveLoad();
diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
index 34ec494850..dfaf0dc6e6 100644
--- a/engines/scumm/string.cpp
+++ b/engines/scumm/string.cpp
@@ -679,7 +679,12 @@ void ScummEngine::CHARSET_1() {
}
#ifndef DISABLE_SCUMM_7_8
-void ScummEngine_v8::CHARSET_1() {
+void ScummEngine_v7::CHARSET_1() {
+ if (_game.id == GID_FT) {
+ ScummEngine::CHARSET_1();
+ return;
+ }
+
byte subtitleBuffer[2048];
byte *subtitleLine = subtitleBuffer;
Common::Point subtitlePos;
@@ -830,7 +835,7 @@ void ScummEngine_v8::CHARSET_1() {
}
}
}
- _haveMsg = 2;
+ _haveMsg = (_game.version == 8) ? 2 : 1;
_keepText = false;
_string[0] = saveStr;
}