[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