[Scummvm-git-logs] scummvm master -> 73e8a49464ea1ecabcb10de68cf95cb9b93cb1bb
bluegr
bluegr at gmail.com
Thu Feb 4 20:25:44 UTC 2021
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
f76d858e6a SCUMM: COMI: fix hebrew multiline dialogue
73e8a49464 SCUMM: SMUSH: fix regression in hebrew text
Commit: f76d858e6a3e7be5c64a2de4f617dc220f6ea77d
https://github.com/scummvm/scummvm/commit/f76d858e6a3e7be5c64a2de4f617dc220f6ea77d
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2021-02-04T22:25:39+02:00
Commit Message:
SCUMM: COMI: fix hebrew multiline dialogue
Changed paths:
engines/scumm/verbs.cpp
diff --git a/engines/scumm/verbs.cpp b/engines/scumm/verbs.cpp
index 8f86bad728..b8706f8258 100644
--- a/engines/scumm/verbs.cpp
+++ b/engines/scumm/verbs.cpp
@@ -1013,9 +1013,6 @@ void ScummEngine_v7::drawVerb(int verb, int mode) {
_charset->setCurID(vs->charset_nr);
// Compute the text rect
- if (_language == Common::HE_ISR) {
- vs->curRect.left = _screenWidth - _charset->getStringWidth(0, buf);
- }
vs->curRect.right = 0;
vs->curRect.bottom = 0;
const byte *msg2 = msg;
@@ -1046,12 +1043,26 @@ void ScummEngine_v7::drawVerb(int verb, int mode) {
}
--len;
}
+ if (_language == Common::HE_ISR) {
+ vs->curRect.right -= vs->curRect.left;
+ vs->curRect.left = _screenWidth - _charset->getStringWidth(0, tmpBuf);
+ vs->curRect.right += vs->curRect.left;
+ }
enqueueText(tmpBuf, vs->curRect.left, vs->curRect.top, color, vs->charset_nr, vs->center);
if (len >= 0) {
- enqueueText(&msg[len + 1], vs->curRect.left, vs->curRect.top + _verbLineSpacing, color, vs->charset_nr, vs->center);
+ int16 leftPos = vs->curRect.left;
+ if (_language == Common::HE_ISR) {
+ leftPos = _screenWidth - _charset->getStringWidth(0, &msg[len + 1]);
+ }
+ enqueueText(&msg[len + 1], leftPos, vs->curRect.top + _verbLineSpacing, color, vs->charset_nr, vs->center);
vs->curRect.bottom += _verbLineSpacing;
}
} else {
+ if (_language == Common::HE_ISR) {
+ vs->curRect.right -= vs->curRect.left;
+ vs->curRect.left = _screenWidth - _charset->getStringWidth(0, buf);
+ vs->curRect.right += vs->curRect.left;
+ }
enqueueText(msg, vs->curRect.left, vs->curRect.top, color, vs->charset_nr, vs->center);
}
_charset->setCurID(oldID);
Commit: 73e8a49464ea1ecabcb10de68cf95cb9b93cb1bb
https://github.com/scummvm/scummvm/commit/73e8a49464ea1ecabcb10de68cf95cb9b93cb1bb
Author: BLooperZ (blooperz at users.noreply.github.com)
Date: 2021-02-04T22:25:39+02:00
Commit Message:
SCUMM: SMUSH: fix regression in hebrew text
Changed paths:
engines/scumm/smush/smush_font.cpp
diff --git a/engines/scumm/smush/smush_font.cpp b/engines/scumm/smush/smush_font.cpp
index f76e14e0ad..9e4124da48 100644
--- a/engines/scumm/smush/smush_font.cpp
+++ b/engines/scumm/smush/smush_font.cpp
@@ -200,9 +200,8 @@ int SmushFont::draw2byte(byte *buffer, int dst_width, int x, int y, int idx) {
void SmushFont::drawSubstring(const char *str, uint numBytesMax, byte *buffer, int dst_width, int x, int y) {
if (_vm->_language == Common::HE_ISR) {
- for (int i = strlen(str); i >= 0 && numBytesMax; i--) {
- x += drawChar(buffer, dst_width, x, y, str[i]);
- --numBytesMax;
+ for (int i = numBytesMax; i > 0; i--) {
+ x += drawChar(buffer, dst_width, x, y, str[i - 1]);
}
} else {
for (int i = 0; str[i] != 0 && numBytesMax; ++i) {
More information about the Scummvm-git-logs
mailing list