aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/string.cpp')
-rw-r--r--engines/scumm/string.cpp89
1 files changed, 9 insertions, 80 deletions
diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
index c8e7db2ab1..f50bcac697 100644
--- a/engines/scumm/string.cpp
+++ b/engines/scumm/string.cpp
@@ -248,10 +248,8 @@ void ScummEngine_v7::addSubtitleToQueue(const byte *text, const Common::Point &p
assert(_subtitleQueuePos < ARRAYSIZE(_subtitleQueue));
SubtitleText *st = &_subtitleQueue[_subtitleQueuePos];
int i = 0;
-
- // int len = strlen((const char *)text);
while (1) {
- st->text[i] = text[i]; // text[len - i - 1];
+ st->text[i] = text[i];
if (!text[i])
break;
++i;
@@ -609,6 +607,7 @@ void ScummEngine::CHARSET_1() {
_charset->addLinebreaks(0, _charsetBuffer + _charsetBufPos, 0, maxwidth);
}
+
if (_charset->_center) {
_nextLeft -= _charset->getStringWidth(0, _charsetBuffer + _charsetBufPos) / 2;
if (_nextLeft < 0)
@@ -637,21 +636,10 @@ void ScummEngine::CHARSET_1() {
int start = 0;
char* text = ltext + ll;
-
-
- // for (int u = 0; u < strlen(text); u++) {
- // char buffy[30] = {0};
- // sprintf(buffy, "[%d-%c],", text[u], text[u]);
- // debugN(buffy);
- // }
- // debugN("\n");
-
-
char* current = text;
while(1) {
if (*current == 13 || *current == 0 || *current == -1 || *current == -2) {
-
- // ignore the line break for interface texts
+ // ignore the line break for verbs texts
if (*(current + 1) == 8) {
*(current + 1) = *current;
*current = 8;
@@ -690,9 +678,8 @@ void ScummEngine::CHARSET_1() {
if (*current == 3) {
break;
}
- if (*current == 0x0A) {
+ if (*current == 0x0A || *current == 0x0C) {
start += 2;
- i +=2;
current += 2;
}
start++;
@@ -708,17 +695,6 @@ void ScummEngine::CHARSET_1() {
}
break;
}
-
-
- // warning("REVERSED");
- // for (int u = 0; u < strlen(text); u++) {
- // char buffy[30] = {0};
- // sprintf(buffy, "[%d-%c],", text[u], text[u]);
- // debugN(buffy);
- // }
- // debugN("\n\n\n\n\n");
-
-
}
while (handleNextCharsetCode(a, &c)) {
@@ -752,7 +728,6 @@ void ScummEngine::CHARSET_1() {
break; // FIXME: Is this necessary? Only would be relevant for v0 games
}
- // warning("SETTING");
_charset->_left = _nextLeft;
_charset->_top = _nextTop;
@@ -791,7 +766,6 @@ void ScummEngine::CHARSET_1() {
_charset->printChar(c, false);
}
}
- // warning("RESETING");
_nextLeft = _charset->_left;
_nextTop = _charset->_top;
}
@@ -1001,14 +975,9 @@ void ScummEngine::drawString(int a, const byte *msg) {
while (ltext[ll] == -1) {
ll += 4;
}
- byte fin[270] = {0};
-
- memcpy(fin, ltext, ll);
int pos = 0;
int start = 0;
char* text = (char*)ltext + ll;
-
- strncpy((char*)fin + ll, text, strlen(text));
char* current = text;
while(1) {
if (*current == 13 || *current == 0 || *current == -1 || *current == -2) {
@@ -1032,7 +1001,7 @@ void ScummEngine::drawString(int a, const byte *msg) {
buff[pos - sthead] = stack[sthead];
--sthead;
}
- memcpy(fin + ll + start, buff, pos);
+ memcpy(text + start, buff, pos);
start += pos + 1;
pos = -1;
if (*current == -1 || *current == -2) {
@@ -1040,9 +1009,8 @@ void ScummEngine::drawString(int a, const byte *msg) {
if (*current == 3) {
break;
}
- if (*current == 0x0A) {
+ if (*current == 0x0A || *current == 0x0C) {
start += 2;
- pos +=2;
current += 2;
}
start++;
@@ -1058,7 +1026,6 @@ void ScummEngine::drawString(int a, const byte *msg) {
}
break;
}
- memcpy(buf, fin, start + pos + ll);
if (_game.id == GID_INDY4 && ltext[0] == 127) {
buf[start + pos + ll] = 127;
@@ -1067,7 +1034,6 @@ void ScummEngine::drawString(int a, const byte *msg) {
}
-
_charset->_top = _string[a].ypos + _screenTop;
_charset->_startLeft = _charset->_left = _string[a].xpos;
_charset->_right = _string[a].right;
@@ -1128,7 +1094,6 @@ void ScummEngine::drawString(int a, const byte *msg) {
if (_charset->_center) {
_charset->_left -= _charset->getStringWidth(a, buf) / 2;
} else if (_game.version >= 4 && _game.version < 7 && _game.id != GID_SAMNMAX && (_language == Common::HE_ISR || true)) {
- // warning("FIRST BOTTTOMd");
if (_game.id != GID_INDY4 || buf[0] == 127) {
if (_game.id == GID_INDY4 && buf[0] == 127) {
buf[0] = 32;
@@ -1198,7 +1163,6 @@ void ScummEngine::drawString(int a, const byte *msg) {
if (_charset->_center) {
_charset->_left = _charset->_startLeft - _charset->getStringWidth(a, buf + i);
} else if (_game.version >= 4 && _game.version < 7 && (_language == Common::HE_ISR || true)) {
- // warning("SECOND BOTTOM");
if (_charset->getStringWidth(a, buf + i) > _screenWidth) {
int ll = 0;
byte* ltext = buf + i;
@@ -1493,20 +1457,7 @@ int ScummEngine::convertNameMessage(byte *dst, int dstSize, int var) {
if (num) {
const byte *ptr = getObjOrActorName(num);
if (ptr) {
- int retval = convertMessageToString(ptr, dst, dstSize);
-
- // if (_game.version >= 7 && (_language == Common::HE_ISR || true)) {
- // byte rev[384] = {0};
- // int lens = strlen((const char *)dst);
-
- // for (int l = 0; l < lens; l++) {
- // rev[l] = dst[lens - l - 1];
- // }
- // rev[lens] = '\0';
- // strcpy((char *)dst, (const char *)rev);
- // }
-
- return retval;
+ return convertMessageToString(ptr, dst, dstSize);
}
}
return 0;
@@ -1534,19 +1485,7 @@ int ScummEngine::convertStringMessage(byte *dst, int dstSize, int var) {
if (var) {
ptr = getStringAddress(var);
if (ptr) {
- int retval = convertMessageToString(ptr, dst, dstSize);
-
- // if (_game.version >= 7 && (_language == Common::HE_ISR || true)) {
- // byte rev[384] = {0};
- // int lens = strlen((const char *)dst);
-
- // for (int l = 0; l < lens; l++) {
- // rev[l] = dst[lens - l - 1];
- // }
- // rev[lens] = '\0';
- // strcpy((char *)dst, (const char *)rev);
- // }
- return retval;
+ return convertMessageToString(ptr, dst, dstSize);
}
}
return 0;
@@ -1846,16 +1785,6 @@ void ScummEngine_v7::translateText(const byte *text, byte *trans_buff) {
}
if (found != NULL) {
- //char rev[384] = {0};
- //strcpy(rev, _languageBuffer + found->offset);
- //int len = strlen(rev);
- //for (int l = 0; l < len; l++) {
- // trans_buff[l] = rev[len - l - 1];
- //}
- //trans_buff[len] = '\0';
-
- // OR
-
strcpy((char *)trans_buff, _languageBuffer + found->offset);
if ((_game.id == GID_DIG) && !(_game.features & GF_DEMO)) {
@@ -1892,4 +1821,4 @@ void ScummEngine::translateText(const byte *text, byte *trans_buff) {
memcpy(trans_buff, text, resStrLen(text) + 1);
}
-} // End of namespace Scumm
+} // End of namespace Scumm \ No newline at end of file