[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.113,1.114
Max Horn
fingolfin at users.sourceforge.net
Wed May 28 14:44:11 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv2658
Modified Files:
actor.cpp
Log Message:
fix actor redraw problems in COMI (and possibly other AKOS games); might cause regressions, though. See also patch #699980
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.113
retrieving revision 1.114
diff -u -d -r1.113 -r1.114
--- actor.cpp 28 May 2003 20:01:37 -0000 1.113
+++ actor.cpp 28 May 2003 21:43:34 -0000 1.114
@@ -920,12 +920,6 @@
cr._draw_top = top = 0xFF;
cr._draw_bottom = bottom = 0;
-
- // if the actor is partially hidden, redraw it next frame
- if (cr.drawCostume(cost) & 1) {
- needBgReset = true;
- needRedraw = true;
- }
} else {
AkosRenderer& ar = *(AkosRenderer *)bcr;
@@ -942,19 +936,23 @@
ar._draw_top = top = 0x7fffffff;
ar._draw_bottom = bottom = 0;
+ }
- if (ar.drawCostume(cost)) {
- // FIXME: this breaks talking in The Dig because the actor
- // is redrawn too often, thus breaking the waitForActor opcode.
- // Note that I originally added this to correct some redraw issues.
- // A "better" implementation would work like the corresponding code
- // for "old" costumes, that is, only trigger a redraw if the actor
- // is partially hidden / offscreen... but I am not sure the original
- // actually does this, so before we spend time on implementing this,
- // we should first figure out what the original code does here...
- //needBgReset = true;
- //needRedraw = true;
- }
+ // If the actor is partially hidden, redraw it next frame.
+ // Note: for akos, this only works for codec 1 so far; we need to look
+ // if we can (or even should) implement this for the other codecs, too.
+ if (bcr->drawCostume(cost) & 1) {
+ // FIXME: this used to break talking in The Dig because the actor
+ // was redrawn too often, which broke the waitForActor opcode.
+ // This refined version hopefully will work better.
+ //
+ // We didn't use to do this for AKOS games at all, only for the classic
+ // costumes. And I am not sure the original game did this for AKOS
+ // games, either. So maybe this code isn't the correct way to do what
+ // it does (which is to fix actor draw problems, see also patch #699980).
+ // Would be nice to figure out what the original code does...
+ needBgReset = true;
+ needRedraw = true;
}
top = bcr->_draw_top;
More information about the Scummvm-git-logs
mailing list