[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.77,1.78
Max Horn
fingolfin at users.sourceforge.net
Sat May 3 09:29:39 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv2551
Modified Files:
actor.cpp
Log Message:
Patch #731760: LOOM: "Bobbin walks backwards" hack
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- actor.cpp 22 Apr 2003 18:57:09 -0000 1.77
+++ actor.cpp 3 May 2003 16:20:18 -0000 1.78
@@ -175,22 +175,18 @@
bool flipX;
bool flipY;
- // FIXME - why was this here? It breaks some animations in LoomCD, and logical,
- // why should we not honor box flags when ignoreBoxes is on? If this change
- // breaks anything, or if you know why the if() was in originally, please
- // tell this to Fingolfin.
-
- // Addendum: it seems that at least in "The Dig" the original code
- // does check ignoreBoxes here...
- // I am not sure what was broken in LoomCD. I am re-enabling this for now
- // If new breakage occurs in LoomCD, we can perform this check
- // conditionally depending on the Scumm version being used...
-
- // Also at least in The Dig, it checks if the actor is in the current room, but
- // that's not necessary here because we can never be called if the actor is
- // not in the current room anyway.
+ // FIXME - It seems that at least in The Dig the original code does
+ // check ignoreBoxes here. However, it breaks some animations in Loom,
+ // causing Bobbin to face towards the camera instead of away from it
+ // in some places: After the tree has been destroyed by lightning, and
+ // when entering the dark tunnels beyond the dragon's lair at the very
+ // least. Possibly other places as well.
+ //
+ // The Dig also checks if the actor is in the current room, but that's
+ // not necessary here because we never call the function unless the
+ // actor is in the current room anyway.
- if (!ignoreBoxes) {
+ if (!ignoreBoxes || _vm->_gameId == GID_LOOM || _vm->_gameId == GID_LOOM256) {
specdir = _vm->_extraBoxFlags[walkbox];
if (specdir) {
if (specdir & 0x8000) {
@@ -212,16 +208,16 @@
flipX = (walkdata.XYFactor > 0);
flipY = (walkdata.YXFactor > 0);
- // FIXME - this special cases for the class might be necesary for other
- // games besides Loom CD!
+ // FIXME - this special cases for the class might be necesary
+ // for other games besides Loom!
// Check for X-Flip
- if ((flags & kBoxXFlip) || isInClass(_vm->_gameId == GID_LOOM256 ? 19 : 30)) {
+ if ((flags & kBoxXFlip) || isInClass((_vm->_gameId == GID_LOOM256 || _vm->_gameId == GID_LOOM) ? 19 : 30)) {
dir = 360 - dir;
flipX = !flipX;
}
// Check for Y-Flip
- if ((flags & kBoxYFlip) || isInClass(_vm->_gameId == GID_LOOM256 ? 18 : 29)) {
+ if ((flags & kBoxYFlip) || isInClass((_vm->_gameId == GID_LOOM256 || _vm->_gameId == GID_LOOM) ? 18 : 29)) {
dir = 180 - dir;
flipY = !flipY;
}
More information about the Scummvm-git-logs
mailing list