diff options
author | Travis Howell | 2004-01-12 14:09:39 +0000 |
---|---|---|
committer | Travis Howell | 2004-01-12 14:09:39 +0000 |
commit | 31808345496fa66dd56407ffe17a0b32855bf277 (patch) | |
tree | 7c8d3bf0f3e5c4440422e8dbf653ab7b3461eda3 /scumm/actor.cpp | |
parent | 95de2117a20da3b9828a385b4a6713e4d9524aa8 (diff) | |
download | scummvm-rg350-31808345496fa66dd56407ffe17a0b32855bf277.tar.gz scummvm-rg350-31808345496fa66dd56407ffe17a0b32855bf277.tar.bz2 scummvm-rg350-31808345496fa66dd56407ffe17a0b32855bf277.zip |
Add skipLimb actor var, which is used by puttmoon.
Use forceClip for actorOps case 218, since it should have same effect.
svn-id: r12340
Diffstat (limited to 'scumm/actor.cpp')
-rw-r--r-- | scumm/actor.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index 0342eb05ba..1787f44f1f 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -55,6 +55,7 @@ Actor::Actor() { frame = 0; walkbox = 0; animProgress = 0; + skipLimb = false; memset(animVariable, 0, sizeof(animVariable)); memset(palette, 0, sizeof(palette)); memset(sound, 0, sizeof(sound)); @@ -79,6 +80,7 @@ void Actor::initActor(int mode) { } elevation = 0; + skipLimb = false; width = 24; talkColor = 15; talkPosX = 0; @@ -989,6 +991,7 @@ void Actor::drawActorCostume() { } bcr->_draw_bottom = bottom = 0; + bcr->_skipLimb = (skipLimb != 0); // If the actor is partially hidden, redraw it next frame. // Only done for pre-AKOS, though. @@ -1205,6 +1208,12 @@ void ScummEngine::clearMsgQueue() { void Actor::setActorCostume(int c) { int i; + if ((_vm->_features & GF_HUMONGOUS) && (c == -1 || c == -2)) { + skipLimb = (c == -1); + needRedraw = true; + return; + } + costumeNeedsInit = true; if (_vm->_features & GF_NEW_COSTUMES) { @@ -1248,6 +1257,9 @@ void Actor::setActorCostume(int c) { for (i = 0; i < 32; i++) palette[i] = 0xFF; } + + skipLimb = false; + } void Actor::startWalkActor(int destX, int destY, int dir) { |