[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.109,1.110 actor.h,1.58,1.59 isomap.cpp,1.37,1.38 isomap.h,1.17,1.18

Andrew Kurushin h00ligan at users.sourceforge.net
Sun Mar 13 09:44:30 CET 2005


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

Modified Files:
	actor.cpp actor.h isomap.cpp isomap.h 
Log Message:
fixed wrong tile drawing above actors

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- actor.cpp	12 Mar 2005 22:54:15 -0000	1.109
+++ actor.cpp	13 Mar 2005 17:43:49 -0000	1.110
@@ -1094,8 +1094,7 @@
 			hitZone = NULL;
 			// tiled stuff
 			if (_vm->_scene->getFlags() & kSceneFlagISO) {
-				hitPoint.x = actor->location.u();
-				hitPoint.y = actor->location.v();
+				actor->location.toScreenPointUV(hitPoint);
 			} else {
 				actor->location.toScreenPointXY(hitPoint);
 			}
@@ -1259,7 +1258,7 @@
 		
 		
 		if (_vm->_scene->getFlags() & kSceneFlagISO) {
-			_vm->_isoMap->drawSprite(back_buf,*spriteList, frameNumber, drawObject->location, drawObject->screenPosition, drawObject->screenScale);
+			_vm->_isoMap->drawSprite(back_buf, *spriteList, frameNumber, drawObject->location, drawObject->screenPosition, drawObject->screenScale);
 		} else {
 			_vm->_sprite->drawOccluded(back_buf, *spriteList, frameNumber, drawObject->screenPosition, drawObject->screenScale, drawObject->screenDepth);
 		}

Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- actor.h	26 Feb 2005 17:37:16 -0000	1.58
+++ actor.h	13 Mar 2005 17:43:50 -0000	1.59
@@ -152,6 +152,9 @@
 	int v() const {
 		return y;
 	}
+	int uv() const {
+		return u() + v();
+	}
 	void delta(const Location &location, Location &result) const {
 		result.x = x - location.x;
 		result.y = y - location.y;
@@ -171,6 +174,10 @@
 		screenPoint.x = x / ACTOR_LMULT;
 		screenPoint.y = y / ACTOR_LMULT;
 	}
+	void toScreenPointUV(Point &screenPoint) const {
+		screenPoint.x = u();
+		screenPoint.y = v();
+	}
 	void toScreenPointXYZ(Point &screenPoint) const {
 		screenPoint.x = x / ACTOR_LMULT;
 		screenPoint.y = y / ACTOR_LMULT - z;

Index: isomap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- isomap.cpp	9 Mar 2005 07:29:15 -0000	1.37
+++ isomap.cpp	13 Mar 2005 17:43:50 -0000	1.38
@@ -129,9 +129,9 @@
 	for (i = 0; i < _tilesCount; i++) {
 		tileData = &_tilesTable[i];
 		tileData->height = readS.readByte();
-		tileData->attributes = readS.readByte();
+		tileData->attributes = readS.readSByte();
 		tileData->offset = readS.readUint16();
-		tileData->terrainMask = readS.readSint16();
+		tileData->terrainMask = readS.readUint16();
 		tileData->FGDBGDAttr = readS.readByte();
 		readS.readByte(); //skip
 	}
@@ -638,7 +638,7 @@
 						tileIndex = findMulti(tileIndex, absU + u, absU + v, absH);
 					}
 
-					drawTile(ds, tileIndex, s, &location);
+					drawTile(ds, tileIndex, s, &copyLocation);
 				}
 			}
 		}
@@ -791,17 +791,17 @@
 					}
 					break;
 				case kMaskRuleYMIN:
-					if (location->u() + location->v() < THRESH0 * 2) {
+					if (location->uv() < THRESH0 * 2) {
 						return;
 					}
 					break;
 				case kMaskRuleYMID:
-					if (location->u() + location->v() < THRESH8 * 2) {
+					if (location->uv() < THRESH8 * 2) {
 						return;
 					}
 					break;
 				case kMaskRuleYMAX:
-					if (location->u() + location->v() < THRESH16 * 2) {
+					if (location->uv() < THRESH16 * 2) {
 						return;
 					}
 					break;

Index: isomap.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- isomap.h	26 Feb 2005 17:37:16 -0000	1.17
+++ isomap.h	13 Mar 2005 17:43:50 -0000	1.18
@@ -91,19 +91,19 @@
 	size_t offset;
 	uint16 terrainMask;
 	byte FGDBGDAttr;
-	int8 GetMaskRule() {
+	int8 GetMaskRule() const {
 		return attributes & 0x0F;
 	}
-	byte GetFGDAttr() {
+	byte GetFGDAttr() const {
 		return FGDBGDAttr >> 4;
 	}
-	byte GetBGDAttr() {
+	byte GetBGDAttr() const {
 		return FGDBGDAttr & 0x0F;
 	}
-	uint16 GetFGDMask() {
+	uint16 GetFGDMask() const {
 		return 1 << GetFGDAttr();
 	}
-	uint16 GetBGDMask() {
+	uint16 GetBGDMask() const {
 		return 1 << GetBGDAttr();
 	}
 };
@@ -160,7 +160,7 @@
 	void adjustScroll(bool jump);
 	void tileCoordsToScreenPoint(const Location &location, Point &position) {
 		position.x = location.u() - location.v() + (128 * SAGA_TILEMAP_W) - _viewScroll.x + 16;
-		position.y = -((location.u() + location.v()) >> 1) + (128 * SAGA_TILEMAP_W) - _viewScroll.y - location.z;
+		position.y = -(location.uv() >> 1) + (128 * SAGA_TILEMAP_W) - _viewScroll.y - location.z;
 	}
 	void screenPointToTileCoords(const Point &position, Location &location);
 	void placeOnTileMap(const Location &start, Location &result, int16 distance, uint16 direction);





More information about the Scummvm-git-logs mailing list