- Bugfix: Fixed infinite loops that could occur in AI Actions (by Mae)

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6680 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Wanne
2013-12-05 07:55:26 +00:00
parent b7ee1b8979
commit 39f32c2e71
+4 -2
View File
@@ -858,12 +858,13 @@ INT32 RandDestWithinRange(SOLDIERTYPE *pSoldier)
{
if (fLimited)
{
UINT8 ubTriesLeft2 = 128;
do//dnl ch53 111009 This loop should increase search performance, but probably need some counter to prevent eventual endless loop
{
sXOffset = ((INT16)Random(sXRange)) - sMaxLeft;
sYOffset = ((INT16)Random(sYRange)) - sMaxUp;
sRandDest = usOrigin + sXOffset + (MAXCOL * sYOffset);
}while(!GridNoOnVisibleWorldTile(sRandDest));
}while(!GridNoOnVisibleWorldTile(sRandDest) && --ubTriesLeft2);
#ifdef BETAVERSION
if ((sRandDest < 0) || (sRandDest >= GRIDSIZE))
{
@@ -874,10 +875,11 @@ INT32 RandDestWithinRange(SOLDIERTYPE *pSoldier)
}
else
{
UINT8 ubTriesLeft2 = 128;
do//dnl ch53 111009 This loop should increase search performance, but probably need some counter to prevent eventual endless loop
{
sRandDest = PreRandom(GRIDSIZE);
}while(!GridNoOnVisibleWorldTile(sRandDest));
}while(!GridNoOnVisibleWorldTile(sRandDest) && --ubTriesLeft2);
}
if ( usRoom && InARoom( sRandDest, &usTempRoom ) && usTempRoom != usRoom )