Lessen repetition

This commit is contained in:
Asdow
2024-11-21 21:53:36 +02:00
parent 67c8081104
commit 94f2e830e0
2 changed files with 45 additions and 38 deletions
+40 -35
View File
@@ -602,9 +602,10 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
guiNumInvolved = 0;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) )
SOLDIERTYPE *pSoldier = MercPtrs[i];
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if ( PlayerMercInvolvedInThisCombat( MercPtrs[ i ] ) )
if ( PlayerMercInvolvedInThisCombat( pSoldier ) )
{
// involved
if( !ubGroupID )
@@ -613,13 +614,13 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
//can detect it by comparing the first value with future values. If we do, then
//we set a flag which determines whether to use the singular help text or plural version
//for the retreat button.
ubGroupID = MercPtrs[ i ]->ubGroupID;
ubGroupID = pSoldier->ubGroupID;
if( !gpBattleGroup )
gpBattleGroup = GetGroup( ubGroupID );
//if( bBestExpLevel > MercPtrs[ i ]->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
if( bBestExpLevel < MercPtrs[ i ]->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
bBestExpLevel = MercPtrs[ i ]->stats.bExpLevel;
if( MercPtrs[ i ]->ubPrevSectorID == 255 )
//if( bBestExpLevel > pSoldier->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
if( bBestExpLevel < pSoldier->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
bBestExpLevel = pSoldier->stats.bExpLevel;
if( pSoldier->ubPrevSectorID == 255 )
{ //Not able to retreat (calculate it for group)
GROUP *pTempGroup;
pTempGroup = GetGroup( ubGroupID );
@@ -627,7 +628,7 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
CalculateGroupRetreatSector( pTempGroup );
}
}
else if( ubGroupID != MercPtrs[ i ]->ubGroupID )
else if( ubGroupID != pSoldier->ubGroupID )
{
fUsePluralVersion = TRUE;
}
@@ -635,23 +636,23 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
++guiNumInvolved;
// SANDRO - added check if we have a scout in group, needed later
if( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( MercPtrs[ i ], SCOUTING_NT ) && gSkillTraitValues.fSCPreventsTheEnemyToAmbushMercs )
if( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) && gSkillTraitValues.fSCPreventsTheEnemyToAmbushMercs )
{
fScoutPresent = TRUE;
}
if ( MercPtrs[i]->usSoldierFlagMask & SOLDIER_AIRDROP )
if ( pSoldier->usSoldierFlagMask & SOLDIER_AIRDROP )
{
fAirDrop = TRUE;
}
UINT16 deploymentleadership = EffectiveLeadership( MercPtrs[i] );
FLOAT ambushradiusmodifier = 10 * EffectiveExpLevel( MercPtrs[i] ) + MercPtrs[i]->GetBackgroundValue( BG_AMBUSH_RADIUS );
UINT16 deploymentleadership = EffectiveLeadership( pSoldier );
FLOAT ambushradiusmodifier = 10 * EffectiveExpLevel( pSoldier ) + pSoldier->GetBackgroundValue( BG_AMBUSH_RADIUS );
if ( gGameOptions.fNewTraitSystem )
{
deploymentleadership += 50 * NUM_SKILL_TRAITS( MercPtrs[i], SQUADLEADER_NT );
deploymentleadership += 50 * NUM_SKILL_TRAITS( pSoldier, SQUADLEADER_NT );
ambushradiusmodifier += 50 * NUM_SKILL_TRAITS( MercPtrs[i], SCOUTING_NT );
ambushradiusmodifier += 50 * NUM_SKILL_TRAITS( pSoldier, SCOUTING_NT );
}
// bonus with old traits, so that the check can be won
else
@@ -664,7 +665,7 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
gAmbushRadiusModifier = max( gAmbushRadiusModifier, ambushradiusmodifier / 100 );
// Flugente: if a merc is inserted from concealed state, retreat is forbidden, as at least this merc will have to extract manually
if ( MercPtrs[i]->usSoldierFlagMask2 & SOLDIER_CONCEALINSERTION )
if ( pSoldier->usSoldierFlagMask2 & SOLDIER_CONCEALINSERTION )
fRetreatAnOption = FALSE;
}
else
@@ -890,14 +891,15 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
{
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i )
{
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) )
SOLDIERTYPE *pSoldier = MercPtrs[i];
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if ( PlayerMercInvolvedInThisCombat( MercPtrs[ i ] ) && MercPtrs[ i ]->ubProfile != NO_PROFILE )
if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE )
{
if ( GetEnemyEncounterCode() == ENEMY_AMBUSH_CODE || GetEnemyEncounterCode() == BLOODCAT_AMBUSH_CODE || GetEnemyEncounterCode() == ENEMY_AMBUSH_DEPLOYMENT_CODE )
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usAmbushesExperienced++;
else if ( fAmbushPrevented && HAS_SKILL_TRAIT( MercPtrs[ i ], SCOUTING_NT ) ) // Scouts actually get this as number of prevented ambushes
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usAmbushesExperienced++;
gMercProfiles[ pSoldier->ubProfile ].records.usAmbushesExperienced++;
else if ( fAmbushPrevented && HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) ) // Scouts actually get this as number of prevented ambushes
gMercProfiles[ pSoldier->ubProfile ].records.usAmbushesExperienced++;
}
}
}
@@ -1577,20 +1579,21 @@ void RenderPreBattleInterface()
y = TOP_Y + TOP_Y_TEXT_BUFFER - bListOffset;
for( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++)
{
if( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife && !(MercPtrs[i]->flags.uiStatusFlags & SOLDIER_VEHICLE) )
SOLDIERTYPE *pSoldier = MercPtrs[i];
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if( PlayerMercInvolvedInThisCombat( MercPtrs[ i ] ) )
if( PlayerMercInvolvedInThisCombat( pSoldier ) )
{
//NAME
wcscpy( str, MercPtrs[ i ]->name );
wcscpy( str, pSoldier->name );
x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//ASSIGN
GetMapscreenMercAssignmentString( MercPtrs[ i ], str );
GetMapscreenMercAssignmentString( pSoldier, str );
x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//COND
GetSoldierConditionInfo( MercPtrs[ i ], str, &ubHPPercent, &ubBPPercent );
GetSoldierConditionInfo( pSoldier, str, &ubHPPercent, &ubBPPercent );
x = 129 + (58 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//HP
@@ -1622,31 +1625,32 @@ void RenderPreBattleInterface()
y = TOP_Y + TOP_Y_TEXT_BUFFER + ubUninvolvedStartY + UNINVOLVED_RELEVANT_HEIGHT - bListOffset;
for( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++ )
{
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->stats.bLife && !(MercPtrs[ i ]->flags.uiStatusFlags & SOLDIER_VEHICLE) )
SOLDIERTYPE *pSoldier = MercPtrs[i];
if( pSoldier->bActive && pSoldier->stats.bLife && !(pSoldier->flags.uiStatusFlags & SOLDIER_VEHICLE) )
{
if( !PlayerMercInvolvedInThisCombat(MercPtrs[ i ]) )
if( !PlayerMercInvolvedInThisCombat(pSoldier) )
{
//NAME
wcscpy( str, MercPtrs[ i ]->name );
wcscpy( str, pSoldier->name );
x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//ASSIGN
GetMapscreenMercAssignmentString( MercPtrs[ i ], str );
GetMapscreenMercAssignmentString( pSoldier, str );
x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//LOC
GetMapscreenMercLocationString( MercPtrs[ i ], str );
GetMapscreenMercLocationString( pSoldier, str );
x = 128 + (33 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
//DEST
GetMapscreenMercDestinationString( MercPtrs[ i ], str );
GetMapscreenMercDestinationString( pSoldier, str );
if (wcslen(str) > 0)
{
x = 164 + (41 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str );
}
//DEP
GetMapscreenMercDepartureString( MercPtrs[ i ], str, &ubJunk );
GetMapscreenMercDepartureString( pSoldier, str, &ubJunk );
x = 208 + (34 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf(x + xOffset, y + yOffset, str);
@@ -1814,10 +1818,11 @@ void RetreatMercsCallback( GUI_BUTTON *btn, INT32 reason )
// SANDRO - merc records - times retreated counter
for( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ )
{
if ( MercPtrs[i]->bActive && MercPtrs[i]->stats.bLife >= OKLIFE )
SOLDIERTYPE *pSoldier = MercPtrs[i];
if ( pSoldier->bActive && pSoldier->stats.bLife >= OKLIFE )
{
if ( PlayerMercInvolvedInThisCombat( MercPtrs[i] ) && MercPtrs[i]->ubProfile != NO_PROFILE )
gMercProfiles[ MercPtrs[i]->ubProfile ].records.usBattlesRetreated++;
if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE )
gMercProfiles[ pSoldier->ubProfile ].records.usBattlesRetreated++;
}
}
/////////////////////////////////////////////////////////////////////////////////