From fc3e66444ae8d1e727ad365670470324910f1575 Mon Sep 17 00:00:00 2001 From: ChrisL Date: Thu, 11 Dec 2008 23:45:09 +0000 Subject: [PATCH] Fixed a breath issue where it required more damage to really knock an opponent out in anything but 25AP mode. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2452 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Points.cpp | 6 ++++-- Tactical/Soldier Control.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Tactical/Points.cpp b/Tactical/Points.cpp index d53640da7..21d7d89ba 100644 --- a/Tactical/Points.cpp +++ b/Tactical/Points.cpp @@ -669,8 +669,10 @@ void DeductPoints( SOLDIERTYPE *pSoldier, INT16 sAPCost, INT32 iBPCost,BOOLEAN f { // Snap: moved this up, because it had no effect below // Take off 1 AP per 5 (negative) breath... - pSoldier->bActionPoints -= ( pSoldier->sBreathRed + iBPCost - BREATH_RED_MAX ) - / ( 5 * APBPConstants[BP_RATIO_RED_PTS_TO_NORMAL] ); + //CHRISL: Need to adjust this so that AP lose is based on AP_MAXIMUM + pSoldier->bActionPoints -= (INT16)( (float)( pSoldier->sBreathRed + iBPCost - BREATH_RED_MAX ) + / (float)( 5 * APBPConstants[BP_RATIO_RED_PTS_TO_NORMAL]) + * (float)(4 * (float)APBPConstants[AP_MAXIMUM] / 100)); if ( pSoldier->bActionPoints < 0 ) { pSoldier->bActionPoints = 0; diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index f2be93f3a..763893877 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -1844,14 +1844,14 @@ INT16 SOLDIERTYPE::CalcActionPoints( void ) ubPoints = (UINT8) ( ((UINT32)ubPoints) * 100 / this->sWeightCarriedAtTurnStart ); } - // If resulting APs are below our permitted minimum, raise them to it! - if (ubPoints < APBPConstants[AP_MINIMUM]) - ubPoints = APBPConstants[AP_MINIMUM]; - //CHRISL: Moved this down here so that all ubPoints adjustments can be made to the default 100AP system // Adjust ubPoints based on actual AP_MAXIMUM setting ubPoints = DynamicAdjustAPConstants(ubPoints, ubPoints); + // If resulting APs are below our permitted minimum, raise them to it! + if (ubPoints < APBPConstants[AP_MINIMUM]) + ubPoints = APBPConstants[AP_MINIMUM]; + // make sure action points doesn't exceed the permitted maximum ubMaxAPs = gubMaxActionPoints[ this->ubBodyType ];