[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, ©Location);
}
}
}
@@ -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