Fix passive bloodcats

This commit is contained in:
Asdow
2024-12-05 22:56:57 +02:00
parent 1eff9f6aaa
commit 678ef822ca
+12 -7
View File
@@ -516,13 +516,18 @@ INT32 InternalGoAsFarAsPossibleTowards(SOLDIERTYPE *pSoldier, INT32 sDesGrid, IN
#ifdef DEBUGDECISIONS
AIPopMessage("destination Grid # itself not valid, looking around it");
#endif
if ( CREATURE_OR_BLOODCAT( pSoldier ) )
{
// we tried to get close, failed; abort!
pSoldier->pathing.usPathIndex = pSoldier->pathing.usPathDataSize = 0;
return( NOWHERE );
}
else
// Commented out this branch for now because bloodcats are constantly failing to find a legal destination in the previous call to legalNPCDestination
// Following the function calls deep enough ( GoAsFarAsPossibleTowards -> InternalGoAsFarAsPossibleTowards -> LegalNPCDestination -> NewOKDestination -> InternalOkayToAddStructureToWorld -> OkayToAddStructureToTile) shows that the last one fails when checking if we can add bloodcat's structure onto the tile our merc is
// This then results them freezing and staying in place even if they can see our mercs
// The reason I'm leaving the code here instead of simply removing it is because this and the check for adding structures to a tile are really old code,
// which has definitely worked fine at some point. As I'm right now unable to find the real reason for this breaking, I'm just circumventing the issue for now. -Asdow
//if ( CREATURE_OR_BLOODCAT( pSoldier ) )
//{
// // we tried to get close, failed; abort!
// pSoldier->pathing.usPathIndex = pSoldier->pathing.usPathDataSize = 0;
// return( NOWHERE );
//}
//else
{
// else look at the 8 nearest gridnos to sDesGrid for a valid destination