aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/game.cpp
diff options
context:
space:
mode:
authorSven Hesse2007-05-01 14:49:13 +0000
committerSven Hesse2007-05-01 14:49:13 +0000
commit54b8a4d06f56b3045f0e5a1ec3709ac1524f48d0 (patch)
tree6e9a7122743cfc534b388c08542a0adb6879d093 /engines/gob/game.cpp
parent8aed6861f9d6f0f2177e6bb6be24d2497c46984e (diff)
downloadscummvm-rg350-54b8a4d06f56b3045f0e5a1ec3709ac1524f48d0.tar.gz
scummvm-rg350-54b8a4d06f56b3045f0e5a1ec3709ac1524f48d0.tar.bz2
scummvm-rg350-54b8a4d06f56b3045f0e5a1ec3709ac1524f48d0.zip
Made the collisionAreas' coordinates unsigned. This should fix bug #1706988
svn-id: r26715
Diffstat (limited to 'engines/gob/game.cpp')
-rw-r--r--engines/gob/game.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/gob/game.cpp b/engines/gob/game.cpp
index 926e9e3f68..43eac76928 100644
--- a/engines/gob/game.cpp
+++ b/engines/gob/game.cpp
@@ -198,7 +198,7 @@ byte *Game::loadExtData(int16 itemId, int16 *pResWidth,
void Game::freeCollision(int16 id) {
for (int i = 0; i < 250; i++) {
if (_collisionAreas[i].id == id)
- _collisionAreas[i].left = -1;
+ _collisionAreas[i].left = 0xFFFF;
}
}
@@ -675,13 +675,13 @@ byte *Game::loadLocTexts(void) {
void Game::setCollisions(void) {
byte *savedIP;
- int16 left;
- int16 top;
- int16 width;
- int16 height;
+ uint16 left;
+ uint16 top;
+ uint16 width;
+ uint16 height;
Collision *collArea;
- for (collArea = _collisionAreas; collArea->left != -1; collArea++) {
+ for (collArea = _collisionAreas; collArea->left != 0xFFFF; collArea++) {
if (((collArea->id & 0xC000) != 0x8000) || (collArea->funcSub == 0))
continue;
@@ -691,7 +691,8 @@ void Game::setCollisions(void) {
top = _vm->_parse->parseValExpr();
width = _vm->_parse->parseValExpr();
height = _vm->_parse->parseValExpr();
- if ((_vm->_draw->_renderFlags & RENDERFLAG_CAPTUREPOP) && (left != -1)) {
+ if ((_vm->_draw->_renderFlags & RENDERFLAG_CAPTUREPOP) &&
+ (left != 0xFFFF)) {
left += _vm->_draw->_backDeltaX;
top += _vm->_draw->_backDeltaY;
}