mirror of
https://github.com/1dot13/source.git
synced 2026-08-12 14:10:23 +02:00
Import changes from the local SVN working copy
This commit is contained in:
@@ -131,7 +131,7 @@ class ATTACKTYPE
|
||||
{
|
||||
public:
|
||||
UINT8 ubPossible; // is this attack form possible
|
||||
UINT8 ubOpponent; // which soldier is the victim
|
||||
UINT16 ubOpponent; // which soldier is the victim
|
||||
//CHANGED STRUCTURE VALUE BY GOTTHARD 7/14/07
|
||||
INT16 ubAimTime; // how many extra APs to spend on aiming
|
||||
INT16 ubChanceToReallyHit; // chance to hit * chance to get through cover
|
||||
@@ -213,7 +213,7 @@ void CreatureDecideAlertStatus( SOLDIERTYPE *pCreature );
|
||||
// sevenfm:
|
||||
void CheckTossSelfSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow);
|
||||
void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow);
|
||||
void CheckTossAt(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow, INT32 sTargetSpot, INT8 bTargetLevel, UINT8 ubOpponentID);
|
||||
void CheckTossAt(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow, INT32 sTargetSpot, INT8 bTargetLevel, UINT16 ubOpponentID);
|
||||
INT32 FindTossSpotInDirection(INT32 sSpot, INT8 bLevel, INT32 sTargetSpot, BOOLEAN fCheckAdjacentDirections, BOOLEAN fCheckFarther);
|
||||
void CheckTossGrenadeAt(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow, INT32 sTargetSpot, INT8 bTargetLevel, UINT8 ubGrenadeType);
|
||||
|
||||
@@ -319,7 +319,7 @@ BOOLEAN GetBestAoEGridNo(SOLDIERTYPE *pSoldier, INT32* pGridNo, INT16 aRadius, U
|
||||
// Get the ID of the farthest opponent we can see, with an optional minimum range
|
||||
// puID - ID of the farthest opponent pSoldier can see
|
||||
// sRange - only return true and give an idea if opponent found is further away than this
|
||||
BOOLEAN GetFarthestOpponent(SOLDIERTYPE *pSoldier, UINT8* puID, INT16 sRange);
|
||||
BOOLEAN GetFarthestOpponent(SOLDIERTYPE *pSoldier, UINT16 * puID, INT16 sRange);
|
||||
|
||||
// are there more allies than friends in adjacent sectors?
|
||||
BOOLEAN MoreFriendsThanEnemiesinNearbysectors(UINT8 ausTeam, INT16 aX, INT16 aY, INT8 aZ);
|
||||
+16
-16
@@ -28,11 +28,11 @@
|
||||
AILIST gAIList[ AI_LIST_SIZE ];
|
||||
AILIST * gpFirstAIListEntry = NULL;
|
||||
|
||||
BOOLEAN SatisfiesAIListConditions( SOLDIERTYPE * pSoldier, UINT8 * pubDoneCount, BOOLEAN fDoRandomChecks );
|
||||
BOOLEAN SatisfiesAIListConditions( SOLDIERTYPE * pSoldier, UINT16 * pubDoneCount, BOOLEAN fDoRandomChecks );
|
||||
|
||||
void ClearAIList( void )
|
||||
{
|
||||
UINT8 ubLoop;
|
||||
UINT16 ubLoop;
|
||||
|
||||
for ( ubLoop = 0; ubLoop < AI_LIST_SIZE; ubLoop++ )
|
||||
{
|
||||
@@ -50,9 +50,9 @@ void DeleteAIListEntry( AILIST * pEntry )
|
||||
pEntry->pNext = NULL;
|
||||
}
|
||||
|
||||
UINT8 FindEmptyAIListEntry( void )
|
||||
UINT16 FindEmptyAIListEntry( void )
|
||||
{
|
||||
UINT8 ubLoop;
|
||||
UINT16 ubLoop;
|
||||
|
||||
for ( ubLoop = 0; ubLoop < AI_LIST_SIZE; ubLoop++ )
|
||||
{
|
||||
@@ -65,7 +65,7 @@ UINT8 FindEmptyAIListEntry( void )
|
||||
return( AI_LIST_SIZE );
|
||||
}
|
||||
|
||||
AILIST * CreateNewAIListEntry( UINT8 ubNewEntry, UINT8 ubID, INT8 bPriority )
|
||||
AILIST * CreateNewAIListEntry( UINT16 ubNewEntry, UINT16 ubID, INT8 bPriority )
|
||||
{
|
||||
gAIList[ ubNewEntry ].ubID = ubID;
|
||||
gAIList[ ubNewEntry ].bPriority = bPriority;
|
||||
@@ -73,10 +73,10 @@ AILIST * CreateNewAIListEntry( UINT8 ubNewEntry, UINT8 ubID, INT8 bPriority )
|
||||
return( &(gAIList[ ubNewEntry ]) );
|
||||
}
|
||||
|
||||
UINT8 RemoveFirstAIListEntry( void )
|
||||
UINT16 RemoveFirstAIListEntry( void )
|
||||
{
|
||||
AILIST * pOldFirstEntry;
|
||||
UINT8 ubID;
|
||||
AILIST *pOldFirstEntry;
|
||||
UINT16 ubID;
|
||||
|
||||
while ( gpFirstAIListEntry != NULL)
|
||||
{
|
||||
@@ -98,7 +98,7 @@ UINT8 RemoveFirstAIListEntry( void )
|
||||
return( NOBODY );
|
||||
}
|
||||
|
||||
void RemoveAIListEntryForID( UINT8 ubID )
|
||||
void RemoveAIListEntryForID( UINT16 ubID )
|
||||
{
|
||||
AILIST * pEntry;
|
||||
AILIST * pPrevEntry;
|
||||
@@ -127,9 +127,9 @@ void RemoveAIListEntryForID( UINT8 ubID )
|
||||
// none found, that's okay
|
||||
}
|
||||
|
||||
BOOLEAN InsertIntoAIList( UINT8 ubID, INT8 bPriority )
|
||||
BOOLEAN InsertIntoAIList( UINT16 ubID, INT8 bPriority )
|
||||
{
|
||||
UINT8 ubNewEntry;
|
||||
UINT16 ubNewEntry;
|
||||
AILIST * pEntry, * pNewEntry, * pPrevEntry = NULL;
|
||||
|
||||
ubNewEntry = FindEmptyAIListEntry();
|
||||
@@ -182,7 +182,7 @@ BOOLEAN InsertIntoAIList( UINT8 ubID, INT8 bPriority )
|
||||
return( FALSE );
|
||||
}
|
||||
|
||||
BOOLEAN SatisfiesAIListConditions( SOLDIERTYPE * pSoldier, UINT8 * pubDoneCount, BOOLEAN fDoRandomChecks )
|
||||
BOOLEAN SatisfiesAIListConditions( SOLDIERTYPE * pSoldier, UINT16 * pubDoneCount, BOOLEAN fDoRandomChecks )
|
||||
{
|
||||
if ( (gTacticalStatus.bBoxingState == BOXING) && !(pSoldier->flags.uiStatusFlags & SOLDIER_BOXER) )
|
||||
{
|
||||
@@ -280,12 +280,12 @@ BOOLEAN SatisfiesAIListConditions( SOLDIERTYPE * pSoldier, UINT8 * pubDoneCount,
|
||||
return( TRUE );
|
||||
}
|
||||
|
||||
BOOLEAN MoveToFrontOfAIList( UINT8 ubID )
|
||||
BOOLEAN MoveToFrontOfAIList( UINT16 ubID )
|
||||
{
|
||||
// we'll have to fake this guy's alert status (in the list) to be the same as the current
|
||||
// front of the list
|
||||
INT8 bPriority;
|
||||
UINT8 ubNewEntry;
|
||||
UINT16 ubNewEntry;
|
||||
AILIST * pNewEntry;
|
||||
|
||||
if ( !SatisfiesAIListConditions( MercPtrs[ ubID ], NULL, FALSE ) )
|
||||
@@ -320,8 +320,8 @@ BOOLEAN BuildAIListForTeam( INT8 bTeam )
|
||||
BOOLEAN fInsertRet;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
BOOLEAN fRet = FALSE;
|
||||
UINT8 ubCount = 0;
|
||||
UINT8 ubDoneCount = 0;
|
||||
UINT16 ubCount = 0;
|
||||
UINT16 ubDoneCount = 0;
|
||||
INT8 bPriority;
|
||||
|
||||
// this team is being given control so reset their muzzle flashes
|
||||
|
||||
+5
-5
@@ -2,7 +2,7 @@
|
||||
|
||||
typedef struct AILIST
|
||||
{
|
||||
UINT8 ubID;
|
||||
UINT16 ubID;
|
||||
INT8 bPriority;
|
||||
UINT8 ubUnused;
|
||||
struct AILIST * pNext;
|
||||
@@ -11,8 +11,8 @@ typedef struct AILIST
|
||||
#define MAX_AI_PRIORITY 100
|
||||
|
||||
extern void ClearAIList( void );
|
||||
extern AILIST * CreateNewAIListEntry( UINT8 ubNewEntry, UINT8 ubID, INT8 bAlertStatus );
|
||||
extern BOOLEAN InsertIntoAIList( UINT8 ubID, INT8 bAlertStatus );
|
||||
extern UINT8 RemoveFirstAIListEntry( void );
|
||||
extern AILIST * CreateNewAIListEntry( UINT16 ubNewEntry, UINT16 ubID, INT8 bAlertStatus );
|
||||
extern BOOLEAN InsertIntoAIList( UINT16 ubID, INT8 bAlertStatus );
|
||||
extern UINT16 RemoveFirstAIListEntry( void );
|
||||
extern BOOLEAN BuildAIListForTeam( INT8 bTeam );
|
||||
extern BOOLEAN MoveToFrontOfAIList( UINT8 ubID );
|
||||
extern BOOLEAN MoveToFrontOfAIList( UINT16 ubID );
|
||||
|
||||
@@ -402,7 +402,7 @@ BOOLEAN InitAI( void )
|
||||
|
||||
// remove all individual files
|
||||
CHAR8 buf[1024];
|
||||
for (UINT8 cnt = 0; cnt < TOTAL_SOLDIERS; cnt++)
|
||||
for (UINT16 cnt = 0; cnt < TOTAL_SOLDIERS; cnt++)
|
||||
{
|
||||
sprintf(buf, "Logs\\AI_Decisions [%d].txt", cnt);
|
||||
remove(buf);
|
||||
@@ -883,7 +883,7 @@ void HandleSoldierAI( SOLDIERTYPE *pSoldier ) // FIXME - this function is named
|
||||
|
||||
void EndAIGuysTurn( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
UINT8 ubID;
|
||||
UINT16 ubID;
|
||||
|
||||
if (gfTurnBasedAI)
|
||||
{
|
||||
@@ -1174,12 +1174,12 @@ INT32 FindAdjacentSpotBeside(SOLDIERTYPE *pSoldier, INT32 sGridNo)
|
||||
return(sCheapestDest);
|
||||
}
|
||||
|
||||
UINT8 GetMostThreateningOpponent( SOLDIERTYPE *pSoldier )
|
||||
UINT16 GetMostThreateningOpponent( SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
UINT32 uiLoop;
|
||||
INT32 iThreatVal,iMinThreat = 30000;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
UINT8 ubTargetSoldier = NOBODY;
|
||||
UINT16 ubTargetSoldier = NOBODY;
|
||||
|
||||
// Loop through all mercs
|
||||
|
||||
@@ -1263,7 +1263,7 @@ void FreeUpNPCFromPendingAction( SOLDIERTYPE *pSoldier )
|
||||
}
|
||||
}
|
||||
|
||||
void FreeUpNPCFromAttacking(UINT8 ubID)
|
||||
void FreeUpNPCFromAttacking(UINT16 ubID)
|
||||
{
|
||||
SOLDIERTYPE *pSoldier;
|
||||
|
||||
@@ -2659,7 +2659,7 @@ INT8 ExecuteAction(SOLDIERTYPE *pSoldier)
|
||||
|
||||
case AI_ACTION_USE_SKILL:
|
||||
{
|
||||
UINT8 ubID = WhoIsThere2( pSoldier->aiData.usActionData, 0 );
|
||||
UINT16 ubID = WhoIsThere2( pSoldier->aiData.usActionData, 0 );
|
||||
|
||||
BOOLEAN result = pSoldier->UseSkill(pSoldier->usAISkillUse, pSoldier->aiData.usActionData, ubID);
|
||||
|
||||
|
||||
+48
-48
@@ -837,7 +837,7 @@ INT16 RandomFriendWithin(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
UINT32 uiLoop;
|
||||
UINT16 usMaxDist;
|
||||
UINT8 ubFriendCount, ubFriendIDs[MAXMERCS], ubFriendID;
|
||||
UINT16 ubFriendCount, ubFriendIDs[MAXMERCS], ubFriendID;
|
||||
UINT8 ubDirection;
|
||||
UINT8 ubDirsLeft;
|
||||
BOOLEAN fDirChecked[8];
|
||||
@@ -1385,7 +1385,7 @@ INT32 ClosestReachableDisturbance(SOLDIERTYPE *pSoldier, BOOLEAN * pfChangeLevel
|
||||
}
|
||||
|
||||
|
||||
INT32 ClosestKnownOpponent(SOLDIERTYPE *pSoldier, INT32 * psGridNo, INT8 * pbLevel, UINT8 *pubOpponentID)
|
||||
INT32 ClosestKnownOpponent(SOLDIERTYPE *pSoldier, INT32 * psGridNo, INT8 * pbLevel, UINT16 * pubOpponentID)
|
||||
{
|
||||
INT32 *psLastLoc,sGridNo, sClosestOpponent = NOWHERE;
|
||||
UINT32 uiLoop;
|
||||
@@ -1710,7 +1710,7 @@ INT32 ClosestPC( SOLDIERTYPE *pSoldier, INT32 * psDistance )
|
||||
|
||||
// NOTE: skips EPCs!
|
||||
|
||||
UINT8 ubLoop;
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT32 sMinDist = WORLD_MAX;
|
||||
INT32 sDist;
|
||||
@@ -1769,7 +1769,7 @@ INT32 ClosestUnDisguisedPC( SOLDIERTYPE *pSoldier, INT32 * psDistance )
|
||||
// used by NPCs... find the closest PC
|
||||
// NOTE: skips EPCs!
|
||||
|
||||
UINT8 ubLoop;
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT32 sMinDist = WORLD_MAX;
|
||||
INT32 sDist;
|
||||
@@ -2028,7 +2028,7 @@ INT16 EstimatePathCostToLocation( SOLDIERTYPE * pSoldier, INT32 sDestGridNo, INT
|
||||
BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax )
|
||||
{
|
||||
UINT8 ubTeamLoop;
|
||||
UINT8 ubIDLoop;
|
||||
UINT16 ubIDLoop;
|
||||
SOLDIERTYPE *pOpponent;
|
||||
|
||||
for ( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ++ubTeamLoop )
|
||||
@@ -2181,7 +2181,7 @@ INT32 ClosestReachableFriendInTrouble(SOLDIERTYPE *pSoldier, BOOLEAN * pfClimbin
|
||||
INT16 DistanceToClosestFriend( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
// find the distance to the closest person on the same team
|
||||
UINT8 ubLoop;
|
||||
UINT16 ubLoop;
|
||||
SOLDIERTYPE *pTargetSoldier;
|
||||
INT16 sMinDist = 1000;
|
||||
INT16 sDist;
|
||||
@@ -3452,9 +3452,9 @@ INT32 CalcStraightThreatValue( SOLDIERTYPE *pEnemy )
|
||||
}
|
||||
|
||||
// Flugente: get the id of the closest soldier with a specific flag that we can currently see
|
||||
UINT8 GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight )
|
||||
UINT16 GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight )
|
||||
{
|
||||
UINT8 id = NOBODY;
|
||||
UINT16 id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
@@ -3505,9 +3505,9 @@ UINT8 GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 au
|
||||
}
|
||||
|
||||
// get the id of the closest soldier (closer than x tiles) of a specific team that is wounded that we can currently see
|
||||
UINT8 GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
UINT16 GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
{
|
||||
UINT8 id = NOBODY;
|
||||
UINT16 id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
@@ -3554,9 +3554,9 @@ UINT8 GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 au
|
||||
}
|
||||
|
||||
// get the id of the closest medic (closer than x tiles) of a specific team
|
||||
UINT8 GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
UINT16 GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam )
|
||||
{
|
||||
UINT8 id = NOBODY;
|
||||
UINT16 id = NOBODY;
|
||||
UINT32 uiLoop;
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT16 range = aRange;
|
||||
@@ -3618,18 +3618,18 @@ INT16 MaxNormalVisionDistance( void )
|
||||
|
||||
// sevenfm: check friendly soldiers between me and noise gridno
|
||||
// count only friends that are active and not stationary/onguard/sniper
|
||||
UINT8 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo )
|
||||
UINT16 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo )
|
||||
{
|
||||
SOLDIERTYPE * pFriend;
|
||||
UINT8 ubFriendDir, ubMyDir;
|
||||
UINT8 ubFriends = 0;
|
||||
UINT16 ubFriends = 0;
|
||||
|
||||
CHECKF(pSoldier);
|
||||
|
||||
ubMyDir = atan8(CenterX(sTargetGridNo),CenterY(sTargetGridNo),CenterX(pSoldier->sGridNo),CenterY(pSoldier->sGridNo));
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT8 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
ubFriendDir = atan8(CenterX(sTargetGridNo),CenterY(sTargetGridNo),CenterX(pFriend->sGridNo),CenterY(pFriend->sGridNo));
|
||||
@@ -3651,17 +3651,17 @@ UINT8 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo )
|
||||
}
|
||||
|
||||
// sevenfm: count nearby friend soldiers
|
||||
UINT8 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistance )
|
||||
UINT16 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistance )
|
||||
{
|
||||
SOLDIERTYPE * pFriend;
|
||||
UINT8 ubFriendCount = 0;
|
||||
UINT16 ubFriendCount = 0;
|
||||
|
||||
// safety check
|
||||
if( !pSoldier )
|
||||
return 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT8 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
// Make sure that character is alive, not too shocked, and conscious, and of higher experience level
|
||||
@@ -3970,7 +3970,7 @@ BOOLEAN WeAttack(INT8 bTeam)
|
||||
SOLDIERTYPE * pFriend;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT8 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
|
||||
@@ -3994,7 +3994,7 @@ UINT8 CountNearbyFriendsLastAttackHit( SOLDIERTYPE *pSoldier, INT32 sGridNo, UIN
|
||||
UINT8 ubFriendCount = 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT8 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
|
||||
@@ -4034,7 +4034,7 @@ UINT8 CountFriendsFlankSameSpot(SOLDIERTYPE *pSoldier, INT32 sSpot)
|
||||
}
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT8 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
|
||||
@@ -4116,7 +4116,7 @@ UINT8 CountFriendsBlack( SOLDIERTYPE *pSoldier, INT32 sClosestOpponent )
|
||||
}
|
||||
|
||||
// Run through each friendly.
|
||||
for ( UINT8 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
for ( UINT16 iCounter = gTacticalStatus.Team[ pSoldier->bTeam ].bFirstID ; iCounter <= gTacticalStatus.Team[ pSoldier->bTeam ].bLastID ; iCounter ++ )
|
||||
{
|
||||
pFriend = MercPtrs[ iCounter ];
|
||||
|
||||
@@ -4145,17 +4145,17 @@ UINT8 CountFriendsBlack( SOLDIERTYPE *pSoldier, INT32 sClosestOpponent )
|
||||
}
|
||||
|
||||
// count friends under fire or with shock
|
||||
UINT8 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance)
|
||||
UINT16 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance)
|
||||
{
|
||||
SOLDIERTYPE * pFriend;
|
||||
UINT8 ubFriendCount = 0;
|
||||
UINT16 ubFriendCount = 0;
|
||||
|
||||
// safety check
|
||||
if (bTeam >= MAXTEAMS)
|
||||
return 0;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT8 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[bTeam].bFirstID; iCounter <= gTacticalStatus.Team[bTeam].bLastID; iCounter++)
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
|
||||
@@ -4397,10 +4397,10 @@ BOOLEAN EnemySeenSoldierRecently( SOLDIERTYPE *pSoldier, UINT8 ubMax )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UINT8 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier )
|
||||
UINT16 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier )
|
||||
{
|
||||
SOLDIERTYPE *pFriend;
|
||||
UINT8 ubFriends = 0;
|
||||
UINT16 ubFriends = 0;
|
||||
|
||||
CHECKF( pSoldier );
|
||||
|
||||
@@ -4846,13 +4846,13 @@ BOOLEAN AnyCoverFromSpot( INT32 sSpot, INT8 bLevel, INT32 sThreatLoc, INT8 bThre
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
UINT8 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier )
|
||||
UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE* pSoldier )
|
||||
{
|
||||
CHECKF(pSoldier);
|
||||
|
||||
UINT8 ubTeamLoop;
|
||||
UINT8 ubIDLoop;
|
||||
UINT8 cnt = 0;
|
||||
UINT16 ubIDLoop;
|
||||
UINT16 cnt = 0;
|
||||
|
||||
for( ubTeamLoop = 0; ubTeamLoop < MAXTEAMS; ubTeamLoop++ )
|
||||
{
|
||||
@@ -5677,7 +5677,7 @@ BOOLEAN DuskLight(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOLEAN UsePersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
BOOLEAN UsePersonalKnowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
INT8 bPersonalKnowledge;
|
||||
INT8 bPublicKnowledge;
|
||||
@@ -5701,7 +5701,7 @@ BOOLEAN UsePersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
INT8 Knowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT8 Knowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5716,7 +5716,7 @@ INT8 Knowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return PublicKnowledge(pSoldier->bTeam, ubOpponentID);
|
||||
}
|
||||
|
||||
INT32 KnownLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT32 KnownLocation(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5731,7 +5731,7 @@ INT32 KnownLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return KnownPublicLocation(pSoldier->bTeam, ubOpponentID);
|
||||
}
|
||||
|
||||
INT8 KnownLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT8 KnownLevel(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5746,7 +5746,7 @@ INT8 KnownLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return KnownPublicLevel(pSoldier->bTeam, ubOpponentID);
|
||||
}
|
||||
|
||||
INT8 PersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT8 PersonalKnowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5756,7 +5756,7 @@ INT8 PersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return pSoldier->aiData.bOppList[ubOpponentID];
|
||||
}
|
||||
|
||||
INT32 KnownPersonalLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT32 KnownPersonalLocation(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5770,7 +5770,7 @@ INT32 KnownPersonalLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return gsLastKnownOppLoc[pSoldier->ubID][ubOpponentID];
|
||||
}
|
||||
|
||||
INT8 KnownPersonalLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
INT8 KnownPersonalLevel(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID)
|
||||
{
|
||||
if (!pSoldier || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5780,7 +5780,7 @@ INT8 KnownPersonalLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID)
|
||||
return gbLastKnownOppLevel[pSoldier->ubID][ubOpponentID];
|
||||
}
|
||||
|
||||
INT8 PublicKnowledge(UINT8 bTeam, UINT8 ubOpponentID)
|
||||
INT8 PublicKnowledge(UINT8 bTeam, UINT16 ubOpponentID)
|
||||
{
|
||||
if (bTeam >= MAXTEAMS || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5790,7 +5790,7 @@ INT8 PublicKnowledge(UINT8 bTeam, UINT8 ubOpponentID)
|
||||
return gbPublicOpplist[bTeam][ubOpponentID];
|
||||
}
|
||||
|
||||
INT32 KnownPublicLocation(UINT8 bTeam, UINT8 ubOpponentID)
|
||||
INT32 KnownPublicLocation(UINT8 bTeam, UINT16 ubOpponentID)
|
||||
{
|
||||
if (bTeam >= MAXTEAMS || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5804,7 +5804,7 @@ INT32 KnownPublicLocation(UINT8 bTeam, UINT8 ubOpponentID)
|
||||
return gsPublicLastKnownOppLoc[bTeam][ubOpponentID];
|
||||
}
|
||||
|
||||
INT8 KnownPublicLevel(UINT8 bTeam, UINT8 ubOpponentID)
|
||||
INT8 KnownPublicLevel(UINT8 bTeam, UINT16 ubOpponentID)
|
||||
{
|
||||
if (bTeam >= MAXTEAMS || ubOpponentID == NOBODY)
|
||||
{
|
||||
@@ -5945,14 +5945,14 @@ INT32 RandomizeOpponentLocation(INT32 sSpot, SOLDIERTYPE *pOpponent, INT16 sMaxD
|
||||
}
|
||||
|
||||
// first call PrepareThreatlist to make threat list
|
||||
UINT8 ClosestKnownThreatID(SOLDIERTYPE *pSoldier)
|
||||
UINT16 ClosestKnownThreatID(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
CHECKF(pSoldier);
|
||||
|
||||
UINT32 uiLoop;
|
||||
INT32 sClosestOpponent = NOWHERE;
|
||||
INT32 iRange, iClosestRange;
|
||||
UINT8 ubClosestOpponentID = NOBODY;
|
||||
UINT16 ubClosestOpponentID = NOBODY;
|
||||
|
||||
// use global defined threat list
|
||||
for (uiLoop = 0; uiLoop < guiThreatCnt; uiLoop++)
|
||||
@@ -5975,14 +5975,14 @@ UINT8 ClosestKnownThreatID(SOLDIERTYPE *pSoldier)
|
||||
}
|
||||
|
||||
// first call PrepareThreatlist to make threat list
|
||||
UINT8 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT8 ubMax)
|
||||
UINT16 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT8 ubMax)
|
||||
{
|
||||
CHECKF(pSoldier);
|
||||
|
||||
UINT32 uiLoop;
|
||||
INT32 sClosestOpponent = NOWHERE;
|
||||
INT32 iRange, iClosestRange;
|
||||
UINT8 ubClosestOpponentID = NOBODY;
|
||||
UINT16 ubClosestOpponentID = NOBODY;
|
||||
|
||||
// use global defined threat list
|
||||
for (uiLoop = 0; uiLoop < guiThreatCnt; uiLoop++)
|
||||
@@ -6103,7 +6103,7 @@ void PrepareThreatlist(SOLDIERTYPE *pSoldier)
|
||||
}
|
||||
}
|
||||
|
||||
UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDistance)
|
||||
UINT16 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDistance)
|
||||
{
|
||||
CHECKF(pSoldier);
|
||||
|
||||
@@ -6113,7 +6113,7 @@ UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDista
|
||||
INT32 sThreatLoc;
|
||||
INT8 iThreatLevel;
|
||||
|
||||
UINT8 ubNum = 0;
|
||||
UINT16 ubNum = 0;
|
||||
|
||||
// loop through all the enemies
|
||||
for (uiLoop = 0; uiLoop < guiNumMercSlots; ++uiLoop)
|
||||
@@ -6157,7 +6157,7 @@ UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDista
|
||||
return ubNum;
|
||||
}
|
||||
|
||||
UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier)
|
||||
UINT16 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
CHECKF(pSoldier);
|
||||
|
||||
@@ -6167,7 +6167,7 @@ UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier)
|
||||
INT32 sThreatLoc;
|
||||
INT8 iThreatLevel;
|
||||
|
||||
UINT8 ubNum = 0;
|
||||
UINT16 ubNum = 0;
|
||||
|
||||
// loop through all the enemies
|
||||
for (uiLoop = 0; uiLoop < guiNumMercSlots; ++uiLoop)
|
||||
|
||||
+9
-11
@@ -850,13 +850,13 @@ void CalcBestThrow(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
{
|
||||
DebugMsg (TOPIC_JA2,DBG_LEVEL_3,"calcbestthrow");
|
||||
// September 9, 1998: added code for LAWs (CJC)
|
||||
UINT8 ubLoop, ubLoop2;
|
||||
UINT16 ubLoop, ubLoop2;
|
||||
INT32 iAttackValue;
|
||||
INT32 iHitRate, iThreatValue, iTotalThreatValue,iOppThreatValue[MAXMERCS];
|
||||
INT32 sGridNo, sEndGridNo, sFriendTile[MAXMERCS], sOpponentTile[MAXMERCS];
|
||||
INT8 bFriendLevel[MAXMERCS], bOpponentLevel[MAXMERCS];
|
||||
INT32 iEstDamage;
|
||||
UINT8 ubFriendCnt = 0,ubOpponentCnt = 0, ubOpponentID[MAXMERCS];
|
||||
UINT16 ubFriendCnt = 0,ubOpponentCnt = 0, ubOpponentID[MAXMERCS];
|
||||
UINT8 ubMaxPossibleAimTime;
|
||||
INT16 sRawAPCost, sMinAPcost;
|
||||
UINT8 ubChanceToHit, ubChanceToGetThrough, ubChanceToReallyHit, ubFriendlyFireChance;
|
||||
@@ -3484,9 +3484,9 @@ UINT8 UnderFire::Chance(INT8 bTeam, INT8 bSide, BOOLEAN fCheckNeutral)
|
||||
// if an enemy soldier fulfils taboo, make sure to not hit him at all!
|
||||
BOOLEAN GetBestAoEGridNo(SOLDIERTYPE *pSoldier, INT32* pGridNo, INT16 aRadius, UINT8 uCheckFriends, UINT8 aMinRating, SOLDIER_CONDITION cond, SOLDIER_CONDITION taboo)
|
||||
{
|
||||
UINT8 ubLoop, ubLoop2;
|
||||
UINT16 ubLoop, ubLoop2;
|
||||
INT32 sGridNo, sFriendTile[MAXMERCS], sOpponentTile[MAXMERCS], sTabooTile[MAXMERCS];
|
||||
UINT8 ubFriendCnt = 0,ubOpponentCnt = 0, ubTabooCnt = 0, ubOpponentID[MAXMERCS];
|
||||
UINT16 ubFriendCnt = 0,ubOpponentCnt = 0, ubTabooCnt = 0, ubOpponentID[MAXMERCS];
|
||||
INT32 bMaxLeft,bMaxRight,bMaxUp,bMaxDown, i, j;
|
||||
INT8 bPersOL, bPublOL;
|
||||
SOLDIERTYPE *pFriend;
|
||||
@@ -3676,7 +3676,7 @@ BOOLEAN GetBestAoEGridNo(SOLDIERTYPE *pSoldier, INT32* pGridNo, INT16 aRadius, U
|
||||
// Get the ID of the farthest opponent we can see, with an optional minimum range
|
||||
// puID - ID of the farthest opponent pSoldier can see
|
||||
// sRange - only return an true and give an idea if opponent found is further away than this
|
||||
BOOLEAN GetFarthestOpponent(SOLDIERTYPE *pSoldier, UINT8* puID, INT16 sRange)
|
||||
BOOLEAN GetFarthestOpponent(SOLDIERTYPE *pSoldier, UINT16 * puID, INT16 sRange)
|
||||
{
|
||||
INT32 sGridNo;
|
||||
UINT32 uiLoop;
|
||||
@@ -3800,9 +3800,7 @@ void CheckTossSelfSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
INT8 bTargetLevel = bLevel;
|
||||
|
||||
INT32 sClosestThreat;
|
||||
UINT8 ubClosestThreatID;
|
||||
|
||||
ubClosestThreatID = pSoldier->ubPreviousAttackerID;
|
||||
UINT16 ubClosestThreatID = pSoldier->ubPreviousAttackerID;
|
||||
|
||||
// try to find good spot for smoke
|
||||
if (ubClosestThreatID != NOBODY &&
|
||||
@@ -3901,7 +3899,7 @@ void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
SOLDIERTYPE * pFriend;
|
||||
INT32 sClosestFriendSpot = NOWHERE;
|
||||
INT8 bClosestFriendLevel = 0;
|
||||
UINT8 ubClosestFriendID = NOBODY;
|
||||
UINT16 ubClosestFriendID = NOBODY;
|
||||
|
||||
INT32 sFriendSpot;
|
||||
INT8 bFriendLevel;
|
||||
@@ -3914,7 +3912,7 @@ void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
UINT8 ubDirection;
|
||||
|
||||
// Run through each friendly.
|
||||
for (UINT8 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
for (UINT16 iCounter = gTacticalStatus.Team[pSoldier->bTeam].bFirstID; iCounter <= gTacticalStatus.Team[pSoldier->bTeam].bLastID; iCounter++)
|
||||
{
|
||||
pFriend = MercPtrs[iCounter];
|
||||
|
||||
@@ -4012,7 +4010,7 @@ void CheckTossFriendSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow)
|
||||
|
||||
// check if we can toss grenade at spot, and prepare attack data
|
||||
// grenade should be in hand
|
||||
void CheckTossAt(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow, INT32 sTargetSpot, INT8 bTargetLevel, UINT8 ubOpponentID)
|
||||
void CheckTossAt(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow, INT32 sTargetSpot, INT8 bTargetLevel, UINT16 ubOpponentID)
|
||||
{
|
||||
UINT16 usInHand, usGrenade;
|
||||
INT32 iTossRange;
|
||||
|
||||
@@ -70,7 +70,7 @@ INT8 gbHuntCallPriority[NUM_CREATURE_CALLS] =
|
||||
void CreatureCall( SOLDIERTYPE * pCaller )
|
||||
{
|
||||
UINT8 ubCallerType=0;
|
||||
UINT8 ubReceiver;
|
||||
UINT16 ubReceiver;
|
||||
INT8 bFullPriority;
|
||||
INT8 bPriority;
|
||||
SOLDIERTYPE * pReceiver;
|
||||
|
||||
+12
-12
@@ -47,7 +47,7 @@
|
||||
extern BOOLEAN gfHiddenInterrupt;
|
||||
extern BOOLEAN gfUseAlternateQueenPosition;
|
||||
extern UINT16 PickSoldierReadyAnimation( SOLDIERTYPE *pSoldier, BOOLEAN fEndReady, BOOLEAN fHipStance );
|
||||
extern void IncrementWatchedLoc(UINT8 ubID, INT32 sGridNo, INT8 bLevel);
|
||||
extern void IncrementWatchedLoc(UINT16 ubID, INT32 sGridNo, INT8 bLevel);
|
||||
void LogDecideInfo(SOLDIERTYPE *pSoldier);
|
||||
void LogKnowledgeInfo(SOLDIERTYPE *pSoldier);
|
||||
|
||||
@@ -759,7 +759,7 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
// WANNE: This should fix the bug if any merc are still under PC control. This could happen after boxing in SAN MONA.
|
||||
SOLDIERTYPE *pTeamSoldier;
|
||||
for (INT8 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++)
|
||||
for (UINT16 bLoop=gTacticalStatus.Team[gbPlayerNum].bFirstID; bLoop <= gTacticalStatus.Team[gbPlayerNum].bLastID; bLoop++)
|
||||
{
|
||||
pTeamSoldier=MercPtrs[bLoop];
|
||||
|
||||
@@ -938,7 +938,7 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
||||
// Flugente: if we see one of our buddies in handcuffs, its a clear sign of enemy activity!
|
||||
if ( gGameExternalOptions.fAllowPrisonerSystem && pSoldier->bTeam == ENEMY_TEAM && !gTacticalStatus.Team[pSoldier->bTeam].bAwareOfOpposition )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
UINT16 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -950,7 +950,7 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
||||
// if we are a doctor with medical gear, we might be able to help a wounded ally
|
||||
if ( pSoldier->CanMedicAI() )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
|
||||
// are we ourselves the patient?
|
||||
if ( ubPerson == pSoldier->ubID )
|
||||
@@ -1004,7 +1004,7 @@ INT8 DecideActionGreen(SOLDIERTYPE *pSoldier)
|
||||
// if we are not a medic, but are wounded, seek a medic
|
||||
else if ( pSoldier->iHealableInjury >= gGameExternalOptions.sEnemyMedicsWoundMinAmount )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -1661,7 +1661,7 @@ INT8 DecideActionYellow(SOLDIERTYPE *pSoldier)
|
||||
// Flugente: if we see one of our buddies captured, it is a clear sign of enemy activity!
|
||||
if ( gGameExternalOptions.fAllowPrisonerSystem && pSoldier->bTeam == ENEMY_TEAM )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
UINT16 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -1705,7 +1705,7 @@ INT8 DecideActionYellow(SOLDIERTYPE *pSoldier)
|
||||
// if we are a doctor with medical gear, we might be able to help a wounded ally
|
||||
if ( pSoldier->CanMedicAI() )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
|
||||
// are we ourselves the patient?
|
||||
if ( ubPerson == pSoldier->ubID )
|
||||
@@ -1759,7 +1759,7 @@ INT8 DecideActionYellow(SOLDIERTYPE *pSoldier)
|
||||
// if we are not a medic, but are wounded, seek a medic
|
||||
else if ( pSoldier->iHealableInjury >= gGameExternalOptions.sEnemyMedicsWoundMinAmount )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -3286,7 +3286,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier)
|
||||
// Flugente: if we see one of our buddies captured, it is a clear sign of enemy activity!
|
||||
if ( gGameExternalOptions.fAllowPrisonerSystem && pSoldier->bTeam == ENEMY_TEAM )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
UINT16 ubPerson = GetClosestFlaggedSoldierID( pSoldier, 20, ENEMY_TEAM, SOLDIER_POW, TRUE );
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -3325,7 +3325,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier)
|
||||
// if we are a doctor with medical gear, we might be able to help a wounded ally
|
||||
if ( pSoldier->CanMedicAI() )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestWoundedSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius, pSoldier->bTeam);
|
||||
|
||||
// are we ourselves the patient?
|
||||
if ( ubPerson == pSoldier->ubID )
|
||||
@@ -3379,7 +3379,7 @@ INT8 DecideActionRed(SOLDIERTYPE *pSoldier)
|
||||
// if we are not a medic, but are wounded, seek a medic
|
||||
else if ( pSoldier->iHealableInjury >= gGameExternalOptions.sEnemyMedicsWoundMinAmount )
|
||||
{
|
||||
UINT8 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
UINT16 ubPerson = GetClosestMedicSoldierID( pSoldier, gGameExternalOptions.sEnemyMedicsSearchRadius / 2, pSoldier->bTeam);
|
||||
|
||||
if ( ubPerson != NOBODY )
|
||||
{
|
||||
@@ -6842,7 +6842,7 @@ L_NEWAIM:
|
||||
{
|
||||
DebugAI(AI_MSG_TOPIC, pSoldier, String("[Make boxer close if possible]"));
|
||||
|
||||
UINT8 ubOpponentID;
|
||||
UINT16 ubOpponentID;
|
||||
sClosestOpponent = ClosestKnownOpponent(pSoldier, NULL, NULL, &ubOpponentID);
|
||||
DebugAI(AI_MSG_INFO, pSoldier, String("boxer: found closest opponent [%d] at %d", ubOpponentID, sClosestOpponent));
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ void AICenterXY( INT32 sGridNo, FLOAT * pdX, FLOAT * pdY )
|
||||
*pdY = (FLOAT) (sYPos * CELL_Y_SIZE + CELL_Y_SIZE / 2);
|
||||
}
|
||||
|
||||
INT8 CalcWorstCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
INT8 CalcWorstCTGTForPosition( SOLDIERTYPE * pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
{
|
||||
// When considering a gridno for cover, we want to take into account cover if we
|
||||
// lie down, so we return the LOWEST chance to get through for that location.
|
||||
@@ -162,7 +162,7 @@ INT8 CalcWorstCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sOpp
|
||||
return( bWorstCTGT );
|
||||
}
|
||||
|
||||
INT8 CalcAverageCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
INT8 CalcAverageCTGTForPosition( SOLDIERTYPE * pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
{
|
||||
// When considering a gridno for cover, we want to take into account cover if we
|
||||
// lie down, so we return the LOWEST chance to get through for that location.
|
||||
@@ -196,7 +196,7 @@ INT8 CalcAverageCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sO
|
||||
}
|
||||
|
||||
|
||||
INT8 CalcBestCTGT( SOLDIERTYPE *pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
INT8 CalcBestCTGT( SOLDIERTYPE *pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft )
|
||||
{
|
||||
// NOTE: CTGT stands for "ChanceToGetThrough..."
|
||||
|
||||
@@ -595,7 +595,8 @@ INT32 CalcCoverValue(SOLDIERTYPE *pMe, INT32 sMyGridNo, INT32 iMyThreat, INT32 i
|
||||
|
||||
UINT8 NumberOfTeamMatesAdjacent( SOLDIERTYPE * pSoldier, INT32 sGridNo )
|
||||
{
|
||||
UINT8 ubLoop, ubCount, ubWhoIsThere;
|
||||
UINT8 ubLoop, ubCount;
|
||||
UINT16 ubWhoIsThere;
|
||||
INT32 sTempGridNo;
|
||||
|
||||
ubCount = 0;
|
||||
|
||||
+20
-19
@@ -44,9 +44,9 @@ BOOLEAN FindAutobandageClimbPoint( INT32 sDesiredGridNo, BOOLEAN fClimbUp )
|
||||
{
|
||||
// checks for existance of location to climb up to building, not occupied by a medic
|
||||
BUILDING * pBuilding;
|
||||
UINT8 ubNumClimbSpots;
|
||||
UINT8 ubNumClimbSpots;
|
||||
UINT8 ubLoop;
|
||||
UINT8 ubWhoIsThere;
|
||||
UINT16 ubWhoIsThere;
|
||||
|
||||
pBuilding = FindBuilding( sDesiredGridNo );
|
||||
if (!pBuilding)
|
||||
@@ -76,8 +76,8 @@ BOOLEAN FindAutobandageClimbPoint( INT32 sDesiredGridNo, BOOLEAN fClimbUp )
|
||||
|
||||
BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient )
|
||||
{
|
||||
UINT8 cnt;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
UINT16 cnt;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
|
||||
if ( CanCharacterAutoBandageTeammate( pPatient ) )
|
||||
{
|
||||
@@ -123,10 +123,10 @@ BOOLEAN FullPatientCheck( SOLDIERTYPE * pPatient )
|
||||
BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck )
|
||||
{
|
||||
// returns false if we should stop being in auto-bandage mode
|
||||
UINT8 cnt;
|
||||
UINT8 ubMedics = 0, ubPatients = 0;
|
||||
UINT16 cnt;
|
||||
UINT16 ubMedics = 0, ubPatients = 0;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
static UINT8 ubIDForFullCheck = NOBODY;
|
||||
static UINT16 ubIDForFullCheck = NOBODY;
|
||||
|
||||
// run though the list of chars on team
|
||||
cnt = gTacticalStatus.Team[ gbPlayerNum ].bFirstID;
|
||||
@@ -231,18 +231,19 @@ BOOLEAN CanCharacterBeAutoBandagedByTeammate( SOLDIERTYPE *pSoldier )
|
||||
|
||||
INT8 FindBestPatient( SOLDIERTYPE * pSoldier, BOOLEAN * pfDoClimb )
|
||||
{
|
||||
UINT8 cnt, cnt2;
|
||||
INT32 bBestPriority = 0, sBestAdjGridNo = NOWHERE;
|
||||
INT32 sPatientGridNo = NOWHERE, sBestPatientGridNo = NOWHERE;
|
||||
INT16 sShortestPath = 1000, sPathCost, sOtherMedicPathCost;
|
||||
SOLDIERTYPE * pPatient;
|
||||
SOLDIERTYPE * pBestPatient = NULL;
|
||||
SOLDIERTYPE * pOtherMedic;
|
||||
INT8 bPatientPriority;
|
||||
UINT8 ubDirection;
|
||||
UINT16 cnt;
|
||||
UINT8 cnt2;
|
||||
INT32 bBestPriority = 0, sBestAdjGridNo = NOWHERE;
|
||||
INT32 sPatientGridNo = NOWHERE, sBestPatientGridNo = NOWHERE;
|
||||
INT16 sShortestPath = 1000, sPathCost, sOtherMedicPathCost;
|
||||
SOLDIERTYPE * pPatient;
|
||||
SOLDIERTYPE * pBestPatient = NULL;
|
||||
SOLDIERTYPE * pOtherMedic;
|
||||
INT8 bPatientPriority;
|
||||
UINT8 ubDirection;
|
||||
INT32 sAdjustedGridNo, sAdjacentGridNo, sOtherAdjacentGridNo;
|
||||
INT32 sClimbGridNo, sBestClimbGridNo = NOWHERE, sShortestClimbPath = 1000;
|
||||
BOOLEAN fClimbingNecessary;
|
||||
INT32 sClimbGridNo, sBestClimbGridNo = NOWHERE, sShortestClimbPath = 1000;
|
||||
BOOLEAN fClimbingNecessary;
|
||||
|
||||
gubGlobalPathFlags = PATH_THROUGH_PEOPLE;
|
||||
|
||||
@@ -478,7 +479,7 @@ INT8 DecideAutoBandage( SOLDIERTYPE * pSoldier )
|
||||
BOOLEAN DoctorIsPresent( SOLDIERTYPE * pPatient, BOOLEAN fOnDoctorAssignmentCheck )
|
||||
{
|
||||
SOLDIERTYPE * pMedic = NULL;
|
||||
UINT8 cnt;
|
||||
UINT16 cnt;
|
||||
INT8 bSlot;
|
||||
BOOLEAN fDoctorHasBeenFound = FALSE;
|
||||
|
||||
|
||||
+14
-13
@@ -2566,7 +2566,8 @@ void Converse( UINT8 ubNPC, UINT8 ubMerc, INT8 bApproach, UINT32 uiApproachData
|
||||
INT32 NPCConsiderInitiatingConv( SOLDIERTYPE * pNPC, UINT8 * pubDesiredMerc )
|
||||
{
|
||||
INT32 sMyGridNo, sDist, sDesiredMercDist = 100;
|
||||
UINT8 ubNPC, ubMerc, ubDesiredMerc = NOBODY;
|
||||
UINT8 ubNPC;
|
||||
UINT16 ubMerc, ubDesiredMerc = NOBODY;
|
||||
UINT8 ubTalkDesire, ubHighestTalkDesire = 0;
|
||||
SOLDIERTYPE * pMerc;
|
||||
SOLDIERTYPE * pDesiredMerc = NULL;
|
||||
@@ -2913,9 +2914,9 @@ BOOLEAN PCDoesFirstAidOnNPC( UINT8 ubNPC )
|
||||
void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
|
||||
{
|
||||
// Loop through all mercs, gather closest mercs who can see and trigger one!
|
||||
UINT8 ubMercsInSector[ 40 ] = { 0 };
|
||||
UINT8 ubNumMercs = 0;
|
||||
UINT8 ubChosenMerc;
|
||||
UINT16 ubMercsInSector[CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS] = { 0 }; //std::vector would probably be better here
|
||||
UINT16 ubNumMercs = 0;
|
||||
UINT16 ubChosenMerc;
|
||||
SOLDIERTYPE *pTeamSoldier, *pSoldier;
|
||||
INT32 cnt;
|
||||
|
||||
@@ -2933,7 +2934,7 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
|
||||
// Add guy if he's a candidate...
|
||||
if ( OK_INSECTOR_MERC( pTeamSoldier ) && pTeamSoldier->aiData.bOppList[ pSoldier->ubID ] == SEEN_CURRENTLY )
|
||||
{
|
||||
ubMercsInSector[ ubNumMercs ] = (UINT8)cnt;
|
||||
ubMercsInSector[ ubNumMercs ] = (UINT16)cnt;
|
||||
ubNumMercs++;
|
||||
}
|
||||
}
|
||||
@@ -2941,7 +2942,7 @@ void TriggerClosestMercWhoCanSeeNPC( UINT8 ubNPC, NPCQuoteInfo *pQuotePtr )
|
||||
// If we are > 0
|
||||
if ( ubNumMercs > 0 )
|
||||
{
|
||||
ubChosenMerc = (UINT8)Random( ubNumMercs );
|
||||
ubChosenMerc = (UINT16)Random( ubNumMercs );
|
||||
|
||||
// Post action to close panel
|
||||
NPCClosePanel( );
|
||||
@@ -3649,12 +3650,12 @@ BOOLEAN LoadBackupNPCInfoFromSavedGameFile( HWFILE hFile, UINT32 uiSaveGameVersi
|
||||
|
||||
void TriggerFriendWithHostileQuote( UINT8 ubNPC )
|
||||
{
|
||||
UINT8 ubMercsAvailable[ 40 ] = { 0 };
|
||||
UINT8 ubNumMercsAvailable = 0, ubChosenMerc;
|
||||
SOLDIERTYPE * pTeamSoldier;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
INT32 cnt;
|
||||
INT8 bTeam;
|
||||
UINT16 ubMercsAvailable[CODE_MAXIMUM_NUMBER_OF_PLAYER_MERCS] = { 0 };
|
||||
UINT16 ubNumMercsAvailable = 0, ubChosenMerc;
|
||||
SOLDIERTYPE * pTeamSoldier;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
INT32 cnt;
|
||||
INT8 bTeam;
|
||||
|
||||
// First get pointer to NPC
|
||||
pSoldier = FindSoldierByProfileID( ubNPC, FALSE );
|
||||
@@ -3697,7 +3698,7 @@ void TriggerFriendWithHostileQuote( UINT8 ubNPC )
|
||||
if (ubNumMercsAvailable > 0)
|
||||
{
|
||||
PauseAITemporarily();
|
||||
ubChosenMerc = (UINT8) Random( ubNumMercsAvailable );
|
||||
ubChosenMerc = (UINT16) Random( ubNumMercsAvailable );
|
||||
TriggerNPCWithIHateYouQuote( ubMercsAvailable[ ubChosenMerc ] );
|
||||
}
|
||||
else
|
||||
|
||||
@@ -19,7 +19,7 @@ void MakeClosestEnemyChosenOne()
|
||||
UINT32 cnt;
|
||||
INT16 sPathCost, sShortestPath = 1000;
|
||||
INT8 bOldKeys = -1;
|
||||
UINT8 ubClosestEnemy = NOBODY;
|
||||
UINT16 ubClosestEnemy = NOBODY;
|
||||
SOLDIERTYPE * pSoldier;
|
||||
INT8 bPanicTrigger;
|
||||
INT32 sPanicTriggerGridNo;
|
||||
|
||||
@@ -575,7 +575,7 @@ INT8 ZombieDecideActionRed(SOLDIERTYPE *pSoldier)
|
||||
INT8 bInWater, bInDeepWater;
|
||||
INT8 bSeekPts = 0, bHelpPts = 0, bWatchPts = 0;
|
||||
BOOLEAN fClimb;
|
||||
UINT8 ubThreatID = NOBODY;
|
||||
UINT16 ubThreatID = NOBODY;
|
||||
INT32 sThreatSpot = NOWHERE;
|
||||
INT8 bThreatLevel = 0;
|
||||
|
||||
@@ -914,7 +914,7 @@ INT8 ZombieDecideActionBlack(SOLDIERTYPE *pSoldier)
|
||||
INT8 bWeaponIn;
|
||||
BOOLEAN fClimb;
|
||||
INT32 iDummy;
|
||||
UINT8 ubThreatID = NOBODY;
|
||||
UINT16 ubThreatID = NOBODY;
|
||||
INT32 sThreatSpot = NOWHERE;
|
||||
INT8 bThreatLevel = 0;
|
||||
|
||||
|
||||
+28
-28
@@ -175,7 +175,7 @@ void CheckForChangingOrders(SOLDIERTYPE *pSoldier );
|
||||
|
||||
INT8 ClosestPanicTrigger( SOLDIERTYPE * pSoldier );
|
||||
|
||||
INT32 ClosestKnownOpponent(SOLDIERTYPE *pSoldier, INT32 * psGridNo, INT8 * pbLevel, UINT8 *pubOpponentID = NULL);
|
||||
INT32 ClosestKnownOpponent(SOLDIERTYPE *pSoldier, INT32 * psGridNo, INT8 * pbLevel, UINT16 * pubOpponentID = NULL);
|
||||
INT32 ClosestPC( SOLDIERTYPE *pSoldier, INT32 * psDistance );
|
||||
INT32 ClosestUnDisguisedPC( SOLDIERTYPE *pSoldier, INT32 * psDistance ); // Flugente: like ClosestPC(...), but does not account for covert or not visible mercs
|
||||
BOOLEAN CanAutoBandage( BOOLEAN fDoFullCheck );
|
||||
@@ -220,7 +220,7 @@ BOOLEAN FindRoofClimbingPoints( SOLDIERTYPE * pSoldier, INT16 sDesiredSpot );
|
||||
INT32 FindSpotMaxDistFromOpponents(SOLDIERTYPE *pSoldier);
|
||||
INT32 FindSweetCoverSpot(SOLDIERTYPE *pSoldier);
|
||||
|
||||
void FreeUpNPCFromAttacking(UINT8 ubID);
|
||||
void FreeUpNPCFromAttacking(UINT16 ubID);
|
||||
void FreeUpNPCFromPendingAction( SOLDIERTYPE * pSoldier );
|
||||
void FreeUpNPCFromTurning(SOLDIERTYPE *pSoldier, INT8 bLook);
|
||||
void FreeUpNPCFromStanceChange(SOLDIERTYPE *pSoldier );
|
||||
@@ -228,7 +228,7 @@ void FreeUpNPCFromLoweringGun( SOLDIERTYPE *pSoldier );
|
||||
void FreeUpNPCFromRoofClimb(SOLDIERTYPE *pSoldier );
|
||||
|
||||
UINT8 GetClosestOpponent( SOLDIERTYPE *pSoldier );
|
||||
UINT8 GetMostThreateningOpponent( SOLDIERTYPE *pSoldier );
|
||||
UINT16 GetMostThreateningOpponent( SOLDIERTYPE *pSoldier );
|
||||
|
||||
void HandleSoldierAI( SOLDIERTYPE *pSoldier );
|
||||
void HandleInitialRedAlert( INT8 bTeam, UINT8 ubCommunicate);
|
||||
@@ -271,19 +271,19 @@ INT32 FindFlankingSpot(SOLDIERTYPE *pSoldier, INT32 sPos, INT8 bAction );
|
||||
BOOLEAN CanClimbFromHere (SOLDIERTYPE * pSoldier, BOOLEAN fUp );
|
||||
|
||||
// HEADROCK HAM 3.6: Adding includes for A* cover calculations
|
||||
INT8 CalcWorstCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
INT8 CalcBestCTGT( SOLDIERTYPE *pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
INT8 CalcAverageCTGTForPosition( SOLDIERTYPE * pSoldier, UINT8 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
INT8 CalcWorstCTGTForPosition( SOLDIERTYPE * pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
INT8 CalcBestCTGT( SOLDIERTYPE *pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
INT8 CalcAverageCTGTForPosition( SOLDIERTYPE * pSoldier, UINT16 ubOppID, INT32 sOppGridNo, INT8 bLevel, INT32 iMyAPsLeft );
|
||||
UINT8 NumberOfTeamMatesAdjacent( SOLDIERTYPE * pSoldier, INT32 sGridNo );
|
||||
|
||||
// Flugente: get the id of the closest soldier (coser than x tiles) of a specific team with a specific flag that we can currently see
|
||||
UINT8 GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight = TRUE );
|
||||
UINT16 GetClosestFlaggedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam, UINT32 aFlag, BOOLEAN fCheckSight = TRUE );
|
||||
|
||||
// get the id of the closest soldier (closer than x tiles) of a specific team that is wounded that we can currently see
|
||||
UINT8 GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam );
|
||||
UINT16 GetClosestWoundedSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam );
|
||||
|
||||
// get the id of the closest medic (closer than x tiles) of a specific team
|
||||
UINT8 GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam );
|
||||
UINT16 GetClosestMedicSoldierID( SOLDIERTYPE * pSoldier, INT16 aRange, UINT8 auTeam );
|
||||
|
||||
// sevenfm:
|
||||
BOOLEAN NightLight(void);
|
||||
@@ -291,15 +291,15 @@ BOOLEAN DuskLight(void);
|
||||
BOOLEAN InSmokeNearby(INT32 sGridNo, INT8 bLevel);
|
||||
INT16 MaxNormalVisionDistance( void );
|
||||
UINT8 MinFlankDirections( SOLDIERTYPE *pSoldier );
|
||||
UINT8 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo );
|
||||
UINT16 CountFriendsInDirection( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo );
|
||||
BOOLEAN GuySawEnemy( SOLDIERTYPE * pSoldier, UINT8 ubMax = SEEN_3_TURNS_AGO );
|
||||
UINT8 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistance );
|
||||
UINT16 CountNearbyFriends( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistance );
|
||||
UINT8 CountNearbyFriendsLastAttackHit( SOLDIERTYPE *pSoldier, INT32 sGridNo, UINT8 ubDistance );
|
||||
UINT8 CountFriendsFlankSameSpot(SOLDIERTYPE *pSoldier, INT32 sSpot = NOWHERE);
|
||||
UINT8 CountFriendsBlack( SOLDIERTYPE *pSoldier, INT32 sClosestOpponent = NOWHERE );
|
||||
UINT8 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance);
|
||||
UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDistance);
|
||||
UINT8 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier);
|
||||
UINT16 CountTeamUnderAttack(INT8 bTeam, INT32 sGridNo, INT16 sDistance);
|
||||
UINT16 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 sDistance);
|
||||
UINT16 CountPublicKnownEnemies(SOLDIERTYPE *pSoldier);
|
||||
|
||||
UINT8 SectorCurfew(BOOLEAN fNight);
|
||||
UINT8 TeamPercentKilled(INT8 bTeam);
|
||||
@@ -308,15 +308,15 @@ UINT8 ArmyPercentKilled(void);
|
||||
UINT8 ArmyPercentKilledTolerance(void);
|
||||
|
||||
BOOLEAN EnemySeenSoldierRecently( SOLDIERTYPE *pSoldier, UINT8 ubMax = SEEN_3_TURNS_AGO );
|
||||
UINT8 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier );
|
||||
UINT16 CountTeamSeeSoldier( INT8 bTeam, SOLDIERTYPE *pSoldier );
|
||||
|
||||
BOOLEAN AICheckFriendsNoContact( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN AICheckIsFlanking( SOLDIERTYPE *pSoldier );
|
||||
|
||||
INT8 CalcMoraleNew(SOLDIERTYPE *pSoldier);
|
||||
void PrepareThreatlist(SOLDIERTYPE *pSoldier);
|
||||
UINT8 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT8 ubMax = SEEN_CURRENTLY); // first call PrepareThreatlist to make threat list
|
||||
UINT8 ClosestKnownThreatID(SOLDIERTYPE *pSoldier); // first call PrepareThreatlist to make threat list
|
||||
UINT16 ClosestSeenThreatID(SOLDIERTYPE *pSoldier, UINT8 ubMax = SEEN_CURRENTLY); // first call PrepareThreatlist to make threat list
|
||||
UINT16 ClosestKnownThreatID(SOLDIERTYPE *pSoldier); // first call PrepareThreatlist to make threat list
|
||||
|
||||
BOOLEAN ProneSightCoverAtSpot(SOLDIERTYPE *pSoldier, INT32 sSpot, BOOLEAN fUnlimited);
|
||||
BOOLEAN SightCoverAtSpot(SOLDIERTYPE *pSoldier, INT32 sSpot, BOOLEAN fUnlimited);
|
||||
@@ -336,7 +336,7 @@ UINT8 TerrainDensity(INT32 sSpot, INT8 bLevel, UINT8 ubDistance, BOOLEAN fGrass)
|
||||
BOOLEAN FindNearbyExplosiveStructure(INT32 sSpot, INT8 bLevel);
|
||||
INT16 DistanceToClosestActiveOpponent(SOLDIERTYPE *pSoldier, INT32 sSpot);
|
||||
BOOLEAN ValidOpponent(SOLDIERTYPE* pSoldier, SOLDIERTYPE* pOpponent);
|
||||
UINT8 CountSeenEnemiesLastTurn( SOLDIERTYPE *pSoldier );
|
||||
UINT16 CountSeenEnemiesLastTurn( SOLDIERTYPE *pSoldier );
|
||||
BOOLEAN FindObstacleNearSpot(INT32 sSpot, INT8 bLevel);
|
||||
BOOLEAN CheckNPCDestination(SOLDIERTYPE *pSoldier, INT32 sGridNo);
|
||||
UINT8 SpotDangerLevel(SOLDIERTYPE *pSoldier, INT32 sGridNo);
|
||||
@@ -387,19 +387,19 @@ BOOLEAN AICheckSpecialRole(SOLDIERTYPE *pSoldier);
|
||||
// Knowledge functions
|
||||
// *************************************************************
|
||||
|
||||
INT8 Knowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT32 KnownLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT8 KnownLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT8 Knowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
INT32 KnownLocation(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
INT8 KnownLevel(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
|
||||
BOOLEAN UsePersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
BOOLEAN UsePersonalKnowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
|
||||
INT8 PersonalKnowledge(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT32 KnownPersonalLocation(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT8 KnownPersonalLevel(SOLDIERTYPE *pSoldier, UINT8 ubOpponentID);
|
||||
INT8 PersonalKnowledge(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
INT32 KnownPersonalLocation(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
INT8 KnownPersonalLevel(SOLDIERTYPE *pSoldier, UINT16 ubOpponentID);
|
||||
|
||||
INT8 PublicKnowledge(UINT8 bTeam, UINT8 ubOpponentID);
|
||||
INT32 KnownPublicLocation(UINT8 bTeam, UINT8 ubOpponentID);
|
||||
INT8 KnownPublicLevel(UINT8 bTeam, UINT8 ubOpponentID);
|
||||
INT8 PublicKnowledge(UINT8 bTeam, UINT16 ubOpponentID);
|
||||
INT32 KnownPublicLocation(UINT8 bTeam, UINT16 ubOpponentID);
|
||||
INT8 KnownPublicLevel(UINT8 bTeam, UINT16 ubOpponentID);
|
||||
|
||||
#define MAX_FLANKS_RED 25
|
||||
#define MAX_FLANKS_YELLOW 25
|
||||
|
||||
Reference in New Issue
Block a user