[Scummvm-cvs-logs] CVS: scummvm/scumm string.cpp,1.214,1.215 charset.cpp,2.89,2.90

Max Horn fingolfin at users.sourceforge.net
Wed Apr 7 18:52:01 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15994

Modified Files:
	string.cpp charset.cpp 
Log Message:
Semi-experimental change: revised _hasMask handling -> simpler code (after removing those FIXME's that is :-), which should still produce identical results (let's wait for the regressions rolling in :-)

Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.214
retrieving revision 1.215
diff -u -d -r1.214 -r1.215
--- string.cpp	5 Apr 2004 23:54:58 -0000	1.214
+++ string.cpp	8 Apr 2004 01:38:07 -0000	1.215
@@ -161,7 +161,10 @@
 
 	if (!_keepText) {
 		if (_version <= 3 && _gameId != GID_LOOM) {
-			_charset->_hasMask = true;
+// FIXME: Remove this commented out code eventually
+//			if (!_charset->_hasMask)
+//				warning("_hasMask mismatch (case C) - please report to Fingolfin");
+//			_charset->_hasMask = true;
 		}
 		_charset->restoreCharsetBg();
 	}
@@ -310,7 +313,10 @@
 
 	_charsetBufPos = buffer - _charsetBuffer;
 
-	_charset->_hasMask = (_charset->_str.left != -1);
+	// FIXME: Remove this and the next three lines eventually!
+	if (_charset->_hasMask != (_charset->_str.left != -1))
+		warning("_hasMask mismatch (case A %d) - please report to Fingolfin", _charset->_hasMask);
+//	_charset->_hasMask = (_charset->_str.left != -1);
 }
 
 
@@ -439,6 +445,9 @@
 	_string[a].xpos = _charset->_str.right + 8;	// Indy3: Fixes Grail Diary text positioning
 
 	if (_version >= 7) {
+		// FIXME: Remove this and the next three lines eventually!
+		if (!_charset->_hasMask)
+			warning("_hasMask mismatch (case B %d) - please report to Fingolfin", _charset->_hasMask);
 		_charset->_hasMask = true;
 	}
 }

Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.89
retrieving revision 2.90
diff -u -d -r2.89 -r2.90
--- charset.cpp	6 Apr 2004 22:02:02 -0000	2.89
+++ charset.cpp	8 Apr 2004 01:38:07 -0000	2.90
@@ -978,7 +978,7 @@
 
 	_vm->markRectAsDirty(vs->number, _left, _left + width, drawTop, drawTop + height);
 	
-	if (vs->number == kMainVirtScreen && !_ignoreCharsetMask)
+	if (!_ignoreCharsetMask)
 		_hasMask = true;
 
 	drawBits1(vs, dest_ptr, char_ptr, mask_ptr, drawTop, 8, 8);
@@ -1084,10 +1084,9 @@
 
 	_vm->markRectAsDirty(vs->number, _left, _left + width, drawTop, drawTop + height + offsY);
 
-	if (vs->number == kMainVirtScreen && !_ignoreCharsetMask)
+	if (!_ignoreCharsetMask)
 		_hasMask = true;
 
-
 	byte *mask = _vm->getMaskBuffer(_left, drawTop, 0);
 	byte *dst = vs->screenPtr + vs->xstart + drawTop * vs->width + _left;
 
@@ -1291,7 +1290,9 @@
 	shadow.right = _left + width + 2;
 	shadow.bottom = _top + height + 2;
 
-	_hasMask = true;
+	if (!_ignoreCharsetMask)
+		_hasMask = true;
+
 	_current->drawShadowChar(chr, _left, _top, _color, !_ignoreCharsetMask, _curId != 3);
 	_vm->markRectAsDirty(kMainVirtScreen, shadow);
 





More information about the Scummvm-git-logs mailing list