aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/goblin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/gob/goblin.cpp')
-rw-r--r--engines/gob/goblin.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/engines/gob/goblin.cpp b/engines/gob/goblin.cpp
index 9c7a337369..f3bf22ad61 100644
--- a/engines/gob/goblin.cpp
+++ b/engines/gob/goblin.cpp
@@ -933,12 +933,14 @@ void Goblin::targetItem(void) {
}
}
- if ((_vm->_map->_itemsMap[_pressedMapY +
- 1][_pressedMapX]) ==
- (_vm->_map->_itemsMap[_pressedMapY][_pressedMapX])) {
- _pressedMapY++;
- _vm->_map->_destY = _pressedMapY;
- _gobDestY = _pressedMapY;
+ if (_pressedMapY < (_vm->_map->_mapHeight-1)) {
+ if ((_vm->_map->_itemsMap[_pressedMapY +
+ 1][_pressedMapX]) ==
+ (_vm->_map->_itemsMap[_pressedMapY][_pressedMapX])) {
+ _pressedMapY++;
+ _vm->_map->_destY = _pressedMapY;
+ _gobDestY = _pressedMapY;
+ }
}
}
@@ -1024,8 +1026,8 @@ void Goblin::moveFindItem(int16 posX, int16 posY) {
break;
}
- _pressedMapX = posX / 12;
- _pressedMapY = posY / 6;
+ _pressedMapX = MIN(posX / 12, 25);
+ _pressedMapY = MIN(posY / 6, 27);
if (_vm->_map->_itemsMap[_pressedMapY][_pressedMapX] == 0
&& i < 20) {