mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Convert SOLDIERTYPE->ubAttackerID to SoldierID
This commit is contained in:
+11
-11
@@ -3796,7 +3796,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
{
|
||||
if ( pSoldierOld->ubAttackerID != NOBODY )
|
||||
{
|
||||
pKiller = MercPtrs[ pSoldierOld->ubAttackerID ];
|
||||
pKiller = pSoldierOld->ubAttackerID;
|
||||
}
|
||||
if( pKiller && pKiller->bTeam == OUR_TEAM )
|
||||
{
|
||||
@@ -4016,7 +4016,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
{
|
||||
if ( pSoldierOld->ubAttackerID != NOBODY )
|
||||
{
|
||||
pKiller = MercPtrs[ pSoldierOld->ubAttackerID ];
|
||||
pKiller = pSoldierOld->ubAttackerID;
|
||||
}
|
||||
|
||||
BeginHandleDeidrannaDeath( pKiller, pSoldierOld->sGridNo, pSoldierOld->pathing.bLevel );
|
||||
@@ -4088,7 +4088,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
|
||||
// If the militia's killer is known
|
||||
// silversurfer: did the player team kill the militia? If not, militia shouldn't become hostile towards the player.
|
||||
if ( pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == OUR_TEAM )
|
||||
if ( pSoldierOld->ubAttackerID != NOBODY && pSoldierOld->ubAttackerID->bTeam == OUR_TEAM )
|
||||
{
|
||||
// also treat this as murder - but player will never be blamed for militia death he didn't cause
|
||||
// HEADROCK HAM 3.6: Actually this function never runs for militia (see function for details)
|
||||
@@ -4118,7 +4118,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
|
||||
if ( pSoldierOld->ubAttackerID != NOBODY )
|
||||
{
|
||||
pKiller = MercPtrs[ pSoldierOld->ubAttackerID ];
|
||||
pKiller = pSoldierOld->ubAttackerID;
|
||||
|
||||
BeginHandleQueenBitchDeath( pKiller, pSoldierOld->sGridNo, pSoldierOld->pathing.bLevel );
|
||||
}
|
||||
@@ -4130,9 +4130,9 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
TrackEnemiesKilled( ENEMY_KILLED_IN_TACTICAL, pSoldierOld->ubSoldierClass );
|
||||
}
|
||||
// If enemy guy was killed by the player, give morale boost to player's team!
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == gbPlayerNum )
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && pSoldierOld->ubAttackerID->bTeam == gbPlayerNum )
|
||||
{
|
||||
HandleMoraleEvent( MercPtrs[pSoldierOld->ubAttackerID], MORALE_KILLED_ENEMY, gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
HandleMoraleEvent( pSoldierOld->ubAttackerID, MORALE_KILLED_ENEMY, gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
}
|
||||
|
||||
HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ENEMY_KILLED, gWorldSectorX, gWorldSectorY, gbWorldSectorZ );
|
||||
@@ -4176,7 +4176,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
UINT16 ubAssister = NOBODY;
|
||||
|
||||
// if it was a kill by a player's merc
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == gbPlayerNum )
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && pSoldierOld->ubAttackerID->bTeam == gbPlayerNum )
|
||||
{
|
||||
// SANDRO - for special NPCs, you gain more experiences
|
||||
UINT16 usNumExpChances = ( 10 * pSoldierOld->stats.bExpLevel ); // basic value
|
||||
@@ -4207,7 +4207,7 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
break;
|
||||
}
|
||||
// EXPERIENCE CLASS GAIN: Earned a kill
|
||||
StatChange( MercPtrs[ pSoldierOld->ubAttackerID ], EXPERAMT, usNumExpChances, FALSE );
|
||||
StatChange( pSoldierOld->ubAttackerID, EXPERAMT, usNumExpChances, FALSE );
|
||||
}
|
||||
|
||||
// JA2 Gold: if previous and current attackers are the same, the next-to-previous attacker gets the assist
|
||||
@@ -4229,9 +4229,9 @@ void HandleNPCTeamMemberDeath( SOLDIERTYPE *pSoldierOld )
|
||||
}
|
||||
}
|
||||
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && MercPtrs[ pSoldierOld->ubAttackerID ]->bTeam == MILITIA_TEAM )
|
||||
if (pSoldierOld->ubAttackerID != NOBODY && pSoldierOld->ubAttackerID->bTeam == MILITIA_TEAM )
|
||||
{
|
||||
MercPtrs[pSoldierOld->ubAttackerID]->ubMilitiaAssists++;
|
||||
pSoldierOld->ubAttackerID->ubMilitiaAssists++;
|
||||
}
|
||||
|
||||
//if the NPC is a dealer, add the dealers items to the ground
|
||||
@@ -4567,7 +4567,7 @@ UINT8 CivilianGroupMembersChangeSidesWithinProximity( SOLDIERTYPE * pAttacked )
|
||||
// if in LOS of this guy's attacker
|
||||
if ( (pAttacked->ubAttackerID != NOBODY && pSoldier->aiData.bOppList[pAttacked->ubAttackerID] == SEEN_CURRENTLY)
|
||||
|| ( PythSpacesAway( pSoldier->sGridNo, pAttacked->sGridNo ) < pAttacked->GetMaxDistanceVisible(pSoldier->sGridNo, pSoldier->pathing.bLevel) )
|
||||
|| ( pAttacked->ubAttackerID != NOBODY && PythSpacesAway( pSoldier->sGridNo, MercPtrs[ pAttacked->ubAttackerID ]->sGridNo ) < pAttacked->GetMaxDistanceVisible(MercPtrs[ pAttacked->ubAttackerID ]->sGridNo, MercPtrs[ pAttacked->ubAttackerID ]->pathing.bLevel) ) )
|
||||
|| ( pAttacked->ubAttackerID != NOBODY && PythSpacesAway( pSoldier->sGridNo, pAttacked->ubAttackerID->sGridNo ) < pAttacked->GetMaxDistanceVisible(pAttacked->ubAttackerID->sGridNo, pAttacked->ubAttackerID->pathing.bLevel) ) )
|
||||
{
|
||||
MakeCivHostile(pSoldier);
|
||||
if ( pSoldier->aiData.bOppCnt > 0 )
|
||||
|
||||
@@ -1022,7 +1022,7 @@ BOOLEAN TurnSoldierIntoCorpse( SOLDIERTYPE *pSoldier, BOOLEAN fRemoveMerc, BOOLE
|
||||
// HEADROCK HAM B2.8: Now also reveals equipment dropped by militia, if requirement is met.
|
||||
if( pSoldier->bTeam == ENEMY_TEAM ||
|
||||
( gGameExternalOptions.ubMilitiaDropEquipment == 2 && pSoldier->bTeam == MILITIA_TEAM ) ||
|
||||
( gGameExternalOptions.ubMilitiaDropEquipment == 1 && pSoldier->bTeam == MILITIA_TEAM && Menptr[ pSoldier->ubAttackerID ].bTeam != OUR_TEAM ))
|
||||
( gGameExternalOptions.ubMilitiaDropEquipment == 1 && pSoldier->bTeam == MILITIA_TEAM && pSoldier->ubAttackerID->bTeam != OUR_TEAM ))
|
||||
{
|
||||
//add a flag to the item so when all enemies are killed, we can run through and reveal all the enemies items
|
||||
usItemFlags |= WORLD_ITEM_DROPPED_FROM_ENEMY;
|
||||
@@ -1054,7 +1054,7 @@ BOOLEAN TurnSoldierIntoCorpse( SOLDIERTYPE *pSoldier, BOOLEAN fRemoveMerc, BOOLE
|
||||
|
||||
// HEADROCK HAM B2.8: Militia will drop items only if allowed.
|
||||
if (!(gGameExternalOptions.ubMilitiaDropEquipment == 0 && pSoldier->bTeam == MILITIA_TEAM ) &&
|
||||
!(gGameExternalOptions.ubMilitiaDropEquipment == 1 && pSoldier->bTeam == MILITIA_TEAM && Menptr[ pSoldier->ubAttackerID ].bTeam == OUR_TEAM ))
|
||||
!(gGameExternalOptions.ubMilitiaDropEquipment == 1 && pSoldier->bTeam == MILITIA_TEAM && pSoldier->ubAttackerID->bTeam == OUR_TEAM ))
|
||||
{
|
||||
AddItemToPool( pSoldier->sGridNo, pObj, bVisible , pSoldier->pathing.bLevel, usItemFlags, -1 );
|
||||
}
|
||||
|
||||
@@ -3932,7 +3932,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
SOLDIERTYPE *pKillerSoldier = NULL;
|
||||
if(pSoldier->ubAttackerID != NOBODY)
|
||||
{
|
||||
pKillerSoldier = MercPtrs[pSoldier->ubAttackerID];
|
||||
pKillerSoldier = pSoldier->ubAttackerID;
|
||||
}
|
||||
else if(pSoldier->ubPreviousAttackerID != NOBODY)
|
||||
{
|
||||
@@ -3995,8 +3995,8 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
{
|
||||
//////////////////////////////////////////////////////////////
|
||||
// SANDRO - some changes here
|
||||
UINT16 ubAttacker = pSoldier->ubAttackerID;
|
||||
UINT16 ubAssister = pSoldier->ubPreviousAttackerID;
|
||||
SoldierID ubAttacker = pSoldier->ubAttackerID;
|
||||
SoldierID ubAssister = pSoldier->ubPreviousAttackerID;
|
||||
// If attacker is nobody, and we died, then set the last attacker(if exists) as our killer
|
||||
if ( ubAttacker == NOBODY )
|
||||
{
|
||||
@@ -4024,9 +4024,9 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
{
|
||||
// anv: note that ubAttacker can be already different from pSoldier->ubAttackerID
|
||||
// IF this guy has an attacker and he's a good guy, play sound
|
||||
if ( pSoldier->ubAttackerID != NOBODY )
|
||||
if ( pSoldier->ubAttackerID < NOBODY )
|
||||
{
|
||||
if ( MercPtrs[ pSoldier->ubAttackerID ] != NULL && MercPtrs[ pSoldier->ubAttackerID ]->bTeam == gbPlayerNum && gTacticalStatus.ubAttackBusyCount > 0 )
|
||||
if ( pSoldier->ubAttackerID->bTeam == gbPlayerNum && gTacticalStatus.ubAttackBusyCount > 0 )
|
||||
{
|
||||
gTacticalStatus.fKilledEnemyOnAttack = TRUE;
|
||||
gTacticalStatus.ubEnemyKilledOnAttack = pSoldier->ubID;
|
||||
@@ -4110,7 +4110,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
}
|
||||
break;
|
||||
}
|
||||
//gMercProfiles[ MercPtrs[ pSoldier->ubAttackerID ]->ubProfile ].usKills++;
|
||||
//gMercProfiles[ pSoldier->ubAttackerID->ubProfile ].usKills++;
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
gStrategicStatus.usPlayerKills++;
|
||||
|
||||
@@ -4456,7 +4456,7 @@ void CheckForAndHandleSoldierIncompacitated( SOLDIERTYPE *pSoldier )
|
||||
// SANDRO - if Martial Artist took someone down, always fall back if possible (for the fun)
|
||||
if ( pSoldier->ubAttackerID != NOBODY && gGameOptions.fNewTraitSystem )
|
||||
{
|
||||
if ( HAS_SKILL_TRAIT( MercPtrs[ pSoldier->ubAttackerID ], MARTIAL_ARTS_NT ) && (!MercPtrs[ pSoldier->ubAttackerID ]->usAttackingWeapon || ItemIsBrassKnuckles(MercPtrs[ pSoldier->ubAttackerID ]->inv[HANDPOS].usItem)) )
|
||||
if ( HAS_SKILL_TRAIT( pSoldier->ubAttackerID, MARTIAL_ARTS_NT ) && (!pSoldier->ubAttackerID->usAttackingWeapon || ItemIsBrassKnuckles(pSoldier->ubAttackerID->inv[HANDPOS].usItem)) )
|
||||
{
|
||||
fAlwaysFallBack = TRUE;
|
||||
}
|
||||
@@ -4468,7 +4468,7 @@ void CheckForAndHandleSoldierIncompacitated( SOLDIERTYPE *pSoldier )
|
||||
if ( pSoldier->ubAttackerID != NOBODY )
|
||||
{
|
||||
// Find direction!
|
||||
bTestDirection = (INT8)GetDirectionFromGridNo( MercPtrs[ pSoldier->ubAttackerID ]->sGridNo, pSoldier );
|
||||
bTestDirection = (INT8)GetDirectionFromGridNo( pSoldier->ubAttackerID->sGridNo, pSoldier );
|
||||
fForceDirection = TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -5732,9 +5732,9 @@ void SOLDIERTYPE::EVENT_SoldierGotHit( UINT16 usWeaponIndex, INT16 sDamage, INT1
|
||||
// handle morale for heavy damage attacks
|
||||
if ( sDamage > 25 )
|
||||
{
|
||||
if ( this->ubAttackerID != NOBODY && MercPtrs[this->ubAttackerID]->bTeam == gbPlayerNum )
|
||||
if ( this->ubAttackerID != NOBODY && this->ubAttackerID->bTeam == gbPlayerNum )
|
||||
{
|
||||
HandleMoraleEvent( MercPtrs[this->ubAttackerID], MORALE_DID_LOTS_OF_DAMAGE, MercPtrs[this->ubAttackerID]->sSectorX, MercPtrs[this->ubAttackerID]->sSectorY, MercPtrs[this->ubAttackerID]->bSectorZ );
|
||||
HandleMoraleEvent( this->ubAttackerID, MORALE_DID_LOTS_OF_DAMAGE, this->ubAttackerID->sSectorX, this->ubAttackerID->sSectorY, this->ubAttackerID->bSectorZ );
|
||||
this->ubLastMoraleFromHit++;
|
||||
}
|
||||
if ( this->bTeam == gbPlayerNum )
|
||||
@@ -10475,7 +10475,7 @@ UINT8 SOLDIERTYPE::SoldierTakeDamage( INT8 bHeight, INT16 sLifeDeduct, INT16 sBr
|
||||
sTestOne = EffectiveStrength( this, FALSE );
|
||||
sTestTwo = 2 * max(sLifeDeduct, (sBreathLoss / 100));
|
||||
|
||||
if (this->ubAttackerID != NOBODY && MercPtrs[this->ubAttackerID]->ubBodyType == BLOODCAT)
|
||||
if (this->ubAttackerID != NOBODY && this->ubAttackerID->ubBodyType == BLOODCAT)
|
||||
{
|
||||
// bloodcat boost, let them make people drop items more
|
||||
sTestTwo += 20;
|
||||
|
||||
@@ -1187,8 +1187,8 @@ public:
|
||||
|
||||
UINT32 uiAIDelay;
|
||||
INT16 sReloadDelay;
|
||||
UINT16 ubAttackerID;
|
||||
UINT16 ubPreviousAttackerID;
|
||||
SoldierID ubAttackerID;
|
||||
|
||||
INT32 sInsertionGridNo;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user