[Scummvm-cvs-logs] scummvm master -> e73a50c6c53bffcf10f044377a72cf754b524bf9

dreammaster dreammaster at scummvm.org
Mon Oct 5 02:56:41 CEST 2015


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e73a50c6c5 SHERLOCK: SS: Fix invalid characters when displaying journal


Commit: e73a50c6c53bffcf10f044377a72cf754b524bf9
    https://github.com/scummvm/scummvm/commit/e73a50c6c53bffcf10f044377a72cf754b524bf9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-10-04T20:56:13-04:00

Commit Message:
SHERLOCK: SS: Fix invalid characters when displaying journal

Changed paths:
    engines/sherlock/fonts.cpp
    engines/sherlock/talk.cpp



diff --git a/engines/sherlock/fonts.cpp b/engines/sherlock/fonts.cpp
index 482e795..b607891 100644
--- a/engines/sherlock/fonts.cpp
+++ b/engines/sherlock/fonts.cpp
@@ -147,10 +147,13 @@ void Fonts::writeString(Surface *surface, const Common::String &str,
 		}
 		curChar = translateChar(curChar);
 
-		assert(curChar < _charCount);
-		ImageFrame &frame = (*_font)[curChar];
-		surface->transBlitFrom(frame, Common::Point(charPos.x, charPos.y + _yOffsets[curChar]), false, overrideColor);
-		charPos.x += frame._frame.w + 1;
+		if (curChar < _charCount) {
+			ImageFrame &frame = (*_font)[curChar];
+			surface->transBlitFrom(frame, Common::Point(charPos.x, charPos.y + _yOffsets[curChar]), false, overrideColor);
+			charPos.x += frame._frame.w + 1;
+		} else {
+			warning("Invalid character encountered - %d", (int)curChar);
+		}
 	}
 }
 
diff --git a/engines/sherlock/talk.cpp b/engines/sherlock/talk.cpp
index e399c26..4150835 100644
--- a/engines/sherlock/talk.cpp
+++ b/engines/sherlock/talk.cpp
@@ -915,6 +915,8 @@ bool Talk::isOpcode(byte checkCharacter) {
 }
 
 bool Talk::isPossibleOpcode(byte checkCharacter) {
+	// Some conversations in the Spanish version, such as the first conversation with Lastrade,
+	// start with an invalid character. Hence isPossibleOpcode being separate from isOpcode
 	if (IS_SERRATED_SCALPEL && _vm->getLanguage() == Common::ES_ESP)
 		return checkCharacter >= 128;
 






More information about the Scummvm-git-logs mailing list