aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/actor.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index 746e26fe81..e57af33565 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -415,7 +415,6 @@ void Actor::setupActorScale()
void Actor::startAnimActor(int f)
{
- frame = f;
if (_vm->_features & GF_NEW_COSTUMES) {
switch (f) {
case 1001:
@@ -435,6 +434,8 @@ void Actor::startAnimActor(int f)
break;
}
+ frame = f;
+
if (costume != 0) {
animProgress = 0;
needRedraw = true;
@@ -464,6 +465,7 @@ void Actor::startAnimActor(int f)
}
assert(f != 0x3E);
+ frame = f;
// FIXME: This is a hack to fix decapitation, which somehow occurs only on
// the standFrame (CHORE mode 3). We hack around this by simply using the
@@ -1024,7 +1026,10 @@ void Actor::drawActorCostume()
ar.draw_top = top = 0x7fffffff;
ar.draw_bottom = bottom = 0;
- ar.drawCostume();
+ if (ar.drawCostume()) {
+ needBgReset = true;
+ needRedraw = true;
+ }
top = ar.draw_top;
bottom = ar.draw_bottom;
}