From 8c437af085b7b0c09a508424f80922ac61dae8a4 Mon Sep 17 00:00:00 2001 From: ChrisL Date: Thu, 30 Oct 2008 16:03:40 +0000 Subject: [PATCH] Resolved a Strategic AI.cpp assertion error resulting from army composition values totaling more then 100%. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@2389 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameVersion.cpp | 8 ++++---- Strategic/Strategic AI.cpp | 14 ++++++++++++++ ja2_2005Express.vcproj | 8 ++++---- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/GameVersion.cpp b/GameVersion.cpp index 172fdd42e..35cef91f3 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -13,12 +13,12 @@ #ifdef JA2EDITOR //MAP EDITOR BUILD VERSION -CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.2385" }; +CHAR16 zVersionLabel[256] = { L"Map Editor v1.13.2389" }; #elif defined JA2BETAVERSION //BETA/TEST BUILD VERSION -CHAR16 zVersionLabel[256] = { L"Debug v1.13.2385" }; +CHAR16 zVersionLabel[256] = { L"Debug v1.13.2389" }; #elif defined CRIPPLED_VERSION @@ -28,11 +28,11 @@ CHAR16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - CHAR16 zVersionLabel[256] = { L"Release v1.13.2385" }; + CHAR16 zVersionLabel[256] = { L"Release v1.13.2389" }; #endif -CHAR8 czVersionNumber[16] = { "Build 08.10.28" }; //YY.MM.DD +CHAR8 czVersionNumber[16] = { "Build 08.10.30" }; //YY.MM.DD CHAR16 zTrackingNumber[16] = { L"Z" }; diff --git a/Strategic/Strategic AI.cpp b/Strategic/Strategic AI.cpp index ce1dac3cb..66b5602db 100644 --- a/Strategic/Strategic AI.cpp +++ b/Strategic/Strategic AI.cpp @@ -5653,6 +5653,20 @@ void CalcNumTroopsBasedOnComposition( UINT8 *pubNumTroops, UINT8 *pubNumElites, (*pubNumElites)++; } } + //CHRISL: For some reason, it's possible for pubNumTroops + pubNumElites to be greater then ubTotal. It seems that in some + // cases, bTroopPercentage and bElitePercentage can add up to more then 100%. So we need an extra condition that makes + // sure we don't have more then ubTotal + while( *pubNumTroops + *pubNumElites > ubTotal) + { + if( Chance( gArmyComp[ iCompositionID ].bTroopPercentage ) ) + { + (*pubNumTroops)--; + } + else + { + (*pubNumElites)--; + } + } Assert( *pubNumTroops + *pubNumElites == ubTotal ); } diff --git a/ja2_2005Express.vcproj b/ja2_2005Express.vcproj index 41a21aba1..faab2bc72 100644 --- a/ja2_2005Express.vcproj +++ b/ja2_2005Express.vcproj @@ -66,7 +66,7 @@