From 94f2e830e030741e12b6ed954f782346e6b8736d Mon Sep 17 00:00:00 2001 From: Asdow <20314541+Asdow@users.noreply.github.com> Date: Thu, 21 Nov 2024 21:53:36 +0200 Subject: [PATCH] Lessen repetition --- Strategic/PreBattle Interface.cpp | 75 ++++++++++++++++--------------- Strategic/Queen Command.cpp | 8 ++-- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/Strategic/PreBattle Interface.cpp b/Strategic/PreBattle Interface.cpp index 5aed8f36..73bb1cd8 100644 --- a/Strategic/PreBattle Interface.cpp +++ b/Strategic/PreBattle Interface.cpp @@ -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++; } } ///////////////////////////////////////////////////////////////////////////////// diff --git a/Strategic/Queen Command.cpp b/Strategic/Queen Command.cpp index 487ee8fe..89a282dd 100644 --- a/Strategic/Queen Command.cpp +++ b/Strategic/Queen Command.cpp @@ -560,12 +560,14 @@ void EndTacticalBattleForEnemy() //severe loyalty blow. 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. // 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. HandleGlobalLoyaltyEvent( GLOBAL_LOYALTY_ABANDON_MILITIA, gWorldSectorX, gWorldSectorY, 0 ); break;