[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.450,2.451

Eugene Sandulenko sev at users.sourceforge.net
Wed May 18 13:42:02 CEST 2005


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

Modified Files:
	gfx.cpp 
Log Message:
MM NES masking fixes from Quietust.


Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.450
retrieving revision 2.451
diff -u -d -r2.450 -r2.451
--- gfx.cpp	16 May 2005 19:52:46 -0000	2.450
+++ gfx.cpp	18 May 2005 20:40:50 -0000	2.451
@@ -1971,6 +1971,7 @@
 		}
 		_NES.nametable[i][width+2] = _NES.nametable[i][width+3] = 0;
 	}
+	memcpy(_NES.nametableObj,_NES.nametable, 16 * 64);
 
 	const byte *adata = room + READ_LE_UINT16(room + 0x0C);
 	for (n = 0; n < 64;) {
@@ -1982,6 +1983,7 @@
 		if (!(data & 0x80))
 			adata++;
 	}
+	memcpy(_NES.attributesObj, _NES.attributes, 64);
 
 	const byte *mdata = room + READ_LE_UINT16(room + 0x0E);
 	int mask = *mdata++;
@@ -2003,6 +2005,7 @@
 				mdata++;
 		}
 	}
+	memcpy(_NES.masktableObj, _NES.masktable, 16 * 8);
 }
 
 void Gdi::decodeNESObject(const byte *ptr, int xpos, int ypos, int width, int height) {
@@ -2011,7 +2014,6 @@
 	_NES.objX = xpos;
 
 	// decode tile update data
-	memcpy(_NES.nametableObj,_NES.nametable,16*64);
 	ypos /= 8;
 	height /= 8;
 	for (y = ypos; y < ypos + height; y++) {
@@ -2027,7 +2029,6 @@
 
 	int ax, ay;
 	// decode attribute update data
-	memcpy(_NES.attributesObj, _NES.attributes,64);
 	y = height / 2;
 	ay = ypos;
 	while (y) {
@@ -2062,7 +2063,6 @@
 	// decode mask update data
 	if (!_NES.hasmask)
 		return;
-	memcpy(_NES.masktableObj, _NES.masktable,16*8);
 	int mx, mwidth;
 	int lmask, rmask;
 	mx = *ptr++;





More information about the Scummvm-git-logs mailing list