diff --git a/Tactical/Handle Items.cpp b/Tactical/Handle Items.cpp index b786588a..5b4e051f 100644 --- a/Tactical/Handle Items.cpp +++ b/Tactical/Handle Items.cpp @@ -1140,7 +1140,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa // if we have an empty sandbag in our hands, we also need to have a shovel in our second hand, otherwise we can't fill it if ( HasItemFlag(usHandItem, (EMPTY_SANDBAG)) ) { - sAPCost = APBPConstants[AP_FILL_SANDBAG]; + sAPCost = GetAPsToFillSandbag( pSoldier ); // check if we have a shovel in our second hand OBJECTTYPE* pShovelObj = &(pSoldier->inv[SECONDHANDPOS]); @@ -1160,7 +1160,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa // if we have a shovel in our hands, the targeted gridno must be a fortification (debris will do for this check) else if ( HasItemFlag(usHandItem, (SHOVEL)) ) { - sAPCost = APBPConstants[AP_REMOVE_FORTIFICATION]; + sAPCost = GetAPsToRemoveFortification( pSoldier ); STRUCTURE* pStruct = FindStructure(sGridNo, STRUCTURE_GENERIC); @@ -1171,7 +1171,7 @@ INT32 HandleItem( SOLDIERTYPE *pSoldier, INT32 sGridNo, INT8 bLevel, UINT16 usHa } else { - sAPCost = APBPConstants[AP_FORTIFICATION]; + sAPCost = GetAPsToBuildFortification( pSoldier ); } sActionGridNo = FindAdjacentGridEx( pSoldier, sGridNo, &ubDirection, &sAdjustedGridNo, TRUE, FALSE ); diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index 74a748d7..c8538ecc 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -4137,7 +4137,7 @@ INT8 DrawUIMovementPath( SOLDIERTYPE *pSoldier, INT32 usMapPos, UINT32 uiFlags ) sActionGridNo = usMapPos; } - sAPCost = APBPConstants[AP_FORTIFICATION]; + sAPCost = GetAPsToBuildFortification( pSoldier ); sAPCost += UIPlotPath( pSoldier, sActionGridNo, NO_COPYROUTE, fPlot, TEMPORARY, (UINT16)pSoldier->usUIMovementMode, NOT_STEALTH, FORWARD, pSoldier->bActionPoints); if ( sActionGridNo != pSoldier->sGridNo ) diff --git a/Tactical/Points.cpp b/Tactical/Points.cpp index 3f187a43..733d90b7 100644 --- a/Tactical/Points.cpp +++ b/Tactical/Points.cpp @@ -3724,6 +3724,33 @@ INT16 GetAPsToApplyItem( SOLDIERTYPE *pSoldier, INT32 usMapPos ) return sAPCost; } +INT16 GetAPsToBuildFortification( SOLDIERTYPE *pSoldier ) +{ + INT16 sAPCost = 0; + + sAPCost += APBPConstants[AP_FORTIFICATION]; + + return sAPCost; +} + +INT16 GetAPsToRemoveFortification( SOLDIERTYPE *pSoldier ) +{ + INT16 sAPCost = 0; + + sAPCost += APBPConstants[AP_REMOVE_FORTIFICATION]; + + return sAPCost; +} + +INT16 GetAPsToFillSandbag( SOLDIERTYPE *pSoldier ) +{ + INT16 sAPCost = 0; + + sAPCost += APBPConstants[AP_FILL_SANDBAG]; + + return sAPCost; +} + INT16 GetAPsToJumpOver( SOLDIERTYPE *pSoldier ) { // -25% APs needed to for MA traits diff --git a/Tactical/Points.h b/Tactical/Points.h index 2d231b3d..940c637f 100644 --- a/Tactical/Points.h +++ b/Tactical/Points.h @@ -358,6 +358,9 @@ INT16 GetBPsTouseJar( SOLDIERTYPE *pSoldier ); INT16 GetAPsToHandcuff( SOLDIERTYPE *pSoldier, INT32 usMapPos ); // added by Flugente INT16 GetAPsToApplyItem( SOLDIERTYPE *pSoldier, INT32 usMapPos ); // added by Flugente +INT16 GetAPsToBuildFortification( SOLDIERTYPE *pSoldier ); // added by Flugente +INT16 GetAPsToRemoveFortification( SOLDIERTYPE *pSoldier ); // added by Flugente +INT16 GetAPsToFillSandbag( SOLDIERTYPE *pSoldier ); // added by Flugente INT16 GetAPsToJumpOver( SOLDIERTYPE *pSoldier ); diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 6f0b5d50..b74e97c0 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -7356,7 +7356,7 @@ void SOLDIERTYPE::EVENT_BeginMercTurn( BOOLEAN fFromRealTime, INT32 iRealTimeCou this->ResetExtraStats(); // ATE: Add decay effect sfor drugs... - if ( fFromRealTime ) //&& iRealTimeCounter % 300 ) + //if ( fFromRealTime ) //&& iRealTimeCounter % 300 ) { HandleEndTurnDrugAdjustments( this ); } @@ -15508,13 +15508,13 @@ void SOLDIERTYPE::StartMultiTurnAction(UINT8 usActionType) switch( usMultiTurnAction ) { case MTA_FORTIFY: - bOverTurnAPS = APBPConstants[AP_FORTIFICATION]; + bOverTurnAPS = GetAPsToBuildFortification( this ); break; case MTA_REMOVE_FORTIFY: - bOverTurnAPS = APBPConstants[AP_REMOVE_FORTIFICATION]; + bOverTurnAPS = GetAPsToRemoveFortification( this ); break; case MTA_FILL_SANDBAG: - bOverTurnAPS = APBPConstants[AP_FILL_SANDBAG]; + bOverTurnAPS = GetAPsToFillSandbag( this ); break; } @@ -15576,7 +15576,7 @@ BOOLEAN SOLDIERTYPE::UpdateMultiTurnAction() { case MTA_FORTIFY: { - entireapcost = APBPConstants[AP_FORTIFICATION]; + entireapcost = GetAPsToBuildFortification( this ); entirebpcost = APBPConstants[BP_FORTIFICATION]; if ( !IsFortificationPossibleAtGridNo( this->sMTActionGridNo ) ) @@ -15587,7 +15587,7 @@ BOOLEAN SOLDIERTYPE::UpdateMultiTurnAction() break; case MTA_REMOVE_FORTIFY: { - entireapcost = APBPConstants[AP_REMOVE_FORTIFICATION]; + entireapcost = GetAPsToRemoveFortification( this ); entirebpcost = APBPConstants[BP_REMOVE_FORTIFICATION]; if ( !HasItemFlag(this->inv[ HANDPOS ].usItem, (SHOVEL)) ) @@ -15597,7 +15597,7 @@ BOOLEAN SOLDIERTYPE::UpdateMultiTurnAction() case MTA_FILL_SANDBAG: { - entireapcost = APBPConstants[AP_FILL_SANDBAG]; + entireapcost = GetAPsToFillSandbag( this ); entirebpcost = APBPConstants[BP_FILL_SANDBAG]; if ( !HasItemFlag(this->inv[ HANDPOS ].usItem, EMPTY_SANDBAG) )