[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