[Scummvm-cvs-logs] CVS: scummvm actor.cpp,1.74,1.75 actor.h,1.6,1.7 akos.cpp,1.20,1.21 akos.h,1.8,1.9 scumm.h,1.168,1.169 script.cpp,1.60,1.61 gfx.cpp,1.93,1.94 boxes.cpp,1.31,1.32

Max Horn fingolfin at users.sourceforge.net
Thu May 23 14:23:02 CEST 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv6536

Modified Files:
	actor.cpp actor.h akos.cpp akos.h scumm.h script.cpp gfx.cpp 
	boxes.cpp 
Log Message:
removed some debug output I left in accidentally in my last checkin; removed some uses of g_scumm (see Endy, I promised I'd do it <g>); removed getSideOfLine(); some clean up

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- actor.cpp	23 May 2002 00:45:59 -0000	1.74
+++ actor.cpp	23 May 2002 21:22:06 -0000	1.75
@@ -23,6 +23,7 @@
 #include "stdafx.h"
 #include "scumm.h"
 #include "actor.h"
+#include "akos.h"
 
 #include <math.h>
 
@@ -76,16 +77,16 @@
 	walk_script = 0;
 	talk_script = 0;
 
-	if (_scumm->_features & GF_AFTER_V7) {
-		_scumm->_classData[number] = _scumm->_classData[0];
+	if (_vm->_features & GF_AFTER_V7) {
+		_vm->_classData[number] = _vm->_classData[0];
 	} else {
-		_scumm->_classData[number] = 0;
+		_vm->_classData[number] = 0;
 	}
 }
 
 void Actor::stopActorMoving()
 {
-	_scumm->stopScriptNr(walk_script);
+	_vm->stopScriptNr(walk_script);
 	moving = 0;
 }
 
@@ -168,7 +169,7 @@
 	walkdata.xfrac = 0;
 	walkdata.yfrac = 0;
 
-	newDirection = _scumm->getAngleFromPos(XYFactor, YXFactor);
+	newDirection = _vm->getAngleFromPos(XYFactor, YXFactor);
 
 	return actorWalkStep();
 }
