mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
New feature: individual militia creates small militia profiles that track a militia's history and allow it to be recreated, thereby maintaining the illusion of persistent militia.
Requires GameDir >= r2316. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=tree&th=23044&goto=345324&#msg_345324 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8202 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -63,6 +63,7 @@
|
||||
#include "Food.h"
|
||||
#include "CampaignStats.h" // added by Flugente
|
||||
#include "DynamicDialogue.h" // added by Flugente
|
||||
#include "MilitiaIndividual.h" // added by Flugente
|
||||
#endif
|
||||
|
||||
// anv: for enemy taunts
|
||||
@@ -3995,7 +3996,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
else if ( MercPtrs[ ubAttacker ]->bTeam == MILITIA_TEAM )
|
||||
{
|
||||
// get a kill! 2 points!
|
||||
MercPtrs[ ubAttacker ]->ubMilitiaKills += 2;
|
||||
MercPtrs[ ubAttacker ]->ubMilitiaKills += 1;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4025,7 +4026,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
else if ( MercPtrs[ ubAssister ]->bTeam == MILITIA_TEAM )
|
||||
{
|
||||
// get an assist - 1 points
|
||||
MercPtrs[ ubAssister ]->ubMilitiaKills += 1;
|
||||
MercPtrs[ubAssister]->ubMilitiaAssists += 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@@ -4040,7 +4041,7 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
else if ( MercPtrs[ pSoldier->ubPreviousAttackerID ]->bTeam == MILITIA_TEAM )
|
||||
{
|
||||
// get an assist - 1 points
|
||||
MercPtrs[ pSoldier->ubPreviousAttackerID ]->ubMilitiaKills += 1;
|
||||
MercPtrs[ pSoldier->ubPreviousAttackerID ]->ubMilitiaAssists += 1;
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -4050,6 +4051,26 @@ BOOLEAN HandleSoldierDeath( SOLDIERTYPE *pSoldier , BOOLEAN *pfMadeCorpse )
|
||||
// Flugente: campaign stats
|
||||
gCurrentIncident.AddStat( pSoldier, CAMPAIGNHISTORY_TYPE_KILL );
|
||||
|
||||
// Flugente: individual militia
|
||||
MILITIA militia;
|
||||
if ( GetMilitia( pSoldier->usIndividualMilitiaID, &militia ) && !(militia.flagmask & MILITIAFLAG_DEAD) )
|
||||
{
|
||||
militia.healthratio = 0.0f;
|
||||
militia.flagmask |= MILITIAFLAG_DEAD;
|
||||
|
||||
// note the current incident (when closing the incident, we only do this for those still alive)
|
||||
MILITIA_BATTLEREPORT report;
|
||||
report.id = GetIdOfCurrentlyOngoingIncident( );
|
||||
report.flagmask = MILITIA_BATTLEREPORT_FLAG_DIED;
|
||||
|
||||
if ( pSoldier->ubMilitiaKills )
|
||||
report.flagmask |= MILITIA_BATTLEREPORT_FLAG_KILLEDENEMY;
|
||||
|
||||
militia.history.push_back( report );
|
||||
|
||||
UpdateMilitia(militia);
|
||||
}
|
||||
|
||||
// Flugente: disease
|
||||
HandleDeathDiseaseImplications( pSoldier );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user