[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.278,1.279 actor.h,1.59,1.60 akos.cpp,1.156,1.157 script_v6he.cpp,2.108,2.109 scumm.cpp,1.165,1.166 scumm.h,1.466,1.467

Max Horn fingolfin at users.sourceforge.net
Sat Sep 4 03:30:01 CEST 2004


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

Modified Files:
	actor.cpp actor.h akos.cpp script_v6he.cpp scumm.cpp scumm.h 
Log Message:
cleanup (this actor clip stuff is really evil -- I have to agree with Kirben, it's totally unclear why they didn't just use the good old virt screen system...

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.278
retrieving revision 1.279
diff -u -d -r1.278 -r1.279
--- actor.cpp	4 Sep 2004 08:13:47 -0000	1.278
+++ actor.cpp	4 Sep 2004 10:29:06 -0000	1.279
@@ -133,11 +133,8 @@
 	walkScript = 0;
 	talkScript = 0;
 
-	clipOverride.right = _vm->_actorClipRight;
-	clipOverride.left = _vm->_actorClipLeft;
-	clipOverride.top = _vm->_actorClipTop;
-	clipOverride.bottom = _vm->_actorClipBottom;
-	
+	clipOverride = _vm->_actorClipOverride;
+
 	_vm->_classData[number] = (_vm->_version >= 7) ? _vm->_classData[0] : 0;
 }
 

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -d -r1.59 -r1.60
--- actor.h	4 Sep 2004 00:18:55 -0000	1.59
+++ actor.h	4 Sep 2004 10:29:06 -0000	1.60
@@ -82,8 +82,12 @@
 	static void initActorClass(ScummEngine *scumm);
 
 public:
+	/** The position of the actor inside the virtual screen. */
 	Common::Point _pos;
+	
+	/** HE specific: This rect is used to clip actor drawing. */
 	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.156
retrieving revision 1.157
diff -u -d -r1.156 -r1.157
--- akos.cpp	4 Sep 2004 08:13:47 -0000	1.156
+++ akos.cpp	4 Sep 2004 10:29:06 -0000	1.157
@@ -740,14 +740,7 @@
 	v1.scaleXstep = _mirror ? 1 : -1;
 
 	if (_vm->_heversion >= 71) {
-		if (rect.top < _clipOverride.top)
-			rect.top = _clipOverride.top;
-		if (rect.bottom > _clipOverride.bottom)
-			rect.bottom = _clipOverride.bottom;
-		if (rect.left < _clipOverride.left)
-			rect.left = _clipOverride.left;
-		if (rect.right > _clipOverride.right)
-			rect.right = _clipOverride.right;
+		rect.clip(_clipOverride);
 	}
 
 	if (_actorHitMode) {
@@ -1021,14 +1014,7 @@
 	maxh = _outheight;
 
 	if (_vm->_heversion >= 71) {
-		if (clip.top < _clipOverride.top)
-			clip.top = _clipOverride.top;
-		if (clip.bottom > _clipOverride.bottom)
-			clip.bottom = _clipOverride.bottom;
-		if (clip.left < _clipOverride.left)
-			clip.left = _clipOverride.left;
-		if (clip.right > _clipOverride.right)
-			clip.right = _clipOverride.right;
+		clip.clip(_clipOverride);
 	}
 
 	_vm->markRectAsDirty(kMainVirtScreen, clip, _actorID);

Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.108
retrieving revision 2.109
diff -u -d -r2.108 -r2.109
--- script_v6he.cpp	4 Sep 2004 08:13:47 -0000	2.108
+++ script_v6he.cpp	4 Sep 2004 10:29:06 -0000	2.109
@@ -571,18 +571,18 @@
 		break;
 	case 30:
 		// _heversion >= 70
-		_actorClipBottom = pop();
-		_actorClipRight = pop();
-		_actorClipTop = pop();
-		_actorClipLeft = pop();
+		_actorClipOverride.bottom = pop();
+		_actorClipOverride.right = pop();
+		_actorClipOverride.top = pop();
+		_actorClipOverride.left = pop();
 		warning("o6_actorOps: stub case %d", b);
 		break;
 	case 64:
 		// _heversion >= 72
-		_actorClipBottom = pop();
-		_actorClipRight = pop();
-		_actorClipTop = pop();
-		_actorClipLeft = pop();
+		_actorClipOverride.bottom = pop();
+		_actorClipOverride.right = pop();
+		_actorClipOverride.top = pop();
+		_actorClipOverride.left = pop();
 		warning("o6_actorOps: stub case %d", b);
 		break;
 	case 76:		// SO_COSTUME

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -d -r1.165 -r1.166
--- scumm.cpp	4 Sep 2004 08:13:48 -0000	1.165
+++ scumm.cpp	4 Sep 2004 10:29:06 -0000	1.166
@@ -654,10 +654,10 @@
 	_2byteFontPtr = 0;
 	_V1_talkingActor = 0;
 
-	_actorClipTop = 0;
-	_actorClipBottom = 479;
-	_actorClipLeft = 0;
-	_actorClipRight = 639;
+	_actorClipOverride.top = 0;
+	_actorClipOverride.bottom = 479;
+	_actorClipOverride.left = 0;
+	_actorClipOverride.right = 639;
 
 	_skipDrawObject = 0;
 	_skipProcessActors = 0;

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.466
retrieving revision 1.467
diff -u -d -r1.466 -r1.467
--- scumm.h	4 Sep 2004 08:13:48 -0000	1.466
+++ scumm.h	4 Sep 2004 10:29:06 -0000	1.467
@@ -849,10 +849,7 @@
 	int16 _queueTalkColor[16];
 	byte _queueTalkString[16][128];
 
-	int _actorClipTop;
-	int _actorClipBottom;
-	int _actorClipLeft;
-	int _actorClipRight;
+	Common::Rect _actorClipOverride;
 
 	bool akos_increaseAnims(const byte *akos, Actor *a);
 	bool akos_increaseAnim(Actor *a, int i, const byte *aksq, const uint16 *akfo, int numakfo);





More information about the Scummvm-git-logs mailing list