From: <ave...@us...> - 2009-07-20 20:14:27
|
Revision: 6759 http://gemrb.svn.sourceforge.net/gemrb/?rev=6759&view=rev Author: avenger_teambg Date: 2009-07-20 20:14:21 +0000 (Mon, 20 Jul 2009) Log Message: ----------- quick hack to fix a crasher in projectiles going offscreen Modified Paths: -------------- gemrb/trunk/gemrb/plugins/Core/Map.cpp Modified: gemrb/trunk/gemrb/plugins/Core/Map.cpp =================================================================== --- gemrb/trunk/gemrb/plugins/Core/Map.cpp 2009-07-20 19:42:45 UTC (rev 6758) +++ gemrb/trunk/gemrb/plugins/Core/Map.cpp 2009-07-20 20:14:21 UTC (rev 6759) @@ -2213,6 +2213,17 @@ Point p; p.x = (ieWord) start.x + ((dest.x - start.x) * Steps / Max); p.y = (ieWord) start.y + ((dest.y - start.y) * Steps / Max); + + //the path ends here as it would go off the screen, causing problems + //maybe there is a better way, but i needed a quick hack to fix + //the crash in projectiles + if ((signed) p.x<0 || (signed) p.y<0) { + return Return; + } + if ((ieWord) p.x>Width*16 || (ieWord) p.y>Height*12) { + return Return; + } + StartNode->x = p.x; StartNode->y = p.y; StartNode->orient = Orientation; @@ -2221,7 +2232,6 @@ case GL_REBOUND: Orientation = (Orientation + 8) &15; //recalculate dest (mirror it) - // break; case GL_PASS: break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |