From 131172e41a2a43915ad69d6fcabe9db827c41a2b Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Fri, 15 Nov 2024 22:54:44 +0200 Subject: [PATCH] Convert SOLDIERTYPE->ubPreviousAttackerID to SoldierID --- Multiplayer/client.cpp | 4 ++-- Tactical/Dialogue Control.cpp | 4 ++-- Tactical/Soldier Ani.cpp | 2 +- Tactical/Soldier Control.h | 2 +- Tactical/SoldierTooltips.cpp | 6 +++--- TacticalAI/Attacks.cpp | 30 ++++++++++++------------------ 6 files changed, 21 insertions(+), 27 deletions(-) diff --git a/Multiplayer/client.cpp b/Multiplayer/client.cpp index b8507358..b1100d17 100644 --- a/Multiplayer/client.cpp +++ b/Multiplayer/client.cpp @@ -3863,9 +3863,9 @@ void send_death( SOLDIERTYPE *pSoldier ) if(pAttacker) { // if attacker was one of our own mercs, use the last hostile attacker as the killer if there is one - if (pAttacker->bTeam == pSoldier->bTeam && pSoldier->ubPreviousAttackerID != NULL && pSoldier->ubPreviousAttackerID != NOBODY) + if (pAttacker->bTeam == pSoldier->bTeam && pSoldier->ubPreviousAttackerID < NOBODY) { - pAttacker=MercPtrs[ pSoldier->ubPreviousAttackerID ]; + pAttacker = pSoldier->ubPreviousAttackerID; // check if the new attacker was also a friendly... if (pAttacker->bTeam == pSoldier->bTeam && pSoldier->ubNextToPreviousAttackerID != NULL && pSoldier->ubNextToPreviousAttackerID != NOBODY) pAttacker=MercPtrs[ pSoldier->ubNextToPreviousAttackerID ]; diff --git a/Tactical/Dialogue Control.cpp b/Tactical/Dialogue Control.cpp index cc8c8e67..4a2fc253 100644 --- a/Tactical/Dialogue Control.cpp +++ b/Tactical/Dialogue Control.cpp @@ -3117,8 +3117,8 @@ void HandleDialogueEnd( FACETYPE *pFace ) case QUOTE_CLOSE_CALL: case QUOTE_UNDER_HEAVY_FIRE: case QUOTE_TAKEN_A_BREATING: - if( pSoldier->ubPreviousAttackerID != NOBODY && !( MercPtrs[pSoldier->ubPreviousAttackerID]->bDeafenedCounter > 0 ) ) - PossiblyStartEnemyTaunt( MercPtrs[pSoldier->ubPreviousAttackerID], TAUNT_RIPOSTE, gTacticalStatus.ubLastQuoteProfileNUm ); + if( pSoldier->ubPreviousAttackerID != NOBODY && !( pSoldier->ubPreviousAttackerID->bDeafenedCounter > 0 ) ) + PossiblyStartEnemyTaunt( pSoldier->ubPreviousAttackerID, TAUNT_RIPOSTE, gTacticalStatus.ubLastQuoteProfileNUm ); break; default: // select random enemy, who we see, who sees us and isn't deaf diff --git a/Tactical/Soldier Ani.cpp b/Tactical/Soldier Ani.cpp index 92cf3377..8f1e6191 100644 --- a/Tactical/Soldier Ani.cpp +++ b/Tactical/Soldier Ani.cpp @@ -3936,7 +3936,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse ) } else if(pSoldier->ubPreviousAttackerID != NOBODY) { - pKillerSoldier = MercPtrs[pSoldier->ubPreviousAttackerID]; + pKillerSoldier = pSoldier->ubPreviousAttackerID; } if(pKillerSoldier != NULL) { diff --git a/Tactical/Soldier Control.h b/Tactical/Soldier Control.h index c092c3c2..858263d3 100644 --- a/Tactical/Soldier Control.h +++ b/Tactical/Soldier Control.h @@ -1187,8 +1187,8 @@ public: UINT32 uiAIDelay; INT16 sReloadDelay; - UINT16 ubPreviousAttackerID; SoldierID ubAttackerID; + SoldierID ubPreviousAttackerID; INT32 sInsertionGridNo; diff --git a/Tactical/SoldierTooltips.cpp b/Tactical/SoldierTooltips.cpp index 0adebc5a..ceb58df0 100644 --- a/Tactical/SoldierTooltips.cpp +++ b/Tactical/SoldierTooltips.cpp @@ -261,13 +261,13 @@ void SoldierTooltip( SOLDIERTYPE* pSoldier ) swprintf(pStrInfo, L"%s|Roaming |Range: %d\n", pStrInfo, RoamingRange(pSoldier, &usOrigin)); swprintf(pStrInfo, L"%s|Team |Aware: %d\n", pStrInfo, gTacticalStatus.Team[pSoldier->bTeam].bAwareOfOpposition); swprintf(pStrInfo, L"%s|Collapsed %d |BreathCollapsed %d\n", pStrInfo, pSoldier->bCollapsed, pSoldier->bBreathCollapsed); - if (pSoldier->ubPreviousAttackerID != NOBODY && MercPtrs[pSoldier->ubPreviousAttackerID]) + if (pSoldier->ubPreviousAttackerID < NOBODY) { - swprintf(pStrInfo, L"%s|Under |Fire %d AttackerID %d AttackerTarget %d\n", pStrInfo, pSoldier->aiData.bUnderFire, pSoldier->ubPreviousAttackerID, MercPtrs[pSoldier->ubPreviousAttackerID]->sLastTarget); + swprintf(pStrInfo, L"%s|Under |Fire %d AttackerID %d AttackerTarget %d\n", pStrInfo, pSoldier->aiData.bUnderFire, pSoldier->ubPreviousAttackerID.i, pSoldier->ubPreviousAttackerID->sLastTarget); } else { - swprintf(pStrInfo, L"%s|Under |Fire %d AttackerID %d\n", pStrInfo, pSoldier->aiData.bUnderFire, pSoldier->ubPreviousAttackerID); + swprintf(pStrInfo, L"%s|Under |Fire %d AttackerID %d\n", pStrInfo, pSoldier->aiData.bUnderFire, pSoldier->ubPreviousAttackerID.i); } swprintf(pStrInfo, L"%s|Visible %d |Moved %d\n", pStrInfo, pSoldier->bVisible, pSoldier->aiData.bMoved); diff --git a/TacticalAI/Attacks.cpp b/TacticalAI/Attacks.cpp index e47e0ca4..25ea052a 100644 --- a/TacticalAI/Attacks.cpp +++ b/TacticalAI/Attacks.cpp @@ -3788,21 +3788,19 @@ void CheckTossSelfSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow) // if we can afford the minimum AP cost to throw this tossable item if (pSoldier->bActionPoints >= ubMinAPcost) { - INT32 sSpot = pSoldier->sGridNo; - INT8 bLevel = pSoldier->pathing.bLevel; + INT32 sSpot = pSoldier->sGridNo; + INT8 bLevel = pSoldier->pathing.bLevel; - INT32 sTargetSpot = NOWHERE; - INT8 bTargetLevel = bLevel; + INT32 sTargetSpot = NOWHERE; + INT8 bTargetLevel = bLevel; - INT32 sClosestThreat; - UINT16 ubClosestThreatID = pSoldier->ubPreviousAttackerID; + INT32 sClosestThreat; + SoldierID ubClosestThreatID = pSoldier->ubPreviousAttackerID; // try to find good spot for smoke - if (ubClosestThreatID != NOBODY && - MercPtrs[ubClosestThreatID] && - !TileIsOutOfBounds(MercPtrs[ubClosestThreatID]->sGridNo)) + if (ubClosestThreatID != NOBODY && !TileIsOutOfBounds(ubClosestThreatID->sGridNo)) { - sClosestThreat = MercPtrs[ubClosestThreatID]->sGridNo; + sClosestThreat = ubClosestThreatID->sGridNo; sTargetSpot = FindTossSpotInDirection(sSpot, bLevel, sClosestThreat, TRUE, TRUE); } @@ -3811,11 +3809,9 @@ void CheckTossSelfSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow) { ubClosestThreatID = ClosestSeenThreatID(pSoldier, uiThreatCnt, SEEN_LAST_TURN); - if (ubClosestThreatID != NOBODY && - MercPtrs[ubClosestThreatID] && - !TileIsOutOfBounds(MercPtrs[ubClosestThreatID]->sGridNo)) + if (ubClosestThreatID != NOBODY && !TileIsOutOfBounds(ubClosestThreatID->sGridNo)) { - sClosestThreat = MercPtrs[ubClosestThreatID]->sGridNo; + sClosestThreat = ubClosestThreatID->sGridNo; sTargetSpot = FindTossSpotInDirection(sSpot, bLevel, sClosestThreat, TRUE, TRUE); } @@ -3825,11 +3821,9 @@ void CheckTossSelfSmoke(SOLDIERTYPE *pSoldier, ATTACKTYPE *pBestThrow) { ubClosestThreatID = ClosestKnownThreatID(pSoldier, uiThreatCnt); - if (ubClosestThreatID != NOBODY && - MercPtrs[ubClosestThreatID] && - !TileIsOutOfBounds(MercPtrs[ubClosestThreatID]->sGridNo)) + if (ubClosestThreatID != NOBODY && !TileIsOutOfBounds(ubClosestThreatID->sGridNo)) { - sClosestThreat = MercPtrs[ubClosestThreatID]->sGridNo; + sClosestThreat = ubClosestThreatID->sGridNo; sTargetSpot = FindTossSpotInDirection(sSpot, bLevel, sClosestThreat, TRUE, TRUE); }