From da69cc267cbae8dff5ff3bb4f88ca8c81c5bc220 Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Wed, 31 May 2006 10:55:57 +0000 Subject: Hopefully fixed bug #1498024 svn-id: r22796 --- engines/gob/goblin.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'engines/gob') 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) { -- cgit v1.2.3