[Scummvm-git-logs] scummvm master -> 195238f8c5ee91951264648db01f8129cb7ba2ce
eriktorbjorn
noreply at scummvm.org
Tue May 3 05:36:47 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
195238f8c5 SCUMM: Fix Full Throttle drawing glitch (bug #13419)
Commit: 195238f8c5ee91951264648db01f8129cb7ba2ce
https://github.com/scummvm/scummvm/commit/195238f8c5ee91951264648db01f8129cb7ba2ce
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-05-03T07:36:42+02:00
Commit Message:
SCUMM: Fix Full Throttle drawing glitch (bug #13419)
The drawObject() function would always mask out the last three bits of
the object height. This is correct for many versions of SCUMM, but not
for SCUMM v7-v8. In Full Throttle, it caused a glitch when drawing the
open doors to the Corley Motors building late in the game.
So far, this is the only glitch known to have been caused by this. Maybe
the developers generally adjusted the height of their objects out of
habit when creating the games?
Changed paths:
engines/scumm/object.cpp
diff --git a/engines/scumm/object.cpp b/engines/scumm/object.cpp
index bfcb58b8d53..4adae01bcd3 100644
--- a/engines/scumm/object.cpp
+++ b/engines/scumm/object.cpp
@@ -624,8 +624,16 @@ void ScummEngine::drawObject(int obj, int arg) {
const int xpos = od.x_pos / 8;
const int ypos = od.y_pos;
+ // In most cases we want to mask out the last three bits, though it is
+ // possible that this has already been done by resetRoomObject(). In
+ // later versions we need to keep those bits intact. See bug #13419 for
+ // an example of where this is important.
+
+ if (_game.version < 7)
+ od.height &= 0xFFFFFFF8;
+
width = od.width / 8;
- height = od.height &= 0xFFFFFFF8; // Mask out last 3 bits
+ height = od.height;
// Short circuit for objects which aren't visible at all.
if (width == 0 || xpos > _screenEndStrip || xpos + width < _screenStartStrip)
More information about the Scummvm-git-logs
mailing list