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; guiNumInvolved = 0;
for( i = gTacticalStatus.Team[ OUR_TEAM ].bFirstID; i <= gTacticalStatus.Team[ OUR_TEAM ].bLastID; ++i ) 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 // involved
if( !ubGroupID ) 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 //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 //we set a flag which determines whether to use the singular help text or plural version
//for the retreat button. //for the retreat button.
ubGroupID = MercPtrs[ i ]->ubGroupID; ubGroupID = pSoldier->ubGroupID;
if( !gpBattleGroup ) if( !gpBattleGroup )
gpBattleGroup = GetGroup( ubGroupID ); gpBattleGroup = GetGroup( ubGroupID );
//if( bBestExpLevel > MercPtrs[ i ]->stats.bExpLevel ) // SANDRO - WTF!! This is a bug! //if( bBestExpLevel > pSoldier->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
if( bBestExpLevel < MercPtrs[ i ]->stats.bExpLevel ) // SANDRO - WTF!! This is a bug! if( bBestExpLevel < pSoldier->stats.bExpLevel ) // SANDRO - WTF!! This is a bug!
bBestExpLevel = MercPtrs[ i ]->stats.bExpLevel; bBestExpLevel = pSoldier->stats.bExpLevel;
if( MercPtrs[ i ]->ubPrevSectorID == 255 ) if( pSoldier->ubPrevSectorID == 255 )
{ //Not able to retreat (calculate it for group) { //Not able to retreat (calculate it for group)
GROUP *pTempGroup; GROUP *pTempGroup;
pTempGroup = GetGroup( ubGroupID ); pTempGroup = GetGroup( ubGroupID );
@@ -627,7 +628,7 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
CalculateGroupRetreatSector( pTempGroup ); CalculateGroupRetreatSector( pTempGroup );
} }
} }
else if( ubGroupID != MercPtrs[ i ]->ubGroupID ) else if( ubGroupID != pSoldier->ubGroupID )
{ {
fUsePluralVersion = TRUE; fUsePluralVersion = TRUE;
} }
@@ -635,23 +636,23 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
++guiNumInvolved; ++guiNumInvolved;
// SANDRO - added check if we have a scout in group, needed later // 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; fScoutPresent = TRUE;
} }
if ( MercPtrs[i]->usSoldierFlagMask & SOLDIER_AIRDROP ) if ( pSoldier->usSoldierFlagMask & SOLDIER_AIRDROP )
{ {
fAirDrop = TRUE; fAirDrop = TRUE;
} }
UINT16 deploymentleadership = EffectiveLeadership( MercPtrs[i] ); UINT16 deploymentleadership = EffectiveLeadership( pSoldier );
FLOAT ambushradiusmodifier = 10 * EffectiveExpLevel( MercPtrs[i] ) + MercPtrs[i]->GetBackgroundValue( BG_AMBUSH_RADIUS ); FLOAT ambushradiusmodifier = 10 * EffectiveExpLevel( pSoldier ) + pSoldier->GetBackgroundValue( BG_AMBUSH_RADIUS );
if ( gGameOptions.fNewTraitSystem ) 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 // bonus with old traits, so that the check can be won
else else
@@ -664,7 +665,7 @@ void InitPreBattleInterface( GROUP *pBattleGroup, BOOLEAN fPersistantPBI )
gAmbushRadiusModifier = max( gAmbushRadiusModifier, ambushradiusmodifier / 100 ); 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 // 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; fRetreatAnOption = FALSE;
} }
else 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 ) 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 ) if ( GetEnemyEncounterCode() == ENEMY_AMBUSH_CODE || GetEnemyEncounterCode() == BLOODCAT_AMBUSH_CODE || GetEnemyEncounterCode() == ENEMY_AMBUSH_DEPLOYMENT_CODE )
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usAmbushesExperienced++; gMercProfiles[ pSoldier->ubProfile ].records.usAmbushesExperienced++;
else if ( fAmbushPrevented && HAS_SKILL_TRAIT( MercPtrs[ i ], SCOUTING_NT ) ) // Scouts actually get this as number of prevented ambushes else if ( fAmbushPrevented && HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) ) // Scouts actually get this as number of prevented ambushes
gMercProfiles[ MercPtrs[ i ]->ubProfile ].records.usAmbushesExperienced++; gMercProfiles[ pSoldier->ubProfile ].records.usAmbushesExperienced++;
} }
} }
} }
@@ -1577,20 +1579,21 @@ void RenderPreBattleInterface()
y = TOP_Y + TOP_Y_TEXT_BUFFER - bListOffset; y = TOP_Y + TOP_Y_TEXT_BUFFER - bListOffset;
for( i = gTacticalStatus.Team[OUR_TEAM].bFirstID; i <= gTacticalStatus.Team[OUR_TEAM].bLastID; i++) 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 //NAME
wcscpy( str, MercPtrs[ i ]->name ); wcscpy( str, pSoldier->name );
x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2; x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//ASSIGN //ASSIGN
GetMapscreenMercAssignmentString( MercPtrs[ i ], str ); GetMapscreenMercAssignmentString( pSoldier, str );
x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2; x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//COND //COND
GetSoldierConditionInfo( MercPtrs[ i ], str, &ubHPPercent, &ubBPPercent ); GetSoldierConditionInfo( pSoldier, str, &ubHPPercent, &ubBPPercent );
x = 129 + (58 - StringPixLength(str, BLOCKFONT2)) / 2; x = 129 + (58 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//HP //HP
@@ -1622,31 +1625,32 @@ void RenderPreBattleInterface()
y = TOP_Y + TOP_Y_TEXT_BUFFER + ubUninvolvedStartY + UNINVOLVED_RELEVANT_HEIGHT - bListOffset; 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++ ) 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 //NAME
wcscpy( str, MercPtrs[ i ]->name ); wcscpy( str, pSoldier->name );
x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2; x = 17 + (52 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//ASSIGN //ASSIGN
GetMapscreenMercAssignmentString( MercPtrs[ i ], str ); GetMapscreenMercAssignmentString( pSoldier, str );
x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2; x = 72 + (54 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//LOC //LOC
GetMapscreenMercLocationString( MercPtrs[ i ], str ); GetMapscreenMercLocationString( pSoldier, str );
x = 128 + (33 - StringPixLength(str, BLOCKFONT2)) / 2; x = 128 + (33 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
//DEST //DEST
GetMapscreenMercDestinationString( MercPtrs[ i ], str ); GetMapscreenMercDestinationString( pSoldier, str );
if (wcslen(str) > 0) if (wcslen(str) > 0)
{ {
x = 164 + (41 - StringPixLength(str, BLOCKFONT2)) / 2; x = 164 + (41 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf( x + xOffset, y + yOffset, str ); mprintf( x + xOffset, y + yOffset, str );
} }
//DEP //DEP
GetMapscreenMercDepartureString( MercPtrs[ i ], str, &ubJunk ); GetMapscreenMercDepartureString( pSoldier, str, &ubJunk );
x = 208 + (34 - StringPixLength(str, BLOCKFONT2)) / 2; x = 208 + (34 - StringPixLength(str, BLOCKFONT2)) / 2;
mprintf(x + xOffset, y + yOffset, str); mprintf(x + xOffset, y + yOffset, str);
@@ -1814,10 +1818,11 @@ void RetreatMercsCallback( GUI_BUTTON *btn, INT32 reason )
// SANDRO - merc records - times retreated counter // SANDRO - merc records - times retreated counter
for( UINT16 i = gTacticalStatus.Team[ gbPlayerNum ].bFirstID; i <= gTacticalStatus.Team[ gbPlayerNum ].bLastID; i++ ) 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 ) if ( PlayerMercInvolvedInThisCombat( pSoldier ) && pSoldier->ubProfile != NO_PROFILE )
gMercProfiles[ MercPtrs[i]->ubProfile ].records.usBattlesRetreated++; gMercProfiles[ pSoldier->ubProfile ].records.usBattlesRetreated++;
} }
} }
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
+5 -3
View File
@@ -560,12 +560,14 @@ void EndTacticalBattleForEnemy()
//severe loyalty blow. //severe loyalty blow.
for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i ) for( i = gTacticalStatus.Team[ MILITIA_TEAM ].bFirstID; i <= gTacticalStatus.Team[ MILITIA_TEAM ].bLastID; ++i )
{ {
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->bInSector && MercPtrs[ i ]->stats.bLife >= OKLIFE ) SOLDIERTYPE *pSoldier = MercPtrs[i];
if( pSoldier->bActive && pSoldier->bInSector && pSoldier->stats.bLife >= OKLIFE )
{ //found one live militia, so look for any enemies/creatures. { //found one live militia, so look for any enemies/creatures.
// NOTE: this is relying on ENEMY_TEAM being immediately followed by CREATURE_TEAM // NOTE: this is relying on ENEMY_TEAM being immediately followed by CREATURE_TEAM
for( i = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; i <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i ) for(UINT16 j = gTacticalStatus.Team[ ENEMY_TEAM ].bFirstID; j <= gTacticalStatus.Team[ CREATURE_TEAM ].bLastID; ++i )
{ {
if( MercPtrs[ i ]->bActive && MercPtrs[ i ]->bInSector && MercPtrs[ i ]->stats.bLife >= OKLIFE ) SOLDIERTYPE *pEnemy = MercPtrs[j];
if( pEnemy->bActive && pEnemy->bInSector && pEnemy->stats.bLife >= OKLIFE )
{ //confirmed at least one enemy here, so do the loyalty penalty. { //confirmed at least one enemy here, so do the loyalty penalty.
HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ABANDON_MILITIA, gWorldSectorX, gWorldSectorY, 0 ); HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ABANDON_MILITIA, gWorldSectorX, gWorldSectorY, 0 );
break; break;