More AI logging information.

PanicAI: use correct movement and stealth mode when determining AP needed.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8768 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2020-03-08 22:39:21 +00:00
parent 5b8f91912f
commit 9e1b5338a6
18 changed files with 190 additions and 47 deletions
+2
View File
@@ -82,6 +82,7 @@ void ExitBoxing( void )
SetSoldierNeutral( pSoldier );
RecalculateOppCntsDueToBecomingNeutral( pSoldier );
}
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: exit boxing"));
CancelAIAction( pSoldier, TRUE );
pSoldier->aiData.bAlertStatus = STATUS_GREEN;
pSoldier->aiData.bUnderFire = 0;
@@ -396,6 +397,7 @@ BOOLEAN PickABoxer( void )
pBoxer->flags.uiStatusFlags |= SOLDIER_BOXER;
SetSoldierNonNeutral( pBoxer );
RecalculateOppCntsDueToNoLongerNeutral( pBoxer );
DebugAI(AI_MSG_INFO, pBoxer, String("CancelAIAction: pick a boxer"));
CancelAIAction( pBoxer, TRUE );
RESETTIMECOUNTER( pBoxer->timeCounters.AICounter, 0 );
gfBoxerFought[ uiLoop ] = TRUE;
+1
View File
@@ -468,6 +468,7 @@ void ProcessImplicationsOfPCMessingWithDoor( SOLDIERTYPE * pSoldier )
// alert her if she hasn't been alerted
pGoon->aiData.bAlertStatus = STATUS_RED;
CheckForChangingOrders( pGoon );
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: tixa door"));
CancelAIAction( pGoon, TRUE );
}
}
+1
View File
@@ -6604,6 +6604,7 @@ void RemoveBlueFlag( INT32 sGridNo, INT8 bLevel )
void MakeNPCGrumpyForMinorOffense( SOLDIERTYPE * pSoldier, SOLDIERTYPE *pOffendingSoldier )
{
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: MakeNPCGrumpyForMinorOffense"));
CancelAIAction( pSoldier, TRUE );
switch( pSoldier->ubProfile )
+1
View File
@@ -2722,6 +2722,7 @@ void UIHandleMercAttack( SOLDIERTYPE *pSoldier , SOLDIERTYPE *pTargetSoldier, IN
if ( NPCFirstDraw( pSoldier, pTargetSoldier ) )
{
// go into turnbased for that person
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: UIHandleMercAttack"));
CancelAIAction( pTargetSoldier, TRUE );
AddToShouldBecomeHostileOrSayQuoteList( pTargetSoldier->ubID );
//MakeCivHostile( pTargetSoldier, 2 );
+4
View File
@@ -3510,6 +3510,7 @@ void HandlePlayerTeamMemberDeath( SOLDIERTYPE *pSoldier )
{
if ( pSoldier->ubAutoBandagingMedic != NOBODY )
{
DebugAI(AI_MSG_INFO, MercPtrs[pSoldier->ubAutoBandagingMedic], String("CancelAIAction: stop autobandaging in HandlePlayerTeamMemberDeath"));
CancelAIAction( MercPtrs[ pSoldier->ubAutoBandagingMedic ], TRUE );
}
}
@@ -6073,6 +6074,7 @@ void CommonEnterCombatModeCode( )
pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
// END AI actions
DebugAI(AI_MSG_INFO, MercPtrs[pSoldier->ubAutoBandagingMedic], String("CancelAIAction: enter combat mode"));
CancelAIAction( pSoldier, TRUE );
// turn off AI controlled flag
@@ -8812,6 +8814,7 @@ void HandleSuppressionFire( UINT8 ubTargetedMerc, UINT8 ubCausedAttacker )
// AI people will have to have their actions canceled
if (!(pSoldier->flags.uiStatusFlags & SOLDIER_PC))
{
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: suppression: change stance/cower"));
CancelAIAction( pSoldier, TRUE );
#if 0
pSoldier->aiData.bAction = AI_ACTION_CHANGE_STANCE;
@@ -9768,6 +9771,7 @@ void CencelAllActionsForTimeCompression( )
if ( pSoldier->bInSector )
{
// Hault!
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: time compression"));
pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
// END AI actions
+2
View File
@@ -1987,6 +1987,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
if ( pTSoldier->bTeam != gbPlayerNum )
{
DebugAI(AI_MSG_INFO, pTSoldier, String("CancelAIAction: dodge"));
CancelAIAction( pTSoldier, TRUE );
}
@@ -2493,6 +2494,7 @@ BOOLEAN AdjustToNextAnimationFrame( SOLDIERTYPE *pSoldier )
{
if (!TileIsOutOfBounds(pSoldier->sAbsoluteFinalDestination))
{
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: end door open code"));
CancelAIAction( pSoldier, FORCE );
}
}
+26 -10
View File
@@ -12649,6 +12649,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio
if ( pTSoldier->bTeam != gbPlayerNum )
{
DebugAI(AI_MSG_INFO, pTSoldier, String("CancelAIAction: begin blade attack"));
CancelAIAction( pTSoldier, TRUE );
}
@@ -12984,6 +12985,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginPunchAttack( INT32 sGridNo, UINT8 ubDirectio
if ( pTSoldier->bTeam != gbPlayerNum )
{
DebugAI(AI_MSG_INFO, pTSoldier, String("CancelAIAction: begin blade attack"));
CancelAIAction( pTSoldier, TRUE );
}
@@ -16522,16 +16524,6 @@ BOOLEAN SOLDIERTYPE::IsAssassin( )
return FALSE;
}
BOOLEAN SOLDIERTYPE::CheckInitialAP(void)
{
if (this->bActionPoints < this->bInitialActionPoints || this->usSoldierFlagMask2 & SOLDIER_SPENT_AP)
{
return FALSE;
}
return TRUE;
}
UINT8 SOLDIERTYPE::GetMultiTurnAction( )
{
return usMultiTurnAction;
@@ -22171,6 +22163,7 @@ BOOLEAN SOLDIERTYPE::PlayerSoldierStartTalking( UINT8 ubTargetID, BOOLEAN fValid
{
// Start combat etc
DeleteTalkingMenu( );
DebugAI(AI_MSG_INFO, pTSoldier, String("CancelAIAction: assasin: start talking"));
CancelAIAction( pTSoldier, TRUE );
AddToShouldBecomeHostileOrSayQuoteList( pTSoldier->ubID );
}
@@ -24789,3 +24782,26 @@ BOOLEAN ApplyConsumable( SOLDIERTYPE* pSoldier, OBJECTTYPE *pObj, BOOLEAN fForce
return FALSE;
}
// sevenfm: service functions
BOOLEAN SOLDIERTYPE::CheckInitialAP(void)
{
if (this->bActionPoints < this->bInitialActionPoints || this->usSoldierFlagMask2 & SOLDIER_SPENT_AP)
{
return FALSE;
}
return TRUE;
}
BOOLEAN SOLDIERTYPE::IsFlanking(void)
{
if (this->aiData.bAlertStatus < STATUS_YELLOW ||
this->numFlanks == 0 ||
this->numFlanks >= MAX_FLANKS_RED)
{
return FALSE;
}
return TRUE;
}
+4 -1
View File
@@ -1840,9 +1840,12 @@ public:
// lose disguise or take off any clothes item and switch back to original clothes
void Strip();
// check wether our disguise is any good
// check whether our disguise is any good
void SpySelfTest();
// sevenfm: service functions
BOOLEAN IsFlanking(void);
// Flugente: prisoner system
BOOLEAN CanProcessPrisoners();
UINT32 GetSurrenderStrength();
+4 -1
View File
@@ -1843,7 +1843,7 @@ void HandleManNoLongerSeen( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pOpponent, INT
{
// unauthorized!
// make guard run to block guard room
CancelAIAction( pSoldier, TRUE );
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: make guard run to block guard room")); CancelAIAction( pSoldier, TRUE );
RESETTIMECOUNTER( pSoldier->timeCounters.AICounter, 0 );
pSoldier->aiData.bNextAction = AI_ACTION_RUN;
pSoldier->aiData.usNextActionData = 13250;
@@ -2298,6 +2298,7 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo,
if ( pSoldier->aiData.bOppCnt == 0 )
{
// didn't see anyone before!
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: NPC with profile: change orders, reset action"));
CancelAIAction( pSoldier, TRUE );
SetNewSituation( pSoldier );
}
@@ -2314,6 +2315,7 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo,
}
else if ( ( CheckFact( FACT_ANGEL_LEFT_DEED, ANGEL ) == TRUE ) && ( CheckFact( FACT_ANGEL_MENTIONED_DEED, ANGEL ) == FALSE ) )
{
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: NPC: Angel code"));
CancelAIAction( pSoldier, TRUE );
pSoldier->sAbsoluteFinalDestination = NOWHERE;
pSoldier->EVENT_StopMerc( pSoldier->sGridNo, pSoldier->ubDirection );
@@ -2389,6 +2391,7 @@ void ManSeesMan(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, INT32 sOppGridNo,
if ( pSoldier->aiData.bOppCnt == 0 )
{
// didn't see anyone before!
DebugAI(AI_MSG_INFO, pSoldier, String("CancelAIAction: assasin: didn't see anyone before!"));
CancelAIAction( pSoldier, TRUE );
SetNewSituation( pSoldier );
}