aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/script_tim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/kyra/script_tim.cpp')
-rw-r--r--engines/kyra/script_tim.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/engines/kyra/script_tim.cpp b/engines/kyra/script_tim.cpp
index e4e1c01f6b..ae4ae04e92 100644
--- a/engines/kyra/script_tim.cpp
+++ b/engines/kyra/script_tim.cpp
@@ -392,7 +392,8 @@ void TIMInterpreter::displayText(uint16 textId, int16 flags, uint8 color) {
static const uint8 colorMap[] = { 0x00, 0xA0, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
_screen->setTextColorMap(colorMap);
_screen->_charWidth = 0;
- _screen->_charOffset = -4;
+ if (!_vm->gameFlags().use16ColorMode)
+ _screen->_charOffset = -4;
if (!flags)
_screen->copyRegionToBuffer(0, 0, 0, 320, 40, _textAreaBuffer);
@@ -401,6 +402,17 @@ void TIMInterpreter::displayText(uint16 textId, int16 flags, uint8 color) {
char *str = text;
int y = 0;
+ if (_vm->gameFlags().use16ColorMode) {
+ if (color == 0xda)
+ color = 0xa1;
+ else if (color == 0xf2)
+ color = 0xe1;
+ else if (flags < 0)
+ color = 0xe1;
+ else
+ color = 0xc1;
+ }
+
while (str[0]) {
char *nextLine = strchr(str, '\r');
@@ -417,7 +429,7 @@ void TIMInterpreter::displayText(uint16 textId, int16 flags, uint8 color) {
else
_screen->printText(str, 0, y, color, 0x00);
- y += _screen->getFontHeight() - 4;
+ y += (_vm->gameFlags().use16ColorMode ? 16 : (_screen->getFontHeight() - 4));
str += strlen(str);
if (backupChar) {