aboutsummaryrefslogtreecommitdiff
path: root/scumm/actor.cpp
diff options
context:
space:
mode:
authorTravis Howell2004-01-12 14:09:39 +0000
committerTravis Howell2004-01-12 14:09:39 +0000
commit31808345496fa66dd56407ffe17a0b32855bf277 (patch)
tree7c8d3bf0f3e5c4440422e8dbf653ab7b3461eda3 /scumm/actor.cpp
parent95de2117a20da3b9828a385b4a6713e4d9524aa8 (diff)
downloadscummvm-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.cpp12
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) {