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

bluegr bluegr at gmail.com
Tue Nov 6 00:36:42 CET 2012


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:
bdb8bdae2a DREAMWEB: Filter out leftover invalid characters in game texts


Commit: bdb8bdae2a206e736278321d599ed2d1e3ae8b76
    https://github.com/scummvm/scummvm/commit/bdb8bdae2a206e736278321d599ed2d1e3ae8b76
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2012-11-05T15:30:33-08:00

Commit Message:
DREAMWEB: Filter out leftover invalid characters in game texts

Thanks to eriktorbjorn for spotting the actual problem

Changed paths:
    engines/dreamweb/print.cpp



diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
index 64b9849..f5a0ed3 100644
--- a/engines/dreamweb/print.cpp
+++ b/engines/dreamweb/print.cpp
@@ -59,9 +59,13 @@ uint8 DreamWebEngine::getNextWord(const GraphicsFile &charSet, const uint8 *stri
 }
 
 void DreamWebEngine::printChar(const GraphicsFile &charSet, uint16* x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height) {
-	if (c == 255)
+	// WORKAROUND: Some texts contain leftover tab characters, which will cause
+	// OOB memory access when showing a character, as all the printable ones are
+	// from 32 onwards. We compensate for that here by ignoring all the invalid
+	// characters (0 - 31).
+	if (c < 32 || c == 255)
 		return;
-
+	
 	uint8 dummyWidth, dummyHeight;
 	if (width == NULL)
 		width = &dummyWidth;






More information about the Scummvm-git-logs mailing list