[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.206,1.207

Travis Howell kirben at users.sourceforge.net
Sun Jan 11 00:40:01 CET 2004


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

Modified Files:
	actor.cpp 
Log Message:

This make HE games actor clipping code closer to disasm.
Add some missing code for akos games.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.206
retrieving revision 1.207
diff -u -d -r1.206 -r1.207
--- actor.cpp	10 Jan 2004 11:01:46 -0000	1.206
+++ actor.cpp	11 Jan 2004 08:39:39 -0000	1.207
@@ -963,29 +963,29 @@
 	bcr->setPalette(palette);
 	bcr->setFacing(this);
 
-	if (!(_vm->_features & GF_NEW_COSTUMES)) {
+	if (_vm->_features & GF_NEW_COSTUMES) {
 
-		if (forceClip)
-			bcr->_zbuf = forceClip;
-		else if (isInClass(kObjectClassNeverClip))
-			bcr->_zbuf = 0;
-		else {
+		bcr->_zbuf = forceClip;
+		if ((bcr->_zbuf == 100) || ((_vm->_features & GF_HUMONGOUS) && (bcr->_zbuf == 0))) {
 			bcr->_zbuf = _vm->getMaskFromBox(walkbox);
 			if (bcr->_zbuf > _vm->gdi._numZBuffer-1)
 				bcr->_zbuf = _vm->gdi._numZBuffer-1;
 		}
 
-		bcr->_draw_top = top = 0xFF;
-	} else {
+		bcr->_draw_top = top = 0x7fffffff;
 
-		bcr->_zbuf = forceClip;
-		if ((bcr->_zbuf == 100) || ((_vm->_features & GF_HUMONGOUS) && (bcr->_zbuf == 0))) {
+	} else {
+		if (forceClip)
+			bcr->_zbuf = forceClip;
+		else if (isInClass(kObjectClassNeverClip))
+			bcr->_zbuf = 0;
+		else {
 			bcr->_zbuf = _vm->getMaskFromBox(walkbox);
 			if (bcr->_zbuf > _vm->gdi._numZBuffer-1)
 				bcr->_zbuf = _vm->gdi._numZBuffer-1;
 		}
 
-		bcr->_draw_top = top = 0x7fffffff;
+		bcr->_draw_top = top = 0xFF;
 	}
 
 	bcr->_draw_bottom = bottom = 0;
@@ -993,7 +993,7 @@
 	// If the actor is partially hidden, redraw it next frame.
 	// Only done for pre-AKOS, though.
 	if (bcr->drawCostume(_vm->virtscr[0], cost) & 1) {
-		needRedraw = !(_vm->_features & GF_NEW_COSTUMES);
+		needRedraw = !(_vm->_version >= 7);
 	}
 
 	// Record the vertical extent of the drawn actor
@@ -1217,6 +1217,9 @@
 				_vm->ensureResourceLoaded(rtCostume, costume);
 			}
 			startAnimActor(initFrame);
+		} else {
+			costume = c;
+			cost.reset();
 		}
 	} else {
 		if (visible) {





More information about the Scummvm-git-logs mailing list