mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
New feature: radio operator trait allows calling in artillery, requesting reinforcements, scanning for enemies and a few other skills.
Also includes mechansim for easy implementation of new skills. For more info see http://www.bears-pit.com/board/ubbthreads.php/topics/327348.html#Post327348 Requires GameDir >= r1848. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6547 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -4630,6 +4630,7 @@ BOOLEAN AssignTraitsToSoldier( SOLDIERTYPE *pSoldier, SOLDIERCREATE_STRUCT *pCre
|
||||
BOOLEAN foundThrowing = FALSE;
|
||||
BOOLEAN foundHtH = FALSE;
|
||||
BOOLEAN foundMelee = FALSE;
|
||||
BOOLEAN fRadioSetFound = FALSE;
|
||||
|
||||
// FIRST FIND OUT THE COMPOSITION OF OUR GEAR
|
||||
for (bLoop = 0; bLoop < (INT8) pSoldier->inv.size(); bLoop++)
|
||||
@@ -4653,6 +4654,8 @@ BOOLEAN AssignTraitsToSoldier( SOLDIERTYPE *pSoldier, SOLDIERCREATE_STRUCT *pCre
|
||||
else if (Item[pCreateStruct->Inv[bLoop].usItem].usItemClass == 128 && // 128 is an identifier of blunt melee weapons
|
||||
Item[pCreateStruct->Inv[bLoop].usItem].uiIndex != 0 )
|
||||
foundMelee = TRUE;
|
||||
else if ( HasItemFlag(pCreateStruct->Inv[bLoop].usItem, RADIO_SET) )
|
||||
fRadioSetFound = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5191,6 +5194,31 @@ BOOLEAN AssignTraitsToSoldier( SOLDIERTYPE *pSoldier, SOLDIERCREATE_STRUCT *pCre
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Flugente: new traits
|
||||
if ( gGameOptions.fNewTraitSystem && (!ATraitAssigned || !BTraitAssigned || !CTraitAssigned ) )
|
||||
{
|
||||
// if we have a radio set, give us the corresponding trait so we can use it...
|
||||
if ( fRadioSetFound )
|
||||
{
|
||||
if ( !ATraitAssigned )
|
||||
{
|
||||
pSoldier->stats.ubSkillTraits[0] = RADIO_OPERATOR_NT;
|
||||
ATraitAssigned = TRUE;
|
||||
}
|
||||
else if ( !BTraitAssigned )
|
||||
{
|
||||
pSoldier->stats.ubSkillTraits[1] = RADIO_OPERATOR_NT;
|
||||
BTraitAssigned = TRUE;
|
||||
}
|
||||
else if ( ubSolClass == SOLDIER_CLASS_ELITE || ubSolClass == SOLDIER_CLASS_ELITE_MILITIA )
|
||||
{
|
||||
pSoldier->stats.ubSkillTraits[2] = RADIO_OPERATOR_NT;
|
||||
CTraitAssigned = TRUE;
|
||||
return( TRUE ); // We no longer need to continue from here
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// RETURN TRUE IF ALL TRAITS ASSIGNED OTHERWISE FALSE
|
||||
if (( !gGameOptions.fNewTraitSystem && ATraitAssigned && BTraitAssigned ) || ( gGameOptions.fNewTraitSystem && ATraitAssigned && BTraitAssigned && CTraitAssigned ) )
|
||||
|
||||
Reference in New Issue
Block a user