[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.276,1.277 actor.h,1.58,1.59 akos.cpp,1.153,1.154 base-costume.h,1.24,1.25 script_v7he.cpp,2.60,2.61

Travis Howell kirben at users.sourceforge.net
Fri Sep 3 17:20:01 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv556/scumm

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

Add actor cliping override for HE games.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.276
retrieving revision 1.277
diff -u -d -r1.276 -r1.277
--- actor.cpp	3 Sep 2004 19:54:58 -0000	1.276
+++ actor.cpp	4 Sep 2004 00:18:55 -0000	1.277
@@ -65,6 +65,11 @@
 	memset(&walkdata, 0, sizeof(ActorWalkData));
 	walkdata.point3.x = 32000;
 
+	clipOverride.right = 0;
+	clipOverride.left = 0;
+	clipOverride.top = 0;
+	clipOverride.bottom = 0;
+	
 	walkScript = 0;
 
 	initActor(1);
@@ -1016,6 +1021,8 @@
 			bcr->_actorX += 8;
 	}
 
+	bcr->_clipOverride = clipOverride;
+
 	if (_vm->_version == 4 && boxscale & 0x8000) {
 		bcr->_scaleX = bcr->_scaleY = _vm->getScale(walkbox, _pos.x, _pos.y);
 	} else {

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- actor.h	3 Sep 2004 19:54:58 -0000	1.58
+++ actor.h	4 Sep 2004 00:18:55 -0000	1.59
@@ -83,6 +83,7 @@
 
 public:
 	Common::Point _pos;
+	Common::Rect clipOverride;
 	int offs_x, offs_y;
 	int top, bottom;
 	uint width;

Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.153
retrieving revision 1.154
diff -u -d -r1.153 -r1.154
--- akos.cpp	3 Sep 2004 11:34:47 -0000	1.153
+++ akos.cpp	4 Sep 2004 00:18:55 -0000	1.154
@@ -739,6 +739,9 @@
 	v1.skip_width = _width;
 	v1.scaleXstep = _mirror ? 1 : -1;
 
+	if (_clipOverride.bottom < rect.bottom)
+		rect.bottom = _clipOverride.bottom;
+
 	if (_actorHitMode) {
 		if (_actorHitX < rect.left || _actorHitX >= rect.right || _actorHitY < rect.top || _actorHitY >= rect.bottom)
 			return 0;
@@ -1009,6 +1012,9 @@
 	maxw = _outwidth;
 	maxh = _outheight;
 
+	if (_clipOverride.bottom < clip.bottom)
+		clip.bottom = _clipOverride.bottom;
+
 	_vm->markRectAsDirty(kMainVirtScreen, clip, _actorID);
 
 	skip_x = 0;

Index: base-costume.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/base-costume.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- base-costume.h	29 Aug 2004 11:27:15 -0000	1.24
+++ base-costume.h	4 Sep 2004 00:18:55 -0000	1.25
@@ -51,6 +51,7 @@
  */
 class BaseCostumeRenderer {
 public:
+	Common::Rect _clipOverride;
 	byte _actorID;
 
 	byte _shadow_mode;
@@ -117,6 +118,11 @@
 		_width = _height = 0;
 		_skipLimb = 0;
 		
+		_clipOverride.right = 0;
+		_clipOverride.left = 0;
+		_clipOverride.top = 0;
+		_clipOverride.bottom = 0;
+
 		_outptr = 0;
 		_outwidth = _outheight = 0;
 	}

Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.60
retrieving revision 2.61
diff -u -d -r2.60 -r2.61
--- script_v7he.cpp	3 Sep 2004 06:57:38 -0000	2.60
+++ script_v7he.cpp	4 Sep 2004 00:18:55 -0000	2.61
@@ -763,6 +763,7 @@
 void ScummEngine_v7he::o7_kernelSetFunctions() {
 	int args[29];
 	int num;
+	Actor *a;
 
 	num = getStackList(args, ARRAYSIZE(args));
 
@@ -794,8 +795,8 @@
 		_fullRedraw = 1;
 		break;
 	case 30:
-		// Y clip of Actor
-		debug(1, "Actor %d Y Clip %d", args[1], args[2]);
+		a = derefActor(args[1], "o7_kernelSetFunctions: 30");
+		a->clipOverride.bottom = args[2];
 		break;
 	default:
 		error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);





More information about the Scummvm-git-logs mailing list