From 6b601809d08eded3fc9610631dfe91ecdfed0399 Mon Sep 17 00:00:00 2001 From: silversurfer Date: Thu, 8 Nov 2018 13:34:17 +0000 Subject: [PATCH] Fix: The game incorrectly deducted AP_CHANGE_TARGET for raising a weapon. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8637 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameVersion.cpp | 4 ++-- Tactical/Handle UI.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/GameVersion.cpp b/GameVersion.cpp index e1be2b73..18543542 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -55,8 +55,8 @@ #endif -CHAR8 czVersionNumber[16] = { "Build 18.04.11" }; //YY.MM.DD +CHAR8 czVersionNumber[16] = { "Build 18.08.11" }; //YY.MM.DD CHAR16 zTrackingNumber[16] = { L"Z" }; -CHAR16 zRevisionNumber[16] = { L"Revision 8635" }; +CHAR16 zRevisionNumber[16] = { L"Revision 8637" }; // SAVE_GAME_VERSION is defined in header, change it there diff --git a/Tactical/Handle UI.cpp b/Tactical/Handle UI.cpp index ba1041d1..ed4dccb3 100644 --- a/Tactical/Handle UI.cpp +++ b/Tactical/Handle UI.cpp @@ -5294,16 +5294,19 @@ BOOLEAN MakeSoldierTurn( SOLDIERTYPE *pSoldier, INT16 sXPos, INT16 sYPos ) sAPCostToReady = sAPCost = 0; + // silversurfer: We can't charge AP_CHANGE_TARGET here without also setting pSoldier->sLastTarget to the new grid number. + // Otherwise we'll be charging AP_CHANGE_TARGET over and over because pSoldier->sLastTarget will always be -1. But + // we can't set pSoldier->sLastTarget without screwing up CtH calculation and creating an exploit for that. //CHRISL: We should only charge AP_CHANGE_TARGET if we're actually pointing at a new target. Don't charge just // to ready a weapon since we'll charge AP_CHANGE_TARGET when we actually fire. - SOLDIERTYPE * pTarget = SimpleFindSoldier( sXPos + (MAXCOL * sYPos ), pSoldier->bTargetLevel ); + /*SOLDIERTYPE * pTarget = SimpleFindSoldier( sXPos + (MAXCOL * sYPos ), pSoldier->bTargetLevel ); // Lesh: raise weapon include APs to set weapon towards enemy and APs to aquire/change target if( pSoldier->sLastTarget != sXPos + (MAXCOL * sYPos ) && pTarget != NULL ) sAPCost = APBPConstants[AP_CHANGE_TARGET]; if ( pSoldier->bScopeMode == USE_ALT_WEAPON_HOLD && gGameExternalOptions.ubAllowAlternativeWeaponHolding == 3 ) - sAPCost /= 2; + sAPCost /= 2;*/ if( usAnimState != INVALID_ANIMATION ) {