[Scummvm-cvs-logs] SF.net SVN: scummvm: [25395] scummvm/trunk/engines/gob/goblin.cpp
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Mon Feb 5 20:48:16 CET 2007
Revision: 25395
http://scummvm.svn.sourceforge.net/scummvm/?rev=25395&view=rev
Author: drmccoy
Date: 2007-02-05 11:48:12 -0800 (Mon, 05 Feb 2007)
Log Message:
-----------
Corrected the clipping of _pressedMapX/_pressedMapY, to avoid accessing invalid memory (also possible fix for bug #1652551)
Modified Paths:
--------------
scummvm/trunk/engines/gob/goblin.cpp
Modified: scummvm/trunk/engines/gob/goblin.cpp
===================================================================
--- scummvm/trunk/engines/gob/goblin.cpp 2007-02-05 14:22:10 UTC (rev 25394)
+++ scummvm/trunk/engines/gob/goblin.cpp 2007-02-05 19:48:12 UTC (rev 25395)
@@ -798,6 +798,8 @@
}
}
+ _pressedMapX = CLIP((int) _pressedMapX, 0, _vm->_map->_mapWidth - 1);
+ _pressedMapY = CLIP((int) _pressedMapY, 0, _vm->_map->_mapHeight - 1);
}
void Goblin::adjustTarget(void) {
@@ -819,6 +821,8 @@
_pressedMapX++;
}
}
+ _pressedMapX = CLIP((int) _pressedMapX, 0, _vm->_map->_mapWidth - 1);
+ _pressedMapY = CLIP((int) _pressedMapY, 0, _vm->_map->_mapHeight - 1);
}
void Goblin::targetDummyItem(Gob_Object *gobDesc) {
@@ -984,6 +988,8 @@
}
}
}
+ _pressedMapX = CLIP((int) _pressedMapX, 0, _vm->_map->_mapWidth - 1);
+ _pressedMapY = CLIP((int) _pressedMapY, 0, _vm->_map->_mapHeight - 1);
}
void Goblin::moveFindItem(int16 posX, int16 posY) {
@@ -1021,8 +1027,8 @@
break;
}
- _pressedMapX = MIN(posX / 12, _vm->_map->_mapWidth - 1);
- _pressedMapY = MIN(posY / 6, _vm->_map->_mapHeight - 1);
+ _pressedMapX = posX / 12;
+ _pressedMapY = posY / 6;
if (_vm->_map->_itemsMap[_pressedMapY][_pressedMapX] == 0
&& i < 20) {
@@ -1063,6 +1069,8 @@
_pressedMapX = posX / 12;
_pressedMapY = posY / 6;
}
+ _pressedMapX = CLIP((int) _pressedMapX, 0, _vm->_map->_mapWidth - 1);
+ _pressedMapY = CLIP((int) _pressedMapY, 0, _vm->_map->_mapHeight - 1);
}
void Goblin::moveCheckSelect(int16 framesCount, Gob_Object * gobDesc, int16 *pGobIndex,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list