@@ -181,7 +182,7 @@
 	bool flipY;
 	
 	if (!ignoreBoxes) {
-		specdir = _scumm->_extraBoxFlags[walkbox];
+		specdir = _vm->_extraBoxFlags[walkbox];
 		if (specdir) {
 			if (specdir & 0x8000) {
 				dir = specdir & 0x3FFF;
@@ -190,19 +191,19 @@
 			}
 		}
 
-		flags = _scumm->getBoxFlags(walkbox);
+		flags = _vm->getBoxFlags(walkbox);
 
 		flipX = (walkdata.XYFactor > 0);
 		flipY = (walkdata.YXFactor > 0);
 
 		// Check for X-Flip
-		if ((flags & 0x08) || _scumm->getClass(number, 0x1E)) {
+		if ((flags & 0x08) || _vm->getClass(number, 0x1E)) {
 			dir = 360 - dir;
 			flipX = !flipX;
 		}
 
 		// Check for Y-Flip
-		if ((flags & 0x10) || _scumm->getClass(number, 0x1D)) {
+		if ((flags & 0x10) || _vm->getClass(number, 0x1D)) {
 			dir = 180 - dir;
 			flipY = !flipY;
 		}
@@ -241,7 +242,7 @@
 	int num;
 	bool shouldInterpolate;
 	
-	dirType = _scumm->akos_hasManyDirections(this);
+	dirType = _vm->akos_hasManyDirections(this);
 
 	from = Scumm::toSimpleDir(dirType, facing);
 	dir = remapDirection(newDirection);
@@ -272,7 +273,7 @@
 void Actor::setActorBox(int box)
 {
 	walkbox = box;
-	mask = _scumm->getMaskFromBox(box);
+	mask = _vm->getMaskFromBox(box);
 
 	setupActorScale();
 }
@@ -300,7 +301,7 @@
 	actorY = y;
 
 	if (walkbox != walkdata.curbox &&
-			_scumm->checkXYInBoxBounds(walkdata.curbox, actorX, actorY)) {
+			_vm->checkXYInBoxBounds(walkdata.curbox, actorX, actorY)) {
 		setActorBox(walkdata.curbox);
 	}
 
@@ -344,10 +345,10 @@
 
 	// FIXME: Special 'no scaling' class for MI1 VGA Floppy
 	//	      Not totally sure if this is correct.
-	if(_scumm->_gameId == GID_MONKEY_VGA && _scumm->getClass(number, 0x96)) 
+	if(_vm->_gameId == GID_MONKEY_VGA && _vm->getClass(number, 0x96)) 
 		return;
 
-	if (_scumm->_features & GF_NO_SCALLING) {
+	if (_vm->_features & GF_NO_SCALLING) {
 		scalex = 0xFF;
 		scaley = 0xFF;
 		return;
@@ -356,14 +357,14 @@
 	if (ignoreBoxes != 0)
 		return;
 
-	if(_scumm->getBoxFlags(walkbox) & 0x20)
+	if(_vm->getBoxFlags(walkbox) & 0x20)
 		return;
 
-	scale = _scumm->getBoxScale(walkbox);
+	scale = _vm->getBoxScale(walkbox);
 
 	if (scale & 0x8000) {
 		scale = (scale & 0x7FFF) + 1;
-		resptr = _scumm->getResourceAddress(rtScaleTable, scale);
+		resptr = _vm->getResourceAddress(rtScaleTable, scale);
 		if (resptr == NULL)
 			error("Scale table %d not defined", scale);
 		int theY = y;
@@ -378,7 +379,7 @@
 		warning("Actor %d at %d, scale %d out of range", number, y, scale);
 
 	// FIXME - Quick fix to ft's fuel tower bug (by yazoo)
-	if(scale == 1 && _scumm->_currentRoom == 76)
+	if(scale == 1 && _vm->_currentRoom == 76)
 		scale = 0xFF;
 
 	scalex = (byte)scale;
@@ -387,7 +388,7 @@
 
 void Actor::startAnimActor(int frame)
 {
-	if (_scumm->_features & GF_NEW_COSTUMES) {		
+	if (_vm->_features & GF_NEW_COSTUMES) {		
 		switch (frame) {
 		case 1001:
 			frame = initFrame;
@@ -412,7 +413,7 @@
 			needBgReset = true;
 			if (frame == initFrame)
 				cost.reset();
-			_scumm->akos_decodeData(this, frame, (uint) - 1);
+			_vm->akos_decodeData(this, frame, (uint) - 1);
 		}
 
 	} else {
@@ -443,7 +444,7 @@
 				cost.reset();
 
 			if (frame != 0x3E) {
-				_scumm->cost_decodeData(this, frame, (uint) - 1);
+				_vm->cost_decodeData(this, frame, (uint) - 1);
 			}
 		}
 
@@ -470,10 +471,10 @@
 		vald = cost.frame[i];
 		if (vald == 0xFFFF)
 			continue;
-		if (_scumm->_features & GF_AFTER_V7)
-			_scumm->akos_decodeData(this, vald, aMask);
+		if (_vm->_features & GF_AFTER_V7)
+			_vm->akos_decodeData(this, vald, aMask);
 		else
-			_scumm->cost_decodeData(this, vald, aMask);
+			_vm->cost_decodeData(this, vald, aMask);
 	}
 
 	needRedraw = true;
@@ -611,7 +612,7 @@
 	AdjustBoxResult abr;
 	byte flags;
 
-	abr = _scumm->adjustXYToBeInBox(this, x, y, 0);
+	abr = _vm->adjustXYToBeInBox(this, x, y, 0);
 
 	x = abr.x;
 	y = abr.y;
@@ -624,11 +625,11 @@
 	moving = 0;
 	cost.animCounter2 = 0;
 
-	if (_scumm->_features & GF_AFTER_V7) {
+	if (_vm->_features & GF_AFTER_V7) {
 		stopActorMoving();
 	}
 	
-	flags = _scumm->getBoxFlags(walkbox);
+	flags = _vm->getBoxFlags(walkbox);
 	if (flags & 7) {
 		turnToDirection(facing);
 	}
@@ -664,12 +665,12 @@
 
 void Actor::showActor()
 {
-	if (_scumm->_currentRoom == 0 || visible)
+	if (_vm->_currentRoom == 0 || visible)
 		return;
 
 	adjustActorPos();
 
-	_scumm->ensureResourceLoaded(rtCostume, costume);
+	_vm->ensureResourceLoaded(rtCostume, costume);
 
 	if (costumeNeedsInit) {
 		startAnimActor(initFrame);
@@ -773,7 +774,7 @@
 		args[2] = angle;
 		args[0] = number;
 		args[1] = cmd;
-		_scumm->runScript(walk_script, 1, 0, args);
+		_vm->runScript(walk_script, 1, 0, args);
 	} else*/ {
 		switch (cmd) {
 		case 1:										/* start walk */
@@ -846,7 +847,7 @@
 
 	walkdata.curbox = j;
 
-	if (_scumm->findPathTowards(this, walkbox, j, walkdata.destbox)) {
+	if (_vm->findPathTowards(this, walkbox, j, walkdata.destbox)) {
 		moving |= MF_LAST_LEG;
 		calcMovementFactor(walkdata.destx, walkdata.desty);
 		return;
@@ -856,43 +857,43 @@
 #if 1
 	do {
 		moving &= ~MF_NEW_LEG;
-		if ((!walkbox && (!(_scumm->_features & GF_SMALL_HEADER)))) {
+		if ((!walkbox && (!(_vm->_features & GF_SMALL_HEADER)))) {
 			setActorBox(walkdata.destbox);
 			walkdata.curbox = walkdata.destbox;
 			break;
 		}
 		if (walkbox == walkdata.destbox)
 			break;
-		j = _scumm->getPathToDestBox(walkbox, walkdata.destbox);
+		j = _vm->getPathToDestBox(walkbox, walkdata.destbox);
 		if (j == -1 || j > 0xF0) {
 			walkdata.destbox = walkbox;
 			moving |= MF_LAST_LEG;
 			return;
 		}
 		walkdata.curbox = j;
-		if (_scumm->_features & GF_OLD256) {
-			_scumm->findPathTowardsOld(this, walkbox, j, walkdata.destbox);
-			if (_scumm->gateLoc[2].x == 32000 && _scumm->gateLoc[3].x == 32000) {
+		if (_vm->_features & GF_OLD256) {
+			_vm->findPathTowardsOld(this, walkbox, j, walkdata.destbox);
+			if (_vm->gateLoc[2].x == 32000 && _vm->gateLoc[3].x == 32000) {
 				moving |= MF_LAST_LEG;
 				calcMovementFactor(walkdata.destx, walkdata.desty);
 				return;
 			}
 
-			if (_scumm->gateLoc[2].x != 32000) {
-				if (calcMovementFactor(_scumm->gateLoc[2].x, _scumm->gateLoc[2].y)) {
-					walkdata.destx = _scumm->gateLoc[3].x;
-					walkdata.desty = _scumm->gateLoc[3].y;
+			if (_vm->gateLoc[2].x != 32000) {
+				if (calcMovementFactor(_vm->gateLoc[2].x, _vm->gateLoc[2].y)) {
+					walkdata.destx = _vm->gateLoc[3].x;
+					walkdata.desty = _vm->gateLoc[3].y;
 					return;
 				}
 			}
 
-			if (calcMovementFactor(_scumm->gateLoc[3].x, _scumm->gateLoc[3].y))
+			if (calcMovementFactor(_vm->gateLoc[3].x, _vm->gateLoc[3].y))
 				return;
 
 		} else {
-			if (_scumm->findPathTowards(this, walkbox, j, walkdata.destbox))
+			if (_vm->findPathTowards(this, walkbox, j, walkdata.destbox))
 				break;
-			if (calcMovementFactor(_scumm->_foundPathX, _scumm->_foundPathY))
+			if (calcMovementFactor(_vm->_foundPathX, _vm->_foundPathY))
 				return;
 		}
 
@@ -945,19 +946,19 @@
 
 void Actor::drawActorCostume()
 {
-	if (!(_scumm->_features & GF_AFTER_V7)) {
+	if (!(_vm->_features & GF_AFTER_V7)) {
 		CostumeRenderer cr;
 
 		if (!needRedraw)
 			return;
 		
-		if (_scumm->getClass(number, 20))
+		if (_vm->getClass(number, 20))
 			mask = 0;
-		else if (_scumm->getClass(number, 21))
+		else if (_vm->getClass(number, 21))
 			forceClip = 1;
 
 		// FIXME: ugly fix for samnmax inventory
-		if (_scumm->_gameId==GID_SAMNMAX && _scumm->getState(995))
+		if (_vm->_gameId==GID_SAMNMAX && _vm->getState(995))
 			return;
 
 		needRedraw = false;
@@ -967,21 +968,21 @@
 		/* First, zero initialize all fields */
 		memset(&cr, 0, sizeof(cr));
 
-		cr._actorX = x - _scumm->virtscr->xstart;
+		cr._actorX = x - _vm->virtscr->xstart;
 		cr._actorY = y - elevation;
 		cr._scaleX = scalex;
 		cr._scaleY = scaley;
 
-		cr._outheight = _scumm->virtscr->height;
-		cr._vm = _scumm;
+		cr._outheight = _vm->virtscr->height;
+		cr._vm = _vm;
 
 		cr._zbuf = mask;
-		if (cr._zbuf > _scumm->gdi._numZBuffer)
-			cr._zbuf = (byte)_scumm->gdi._numZBuffer;
+		if (cr._zbuf > _vm->gdi._numZBuffer)
+			cr._zbuf = (byte)_vm->gdi._numZBuffer;
 		if (forceClip)
 			cr._zbuf = forceClip;
 
-		cr._shadow_table = _scumm->_shadowPalette;
+		cr._shadow_table = _vm->_shadowPalette;
 
 		cr.setCostume(costume);
 		cr.setPalette(palette);
@@ -997,7 +998,7 @@
 			needRedraw = true;
 		}
 	} else {
-		AkosRenderer ar;
+		AkosRenderer ar(_vm);
 
 		if (!needRedraw)
 			return;
@@ -1009,24 +1010,24 @@
 		/* First, zero initialize all fields */
 		memset(&ar, 0, sizeof(ar));
 
-		ar.x = x - _scumm->virtscr->xstart;
+		ar.x = x - _vm->virtscr->xstart;
 		ar.y = y - elevation;
 		ar.scale_x = scalex;
 		ar.scale_y = scaley;
 		ar.clipping = forceClip;
 		if (ar.clipping == 100) {
 			ar.clipping = mask;
-			if (ar.clipping > (byte)_scumm->gdi._numZBuffer)
-				ar.clipping = _scumm->gdi._numZBuffer;
+			if (ar.clipping > (byte)_vm->gdi._numZBuffer)
+				ar.clipping = _vm->gdi._numZBuffer;
 		}
-		ar.charsetmask = _scumm->_vars[_scumm->VAR_CHARSET_MASK] != 0;
+		ar.charsetmask = _vm->_vars[_vm->VAR_CHARSET_MASK] != 0;
 
-		ar.outptr = _scumm->virtscr->screenPtr + _scumm->virtscr->xstart;
-		ar.outwidth = _scumm->virtscr->width;
-		ar.outheight = _scumm->virtscr->height;
+		ar.outptr = _vm->virtscr->screenPtr + _vm->virtscr->xstart;
+		ar.outwidth = _vm->virtscr->width;
+		ar.outheight = _vm->virtscr->height;
 
 		ar.shadow_mode = shadow_mode;
-		ar.shadow_table = _scumm->_shadowPalette;
+		ar.shadow_table = _vm->_shadowPalette;
 
 		ar.setCostume(costume);
 		ar.setPalette(palette);
@@ -1053,17 +1054,17 @@
 	if (animProgress >= animSpeed) {
 		animProgress = 0;
 
-		if (_scumm->_features & GF_AFTER_V7) {
-			byte *akos = _scumm->getResourceAddress(rtCostume, costume);
+		if (_vm->_features & GF_AFTER_V7) {
+			byte *akos = _vm->getResourceAddress(rtCostume, costume);
 			assert(akos);
-			if (_scumm->akos_increaseAnims(akos, this)) {
+			if (_vm->akos_increaseAnims(akos, this)) {
 				needRedraw = true;
 				needBgReset = true;
 			}
 		} else {
 			LoadedCostume lc;
-			_scumm->loadCostume(&lc, costume);
-			if (_scumm->cost_increaseAnims(&lc, this)) {
+			_vm->loadCostume(&lc, costume);
+			if (_vm->cost_increaseAnims(&lc, this)) {
 				needRedraw = true;
 				needBgReset = true;
 			}
@@ -1160,8 +1161,6 @@
 
 	costumeNeedsInit = true;
 
-	debug(1, "setActorCostume (actor=%d, costume=%d)", (int)number, (int)c);
-
 	if (visible) {
 		hideActor();
 		cost.reset();
@@ -1180,7 +1179,7 @@
 {
 	AdjustBoxResult abr;
 
-	abr = _scumm->adjustXYToBeInBox(this, destX, destY, walkbox);
+	abr = _vm->adjustXYToBeInBox(this, destX, destY, walkbox);
 
 	if (!isInCurrentRoom()) {
 		x = abr.x;
@@ -1194,10 +1193,10 @@
 		abr.dist = 0;
 		walkbox = 0;
 	} else {
-		if (_scumm->checkXYInBoxBounds(walkdata.destbox, abr.x, abr.y)) {
+		if (_vm->checkXYInBoxBounds(walkdata.destbox, abr.x, abr.y)) {
 			abr.dist = walkdata.destbox;
 		} else {
-			abr = _scumm->adjustXYToBeInBox(this, abr.x, abr.y, walkbox);
+			abr = _vm->adjustXYToBeInBox(this, abr.x, abr.y, walkbox);
 		}
 		if (moving && walkdata.destdir == dir
 				&& walkdata.destx == abr.x && walkdata.desty == abr.y)
@@ -1221,7 +1220,7 @@
 
 byte *Actor::getActorName()
 {
-	byte *ptr = _scumm->getResourceAddress(rtActorName, number);
+	byte *ptr = _vm->getResourceAddress(rtActorName, number);
 	if (ptr == NULL)
 		return (byte *)" ";
 	return ptr;
@@ -1240,12 +1239,12 @@
 		return;
 	}
 
-	if (costume < 1 || costume >= _scumm->_numCostumes - 1) {
+	if (costume < 1 || costume >= _vm->_numCostumes - 1) {
 		warning("Remap actor %d invalid costume", number, costume);
 		return;
 	}
 
-	akos = _scumm->getResourceAddress(rtCostume, costume);
+	akos = _vm->getResourceAddress(rtCostume, costume);
 	akpl = findResource(MKID('AKPL'), akos);
 
 	//get num palette entries
@@ -1279,7 +1278,7 @@
 				g = (g * g_fact) >> 8;
 			if (b_fact != 256)
 				b = (b * b_fact) >> 8;
-			palette[i] = _scumm->remapPaletteColor(r, g, b, threshold);
+			palette[i] = _vm->remapPaletteColor(r, g, b, threshold);
 		}
 	}
 }
@@ -1309,7 +1308,7 @@
 			return;
 		}
 
-		next_box = _scumm->getPathToDestBox(walkbox, walkdata.destbox);
+		next_box = _vm->getPathToDestBox(walkbox, walkdata.destbox);
 
 		if (next_box == -1) {
 			moving |= MF_LAST_LEG;
@@ -1318,27 +1317,27 @@
 
 		walkdata.curbox = next_box;
 
-		_scumm->findPathTowardsOld(this, walkbox, next_box, walkdata.destbox);
-		if (_scumm->gateLoc[2].x == 32000 && _scumm->gateLoc[3].x == 32000) {
+		_vm->findPathTowardsOld(this, walkbox, next_box, walkdata.destbox);
+		if (_vm->gateLoc[2].x == 32000 && _vm->gateLoc[3].x == 32000) {
 			moving |= MF_LAST_LEG;
 			calcMovementFactor(walkdata.destx, walkdata.desty);
 			return;
 		}
 
-		if (_scumm->gateLoc[2].x != 32000) {
-			if (calcMovementFactor(_scumm->gateLoc[2].x, _scumm->gateLoc[2].y)) {
+		if (_vm->gateLoc[2].x != 32000) {
+			if (calcMovementFactor(_vm->gateLoc[2].x, _vm->gateLoc[2].y)) {
 				// FIXME - why is the first actor used here?!? Somebody please add a comment
-				_scumm->getFirstActor()->walkdata.point3x = _scumm->gateLoc[3].x;
-				_scumm->getFirstActor()->walkdata.point3y = _scumm->gateLoc[3].y;
+				_vm->getFirstActor()->walkdata.point3x = _vm->gateLoc[3].x;
+				_vm->getFirstActor()->walkdata.point3y = _vm->gateLoc[3].y;
 				return;
 			}
 		}
 
-		if (calcMovementFactor(_scumm->gateLoc[3].x, _scumm->gateLoc[3].y))
+		if (calcMovementFactor(_vm->gateLoc[3].x, _vm->gateLoc[3].y))
 			return;
 
 		walkbox = walkdata.destbox;
-		mask = _scumm->getMaskFromBox(walkbox);
+		mask = _vm->getMaskFromBox(walkbox);
 		goto restart;
 
 	}
@@ -1373,7 +1372,7 @@
 	}
 
 	walkbox = walkdata.curbox;
-	mask = _scumm->getMaskFromBox(walkbox);
+	mask = _vm->getMaskFromBox(walkbox);
 	moving &= MF_IN_LEG;
 	moving |= MF_NEW_LEG;
 	goto restart;

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- actor.h	23 May 2002 00:37:00 -0000	1.6
+++ actor.h	23 May 2002 21:22:07 -0000	1.7
@@ -29,6 +29,13 @@
 
 class Scumm;
 
+enum MoveFlags {
+	MF_NEW_LEG = 1,
+	MF_IN_LEG = 2,
+	MF_TURN = 4,
+	MF_LAST_LEG = 8
+};
+
 struct ActorWalkData {
 	int16 destx,desty;			// Final destination
 	byte destbox;
@@ -99,13 +106,13 @@
 	byte palette[64];
 
 protected:
-	Scumm	*_scumm;
+	Scumm	*_vm;
 
 public:
 
 	// Constructor, sets all data to 0
 	Actor() { memset(this, 0, sizeof(Actor)); }
-    void initActorClass(Scumm *scumm) {_scumm = scumm;}
+    void initActorClass(Scumm *scumm) {_vm = scumm;}
 //protected:
 	void hideActor();
 	void showActor();
@@ -136,7 +143,7 @@
 	void remapActor(int b, int c, int d, int e);
 	void walkActorOld();
 	
-	bool isInCurrentRoom()					{ return room == _scumm->_currentRoom; }
+	bool isInCurrentRoom()					{ return room == _vm->_currentRoom; }
 
 	int getAnimVar(byte var)				{ return animVariable[var]; }
 	void setAnimVar(byte var, int value)	{ animVariable[var] = value; }

Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/akos.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- akos.cpp	23 May 2002 00:37:00 -0000	1.20
+++ akos.cpp	23 May 2002 21:22:07 -0000	1.21
@@ -22,6 +22,7 @@
 #include "stdafx.h"
 #include "scumm.h"
 #include "actor.h"
+#include "akos.h"
 
 bool Scumm::akos_hasManyDirections(Actor * a)
 {
@@ -155,8 +156,8 @@
 	byte *the_akpl;
 	uint size, i;
 
-	the_akpl = g_scumm->findResourceData(MKID('AKPL'), akos);
-	size = g_scumm->getResourceDataSize(akpl);
+	the_akpl = _vm->findResourceData(MKID('AKPL'), akos);
+	size = _vm->getResourceDataSize(akpl);
 
 	if (size > 256)
 		error("akos_setPalette: %d is too many colors", size);
@@ -168,21 +169,21 @@
 
 void AkosRenderer::setCostume(int costume)
 {
-	akos = g_scumm->getResourceAddress(rtCostume, costume);
+	akos = _vm->getResourceAddress(rtCostume, costume);
 	assert(akos);
 
-	akhd = (AkosHeader *) g_scumm->findResourceData(MKID('AKHD'), akos);
-	akof = (AkosOffset *) g_scumm->findResourceData(MKID('AKOF'), akos);
-	akci = g_scumm->findResourceData(MKID('AKCI'), akos);
-	aksq = g_scumm->findResourceData(MKID('AKSQ'), akos);
-	akcd = g_scumm->findResourceData(MKID('AKCD'), akos);
-	akpl = g_scumm->findResourceData(MKID('AKPL'), akos);
+	akhd = (AkosHeader *) _vm->findResourceData(MKID('AKHD'), akos);
+	akof = (AkosOffset *) _vm->findResourceData(MKID('AKOF'), akos);
+	akci = _vm->findResourceData(MKID('AKCI'), akos);
+	aksq = _vm->findResourceData(MKID('AKSQ'), akos);
+	akcd = _vm->findResourceData(MKID('AKCD'), akos);
+	akpl = _vm->findResourceData(MKID('AKPL'), akos);
 	codec = READ_LE_UINT16(&akhd->codec);
 }
 
 void AkosRenderer::setFacing(Actor * a)
 {
-	mirror = (g_scumm->newDirToOldDir(a->facing) != 0 || akhd->flags & 1);
+	mirror = (_vm->newDirToOldDir(a->facing) != 0 || akhd->flags & 1);
 	if (a->flip)
 		mirror ^= 1;
 }
@@ -584,14 +585,14 @@
 
 
 
-	if(g_scumm->isGlobInMemory(rtString,g_scumm->_vars[g_scumm->VAR_CUSTOMSCALETABLE])) {
-		v1.scaletable = g_scumm->getStringAddressVar(g_scumm->VAR_CUSTOMSCALETABLE);
+	if(_vm->isGlobInMemory(rtString,_vm->_vars[_vm->VAR_CUSTOMSCALETABLE])) {
+		v1.scaletable = _vm->getStringAddressVar(_vm->VAR_CUSTOMSCALETABLE);
 	} else {
 		v1.scaletable = default_scale_table;
 	}
 
 	/* Setup color decoding variables */
-	num_colors = g_scumm->getResourceDataSize(akpl);
+	num_colors = _vm->getResourceDataSize(akpl);
 	if (num_colors == 32) {
 		v1.mask = (1 << 3) - 1;
 		v1.shl = 3;
@@ -757,7 +758,7 @@
 	if (v1.skip_width <= 0 || height <= 0)
 		return;
 
-	g_scumm->updateDirtyRect(0, x_left, x_right, y_top, y_bottom, 1 << dirty_id);
+	_vm->updateDirtyRect(0, x_left, x_right, y_top, y_bottom, 1 << dirty_id);
 
 	y_clipping = ((uint) y_bottom > outheight || y_top < 0);
 
@@ -779,18 +780,18 @@
 
 	masking = false;
 	if (clipping) {
-		masking = g_scumm->isMaskActiveAt(x_left, y_top, x_right, y_bottom,
-														 g_scumm->getResourceAddress(rtBuffer, 9) +
-														 g_scumm->gdi._imgBufOffs[clipping] +
-														 g_scumm->_screenStartStrip) != 0;
+		masking = _vm->isMaskActiveAt(x_left, y_top, x_right, y_bottom,
+														 _vm->getResourceAddress(rtBuffer, 9) +
+														 _vm->gdi._imgBufOffs[clipping] +
+														 _vm->_screenStartStrip) != 0;
 	}
 
 	v1.mask_ptr = NULL;
 
 	if (masking || charsetmask || shadow_mode) {
 		v1.mask_ptr =
-			g_scumm->getResourceAddress(rtBuffer, 9) + cur_y * 40 + g_scumm->_screenStartStrip;
-		v1.imgbufoffs = g_scumm->gdi._imgBufOffs[clipping];
+			_vm->getResourceAddress(rtBuffer, 9) + cur_y * 40 + _vm->_screenStartStrip;
+		v1.imgbufoffs = _vm->gdi._imgBufOffs[clipping];
 		if (!charsetmask && masking) {
 			v1.mask_ptr += v1.imgbufoffs;
 			v1.imgbufoffs = 0;
@@ -904,7 +905,7 @@
 	int top;
 	int bottom;
 
-	vs = &g_scumm->virtscr[0];
+	vs = &_vm->virtscr[0];
 	//setBlastObjectMode(shadow_mode); // not implemented yet
 	moveX=move_x_cur;
 	moveY=move_y_cur;
@@ -930,7 +931,7 @@
 	draw_top = 0;
 	draw_bottom = 200;
 
-	g_scumm->updateDirtyRect(0, left, right+1, top, bottom+1, 1 << dirty_id);
+	_vm->updateDirtyRect(0, left, right+1, top, bottom+1, 1 << dirty_id);
 
 	bdd.dataptr = srcptr;
 	bdd.out = vs->screenPtr;
@@ -943,7 +944,7 @@
 	bdd.x = left+1;
 	bdd.y = top;
 
-	g_scumm->drawBomp(&bdd,0,bdd.dataptr,0,0);
+	_vm->drawBomp(&bdd,0,bdd.dataptr,0,0);
 }
 
 void AkosRenderer::codec16()

Index: akos.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/akos.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- akos.h	23 May 2002 00:37:00 -0000	1.8
+++ akos.h	23 May 2002 21:22:07 -0000	1.9
@@ -104,8 +104,15 @@
 	byte *akcd;
 
 	byte palette[256];
-	
+
+protected:
+	Scumm	*_vm;
+
 public:
+
+	// Constructor, sets all data to 0
+	AkosRenderer(Scumm *scumm) { memset(this, 0, sizeof(AkosRenderer)); _vm = scumm; }
+
 	bool drawCostume();
 	void setPalette(byte *palette);
 	void setCostume(int costume);

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -d -r1.168 -r1.169
--- scumm.h	23 May 2002 00:37:00 -0000	1.168
+++ scumm.h	23 May 2002 21:22:07 -0000	1.169
@@ -276,13 +276,6 @@
 	RF_USAGE_MAX = RF_USAGE
 };
 
-enum MoveFlags {
-	MF_NEW_LEG = 1,
-	MF_IN_LEG = 2,
-	MF_TURN = 4,
-	MF_LAST_LEG = 8
-};
-
 #define _maxRooms res.num[rtRoom]
 #define _maxScripts res.num[rtScript]
 #define _maxCostumes res.num[rtCostume]
@@ -505,7 +498,6 @@
 
 #include "gfx.h"
 #include "boxes.h"
-#include "akos.h"
 #include "smush.h"
 
 class Scumm {
@@ -1182,14 +1174,13 @@
 	PathNode *unkMatrixProc2(PathVertex *vtx, int i);
 	bool areBoxesNeighbours(int i, int j);
 	void addToBoxMatrix(byte b);
-	int CompareSlope(int X1,int Y1,int X2,int Y2,int X3,int Y3);
+	bool compareSlope(int X1,int Y1,int X2,int Y2,int X3,int Y3);
 	void SetGate(int line1,int line2, int polyx[8], int polyy[8]);
 	void *addToBoxVertexHeap(int size);
 	PathVertex *addPathVertex();
 	bool checkXYInBoxBounds(int box, int x, int y);
 	uint distanceFromPt(int x, int y, int ptx, int pty);
 	ScummPoint closestPtOnLine(int ulx, int uly, int llx, int lly, int x, int y);
-	bool getSideOfLine(int x1,int y1, int x2, int y2, int x, int y, int box);
 	void getBoxCoordinates(int boxnum, BoxCoords *bc);
 	byte getMaskFromBox(int box);
 	Box *getBoxBaseAddr(int box);

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- script.cpp	20 May 2002 16:02:29 -0000	1.60
+++ script.cpp	23 May 2002 21:22:07 -0000	1.61
@@ -907,7 +907,7 @@
 			a->startAnimActor(a->standFrame);
 			break;
 		case 3:
-			a->moving &= ~4;
+			a->moving &= ~MF_TURN;
 			a->setActorDirection(dir);
 			break;
 		case 4:
@@ -933,7 +933,7 @@
 			a->startAnimActor(a->standFrame);
 			break;
 		case 0x3E:
-			a->moving &= ~4;
+			a->moving &= ~MF_TURN;
 			a->setActorDirection(oldDirToNewDir(dir));
 			break;
 		case 0x3D:

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -d -r1.93 -r1.94
--- gfx.cpp	22 May 2002 22:36:58 -0000	1.93
+++ gfx.cpp	23 May 2002 21:22:08 -0000	1.94
@@ -1267,7 +1267,6 @@
 	} while (--_tempNumLines);
 }
 
-
 void Gdi::unkDecode4()
 {
 	byte *src = _smap_ptr;

Index: boxes.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/boxes.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- boxes.cpp	15 May 2002 07:38:33 -0000	1.31
+++ boxes.cpp	23 May 2002 21:22:08 -0000	1.32
@@ -131,16 +131,16 @@
 			return 1;
 	}
 
-	if (!getSideOfLine(box.ul.x, box.ul.y, box.ur.x, box.ur.y, x, y, b))
+	if (!compareSlope(box.ul.x, box.ul.y, box.ur.x, box.ur.y, x, y))
 		return 0;
 
-	if (!getSideOfLine(box.ur.x, box.ur.y, box.ll.x, box.ll.y, x, y, b))
+	if (!compareSlope(box.ur.x, box.ur.y, box.ll.x, box.ll.y, x, y))
 		return 0;
 
-	if (!getSideOfLine(box.ll.x, box.ll.y, box.lr.x, box.lr.y, x, y, b))
+	if (!compareSlope(box.ll.x, box.ll.y, box.lr.x, box.lr.y, x, y))
 		return 0;
 
-	if (!getSideOfLine(box.lr.x, box.lr.y, box.ul.x, box.ul.y, x, y, b))
+	if (!compareSlope(box.lr.x, box.lr.y, box.ul.x, box.ul.y, x, y))
 		return 0;
 
 	return 1;
@@ -187,12 +187,6 @@
 	return diffx + diffy;
 }
 
-bool Scumm::getSideOfLine(int x1, int y1, int x2, int y2, int x, int y,
-													int box)
-{
-	return (x - x1) * (y2 - y1) <= (y - y1) * (x2 - x1);
-}
-
 ScummPoint Scumm::closestPtOnLine(int ulx, int uly, int llx, int lly, int x,
 																	int y)
 {
@@ -885,10 +879,10 @@
 		gateLoc[4].y = actor->walkdata.desty;
 
 		if (getMaskFromBox(trap1) == getMaskFromBox(trap2) || 1) {
-			if (CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate1ax, gate1ay) !=
-					CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate1bx, gate1by) &&
-					CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate2ax, gate2ay) !=
-					CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate2bx, gate2by)) {
+			if (compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate1ax, gate1ay) !=
+					compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate1bx, gate1by) &&
+					compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate2ax, gate2ay) !=
+					compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[4].x, gateLoc[4].y, gate2bx, gate2by)) {
 				return 0;								/* same zplane and between both gates? */
 			}
 		}
@@ -898,8 +892,8 @@
 	gateLoc[3].x = pt.x;
 	gateLoc[3].y = pt.y;
 
-	if (CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[3].x, gateLoc[3].y, gate1ax, gate1ay) ==
-			CompareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[3].x, gateLoc[3].y, gate1bx, gate1by)) {
+	if (compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[3].x, gateLoc[3].y, gate1ax, gate1ay) ==
+			compareSlope(gateLoc[1].x, gateLoc[1].y, gateLoc[3].x, gateLoc[3].y, gate1bx, gate1by)) {
 		closestPtOnLine(gate1ax, gate1ay, gate1bx, gate1by, gateLoc[1].x, gateLoc[1].y);
 		gateLoc[2].x = pt.x;							/* if point 2 between gates, ignore! */
 		gateLoc[2].y = pt.y;
@@ -1009,11 +1003,9 @@
 	}
 }
 
-int Scumm::CompareSlope(int X1, int Y1, int X2, int Y2, int X3, int Y3)
+bool Scumm::compareSlope(int X1, int Y1, int X2, int Y2, int X3, int Y3)
 {
-	if ((Y2 - Y1) * (X3 - X1) > (Y3 - Y1) * (X2 - X1))
-		return (0);
-	return (1);
+	return (Y2 - Y1) * (X3 - X1) <= (Y3 - Y1) * (X2 - X1);
 }
 
 void Scumm::SetGate(int line1, int line2, int polyx[8], int polyy[8])





More information about the Scummvm-git-logs mailing list