Add functions to check if soldier is in specific gas

This commit is contained in:
Asdow
2026-01-19 22:58:17 +02:00
parent df8d4bd8a2
commit 1b9cb1f75e
2 changed files with 28 additions and 0 deletions
+3
View File
@@ -242,6 +242,9 @@ INT32 GoAsFarAsPossibleTowards(SOLDIERTYPE *pSoldier, INT32 sDesGrid, INT8 bActi
ActionType HeadForTheStairCase( SOLDIERTYPE * pSoldier );
BOOLEAN InSmoke(INT32 sGridNo, INT8 bLevel);
BOOLEAN InSmoke(SOLDIERTYPE* pSoldier, INT32 sGridNo);
BOOLEAN InTearGas(SOLDIERTYPE* pSoldier, INT32 sGridNo);
BOOLEAN InMustardGas(SOLDIERTYPE* pSoldier, INT32 sGridNo);
BOOLEAN InGas( SOLDIERTYPE *pSoldier, INT32 sGridNo );
BOOLEAN InGasOrSmoke( SOLDIERTYPE *pSoldier, INT32 sGridNo );
BOOLEAN InWaterGasOrSmoke( SOLDIERTYPE *pSoldier, INT32 sGridNo );
+25
View File
@@ -2240,6 +2240,31 @@ INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier )
return( sMinDist );
}
BOOLEAN InSmoke(SOLDIERTYPE* pSoldier, INT32 sGridNo)
{
if ( gpWorldLevelData[sGridNo].ubExtFlags[pSoldier->pathing.bLevel] & (MAPELEMENT_EXT_SMOKE | MAPELEMENT_EXT_SIGNAL_SMOKE | MAPELEMENT_EXT_DEBRIS_SMOKE | MAPELEMENT_EXT_FIRERETARDANT_SMOKE) )
return TRUE;
return FALSE;
}
BOOLEAN InTearGas(SOLDIERTYPE* pSoldier, INT32 sGridNo)
{
if ( (gpWorldLevelData[sGridNo].ubExtFlags[pSoldier->pathing.bLevel] & MAPELEMENT_EXT_TEARGAS))
return TRUE;
return FALSE;
}
BOOLEAN InMustardGas(SOLDIERTYPE* pSoldier, INT32 sGridNo)
{
if ( gpWorldLevelData[sGridNo].ubExtFlags[pSoldier->pathing.bLevel] & (MAPELEMENT_EXT_BURNABLEGAS | MAPELEMENT_EXT_CREATUREGAS | MAPELEMENT_EXT_MUSTARDGAS) )
return TRUE;
return FALSE;
}
BOOLEAN InWaterGasOrSmoke( SOLDIERTYPE *pSoldier, INT32 sGridNo )
{
if (WaterTooDeepForAttacks( sGridNo, pSoldier->pathing.bLevel ))