[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