diff options
author | Ludvig Strigeus | 2001-10-11 10:45:39 +0000 |
---|---|---|
committer | Ludvig Strigeus | 2001-10-11 10:45:39 +0000 |
commit | d18d8bdb530a924e7acea399bf57599a26896895 (patch) | |
tree | eff62393ecc2a7cabed165f72d8816f0cc7c6d30 | |
parent | d511c45f4ae49a8ab43014f5c41d78230ee3fad0 (diff) | |
download | scummvm-rg350-d18d8bdb530a924e7acea399bf57599a26896895.tar.gz scummvm-rg350-d18d8bdb530a924e7acea399bf57599a26896895.tar.bz2 scummvm-rg350-d18d8bdb530a924e7acea399bf57599a26896895.zip |
Fixed bug in Scumm::getBoxCoordinates where unsigned integers were read
instead of signed ones.
svn-id: r3424
-rw-r--r-- | boxes.cpp | 31 |
1 files changed, 17 insertions, 14 deletions
@@ -17,8 +17,13 @@ * * Change Log: * $Log$ - * Revision 1.1 2001/10/09 14:30:14 strigeus - * Initial revision + * Revision 1.2 2001/10/11 10:45:39 strigeus + * Fixed bug in Scumm::getBoxCoordinates where unsigned integers were read + * instead of signed ones. + * + * Revision 1.1.1.1 2001/10/09 14:30:14 strigeus + * + * initial revision * * */ @@ -110,27 +115,25 @@ bool Scumm::checkXYInBoxBounds(int b, int x, int y) { void Scumm::getBoxCoordinates(int b) { Box *bp = getBoxBaseAddr(b); - box.upperLeftX = FROM_LE_16(bp->ulx); - box.upperRightX = FROM_LE_16(bp->urx); - box.lowerLeftX = FROM_LE_16(bp->llx); - box.lowerRightX = FROM_LE_16(bp->lrx); - box.upperLeftY = FROM_LE_16(bp->uly); - box.upperRightY = FROM_LE_16(bp->ury); - box.lowerLeftY = FROM_LE_16(bp->lly); - box.lowerRightY = FROM_LE_16(bp->lry); + box.upperLeftX = (int16)FROM_LE_16(bp->ulx); + box.upperRightX = (int16)FROM_LE_16(bp->urx); + box.lowerLeftX = (int16)FROM_LE_16(bp->llx); + box.lowerRightX = (int16)FROM_LE_16(bp->lrx); + box.upperLeftY = (int16)FROM_LE_16(bp->uly); + box.upperRightY = (int16)FROM_LE_16(bp->ury); + box.lowerLeftY = (int16)FROM_LE_16(bp->lly); + box.lowerRightY = (int16)FROM_LE_16(bp->lry); } uint Scumm::distanceFromPt(int x, int y, int ptx, int pty) { int diffx, diffy; - diffx = ptx - x; - if (ptx < x) diffx = x - ptx; + diffx = abs(ptx-x); if (diffx >= 0x100) return 0xFFFF; - diffy = pty - y; - if (pty < y) diffy = y - pty; + diffy = abs(pty - y); if (diffy >= 0x100) return 0xFFFF; |