[Scummvm-cvs-logs] CVS: scummvm/scumm bundle.cpp,1.18,1.19 charset.cpp,2.11,2.12 gfx.cpp,2.23,2.24 nut_renderer.cpp,1.13,1.14 nut_renderer.h,1.3,1.4

Max Horn fingolfin at users.sourceforge.net
Tue Jan 14 19:11:04 CET 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv25615

Modified Files:
	bundle.cpp charset.cpp gfx.cpp nut_renderer.cpp nut_renderer.h 
Log Message:
made NUT font rendered honor _ignoreCharsetMask

Index: bundle.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/bundle.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- bundle.cpp	14 Jan 2003 17:58:03 -0000	1.18
+++ bundle.cpp	15 Jan 2003 03:10:28 -0000	1.19
@@ -280,7 +280,8 @@
 
 		output_size =
 			decompressCodec(_compVoiceTable[i].codec, comp_input, comp_output, _compVoiceTable[i].size, i, channels);
-		memcpy((byte *)&comp_final[final_size], comp_output, output_size);
+		assert(output_size <= 10000);
+		memcpy(comp_final + final_size, comp_output, output_size);
 		final_size += output_size;
 
 		free(comp_input);

Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -d -r2.11 -r2.12
--- charset.cpp	31 Dec 2002 21:41:24 -0000	2.11
+++ charset.cpp	15 Jan 2003 03:10:28 -0000	2.12
@@ -451,7 +451,7 @@
 	int height = _current->getCharHeight(chr);
 
 	_hasMask = true;
-	_current->drawChar((char)chr, _left, _top, _color);
+	_current->drawChar((char)chr, _left, _top, _color, !_ignoreCharsetMask);
 	_vm->updateDirtyRect(0, _left, _left + width, _top, _top + height, 0);
 
 	_left += width;

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.23
retrieving revision 2.24
diff -u -d -r2.23 -r2.24
--- gfx.cpp	14 Jan 2003 10:05:39 -0000	2.23
+++ gfx.cpp	15 Jan 2003 03:10:28 -0000	2.24
@@ -757,7 +757,6 @@
 	topline = vs->topline;
 	height = topline + vs->height;
 
-//	right++;		// FIXME - why did we increment here?!? it caused bug 
 	if (left < 0)
 		left = 0;
 	if (right < 0)

Index: nut_renderer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- nut_renderer.cpp	31 Dec 2002 21:15:46 -0000	1.13
+++ nut_renderer.cpp	15 Jan 2003 03:10:28 -0000	1.14
@@ -163,6 +163,7 @@
 	return length;
 }
 
+/*
 void NutRenderer::drawString(const char *string, int32 x, int32 y, byte color, int32 mode) {
 	debug(2,  "NutRenderer::drawString() called");
 	if (_loaded == false) {
@@ -189,9 +190,10 @@
 
 	_vm->updateDirtyRect(0, left, x, y, y + height, 0);
 }
+*/
 
-void NutRenderer::drawChar(char c, int32 x, int32 y, byte color) {
-	debug(2,  "NutRenderer::drawChar('%c', %d, %d, %d) called", c, x, y, (int)color);
+void NutRenderer::drawChar(char c, int32 x, int32 y, byte color, bool useMask) {
+	debug(2,  "NutRenderer::drawChar('%c', %d, %d, %d, %d) called", c, x, y, (int)color, useMask);
 	if (_loaded == false) {
 		debug(2, "NutRenderer::drawChar() Font is not loaded");
 		return;
@@ -215,17 +217,19 @@
 	int offsetX[7] = { -1,  0, 1, 0, 1, 2, 0 };
 	int offsetY[7] = {  0, -1, 0, 1, 2, 1, 0 };
 	int cTable[7] =  {  0,  0, 0, 0, 0, 0, color };
+
+	byte *dst, *mask = NULL;
+	byte maskmask;
+	int maskpos;
 	
 	for (int i = 0; i < 7; i++) {
 		x += offsetX[i];
 		y += offsetY[i];
 		color = cTable[i];
 	
-		byte *dst = _vm->virtscr[0].screenPtr + y * _vm->_realWidth + x + _vm->virtscr[0].xstart;
-		byte *mask = _vm->getResourceAddress(rtBuffer, 9)
+		dst = _vm->virtscr[0].screenPtr + y * _vm->_realWidth + x + _vm->virtscr[0].xstart;
+		mask = _vm->getResourceAddress(rtBuffer, 9)
 						+ (y * _vm->_realWidth + x) / 8 + _vm->_screenStartStrip;
-		byte maskmask;
-		int maskpos;
 	
 		src = _tmpCodecBuffer;
 	
@@ -237,7 +241,8 @@
 #if 1
 				if (pixel != 0) {
 					dst[tx] = color;
-					mask[maskpos] |= maskmask;
+					if (useMask)
+						mask[maskpos] |= maskmask;
 				}
 #else
 				if (pixel != 0) {
@@ -246,7 +251,8 @@
 					if (pixel == 0xff)
 						pixel = 0x0;
 					dst[tx] = pixel;
-					mask[maskpos] |= maskmask;
+					if (useMask)
+						mask[maskpos] |= maskmask;
 				}
 #endif
 				maskmask >>= 1;

Index: nut_renderer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/nut_renderer.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- nut_renderer.h	30 Dec 2002 13:55:36 -0000	1.3
+++ nut_renderer.h	15 Jan 2003 03:10:28 -0000	1.4
@@ -41,8 +41,8 @@
 	~NutRenderer();
 
 	bool loadFont(const char *filename, const char *dir);
-	void drawChar(char c, int32 x, int32 y, byte color);
-	void drawString(const char *string, int32 x, int32 y, byte color, int32 mode);
+	void drawChar(char c, int32 x, int32 y, byte color, bool useMask);
+//	void drawString(const char *string, int32 x, int32 y, byte color, int32 mode);
 	int32 getCharWidth(char c);
 	int32 getCharHeight(char c);
 	int32 getStringWidth(char *string);





More information about the Scummvm-git-logs mailing list