[Scummvm-git-logs] scummvm master -> 8d0a8d9df4496caefb5b79fc82b578a9ce5ee8ea
AndywinXp
noreply at scummvm.org
Sun Jun 23 08:20:39 UTC 2024
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:
8d0a8d9df4 SCUMM: HE: Fix shadow being overdrawn on some games
Commit: 8d0a8d9df4496caefb5b79fc82b578a9ce5ee8ea
https://github.com/scummvm/scummvm/commit/8d0a8d9df4496caefb5b79fc82b578a9ce5ee8ea
Author: AndywinXp (andywinxp at gmail.com)
Date: 2024-06-23T10:20:33+02:00
Commit Message:
SCUMM: HE: Fix shadow being overdrawn on some games
Closes ticket #15211:
"SCUMM: BASEBALL (97/2001/2003): Overdrawn shadows glitch"
Changed paths:
engines/scumm/actor.cpp
engines/scumm/he/script_v72he.cpp
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index a3549c9e699..6163a4f3d18 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -2923,10 +2923,12 @@ void ScummEngine_v70he::setActorRedrawFlags() {
return;
}
- if (_game.heversion >= 95) {
+ if (_game.heversion >= 90) {
for (int j = 1; j < _numActors; j++) {
- if (_actors[j]->_costume && _actors[j]->_heShadow)
+ if (_actors[j]->_costume && _actors[j]->_heShadow) {
_actors[j]->_needRedraw = true;
+ _actors[j]->_needBgReset = true;
+ }
}
}
@@ -3099,8 +3101,8 @@ void ScummEngine_v95he::resetActorBgs() {
// apparently breaks a bunch of other stuff though,
// and doesn't help us in any way...
//
- //if (!(testGfxOtherUsageBits(strip, act))
- // continue;
+ // if (!(testGfxOtherUsageBits(strip, act)))
+ // continue;
if (!(_actors[act]->_needBgReset))
continue;
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index e7e9cb70d95..59ef476d085 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -956,6 +956,14 @@ void ScummEngine_v72he::o72_actorOps() {
break;
case SO_SHADOW:
a->_heShadow = pop();
+
+ if (_game.heversion >= 80 && a->_heShadow) {
+ if (!_wiz->getColorMixBlockPtrForWiz(a->_heShadow)) {
+ debug(4, "o72_actorOps(): SO_SHADOW: Image %d missing shadow table", a->_heShadow);
+ a->_heShadow = 0;
+ }
+ }
+
a->_needRedraw = true;
a->_needBgReset = true;
More information about the Scummvm-git-logs
mailing list