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 /boxes.cpp | |
| 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
Diffstat (limited to 'boxes.cpp')
| -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; | 
