[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.208,1.209 actor.h,1.48,1.49 akos.cpp,1.100,1.101 base-costume.h,1.17,1.18 script_v6.cpp,1.254,1.255

Travis Howell kirben at users.sourceforge.net
Mon Jan 12 06:10:05 CET 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv13292/scumm

Modified Files:
	actor.cpp actor.h akos.cpp base-costume.h script_v6.cpp 
Log Message:

Add skipLimb actor var, which is used by puttmoon.
Use forceClip for actorOps case 218, since it should have same effect.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.208
retrieving revision 1.209
diff -u -d -r1.208 -r1.209
--- actor.cpp	11 Jan 2004 08:59:51 -0000	1.208
+++ actor.cpp	12 Jan 2004 14:09:39 -0000	1.209
@@ -55,6 +55,7 @@
 	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 @@
 	}
 
 	elevation = 0;
+	skipLimb = false;
 	width = 24;
 	talkColor = 15;
 	talkPosX = 0;
@@ -989,6 +991,7 @@
 	}
 
 	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 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 @@
 		for (i = 0; i < 32; i++)
 			palette[i] = 0xFF;
 	}
+
+	skipLimb = false;
+
 }
 
 void Actor::startWalkActor(int destX, int destY, int dir) {

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.h,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- actor.h	6 Jan 2004 12:45:29 -0000	1.48
+++ actor.h	12 Jan 2004 14:09:39 -0000	1.49
@@ -106,6 +106,7 @@
 	int16 talkPosX, talkPosY;
 	uint16 talkScript, walkScript;
 	bool ignoreTurns;
+	bool skipLimb;
 	int8 layer;
 	uint16 sound[8];
 	CostumeData cost;

Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -d -r1.100 -r1.101
--- akos.cpp	12 Jan 2004 09:00:31 -0000	1.100
+++ akos.cpp	12 Jan 2004 14:09:39 -0000	1.101
@@ -259,6 +259,9 @@
 	byte result = 0;
 	int xmoveCur, ymoveCur;
 
+	if (_skipLimb)
+		return 0;
+
 	if (!cost.active[limb] || cost.stopped & (1 << limb))
 		return 0;
 

Index: base-costume.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/base-costume.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- base-costume.h	6 Jan 2004 12:45:29 -0000	1.17
+++ base-costume.h	12 Jan 2004 14:09:39 -0000	1.18
@@ -61,6 +61,8 @@
 	byte _scaleX, _scaleY;
 
 	int _draw_top, _draw_bottom;
+	bool _skipLimb;
+
 
 protected:
 	ScummEngine *_vm;
@@ -113,6 +115,8 @@
 		_xmove = _ymove = 0;
 		_mirror = false;
 		_width = _height = 0;
+		_skipLimb = 0;
+
 		
 		_outptr = 0;
 		_outwidth = _outheight = 0;

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.254
retrieving revision 1.255
diff -u -d -r1.254 -r1.255
--- script_v6.cpp	12 Jan 2004 09:00:31 -0000	1.254
+++ script_v6.cpp	12 Jan 2004 14:09:39 -0000	1.255
@@ -1784,10 +1784,10 @@
 
 			int top_actor = a->top;
 			int bottom_actor = a->bottom;
-//			a->_zbuf = 1; ???
+			a->forceClip = 1;
 			a->needRedraw = true;
 			a->drawActorCostume();
-//			a->_zbuf = 0; ???
+			a->forceClip = 0;
 			a->needRedraw = true;
 			a->drawActorCostume();
 			a->needRedraw = false;





More information about the Scummvm-git-logs mailing list