From 5259bdeee2cf8971bf17221ae1b7c535ca312aef Mon Sep 17 00:00:00 2001 From: lalien Date: Sun, 4 Jun 2006 17:52:58 +0000 Subject: [PATCH] - bug fix 'j' key was not working properly - check for invalid sector in GetCurrentBattleSectorXYZAndReturnTRUEIfThereIsABattle git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@168 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameVersion.cpp | 2 +- JA2.vcproj | 4 +-- Strategic/Auto Resolve.cpp | 8 ++--- Tactical/Turn Based Input.cpp | 13 +++---- TacticalAI/Attacks.cpp | 65 +++++++++++++++++------------------ 5 files changed, 46 insertions(+), 46 deletions(-) diff --git a/GameVersion.cpp b/GameVersion.cpp index 76f6a3a6..831c59cf 100644 --- a/GameVersion.cpp +++ b/GameVersion.cpp @@ -23,7 +23,7 @@ INT16 zVersionLabel[256] = { L"Beta v. 0.98" }; #else //RELEASE BUILD VERSION - INT16 zVersionLabel[256] = { L"Release v1.13.165" }; + INT16 zVersionLabel[256] = { L"Release v1.13.168" }; #endif diff --git a/JA2.vcproj b/JA2.vcproj index b5c9bc73..9eade705 100644 --- a/JA2.vcproj +++ b/JA2.vcproj @@ -43,7 +43,7 @@ ubID, &fNearLowerLevel, &fNearHeigherLevel ); + GetMercClimbDirection( pjSoldier->ubID, &fNearLowerLevel, &fNearHeigherLevel ); if ( fNearLowerLevel ) { - BeginSoldierClimbDownRoof( gpSMCurrentMerc ); + BeginSoldierClimbDownRoof( pjSoldier ); } if ( fNearHeigherLevel ) { - BeginSoldierClimbUpRoof( gpSMCurrentMerc ); + BeginSoldierClimbUpRoof( pjSoldier ); } - if ( FindFenceJumpDirection( gpSMCurrentMerc, gpSMCurrentMerc->sGridNo, gpSMCurrentMerc->bDirection, &bDirection ) ) + if ( FindFenceJumpDirection( pjSoldier, pjSoldier->sGridNo, pjSoldier->bDirection, &bDirection ) ) { - BeginSoldierClimbFence( gpSMCurrentMerc ); + BeginSoldierClimbFence( pjSoldier ); } } } diff --git a/TacticalAI/Attacks.cpp b/TacticalAI/Attacks.cpp index d0ed144b..6f3844e7 100644 --- a/TacticalAI/Attacks.cpp +++ b/TacticalAI/Attacks.cpp @@ -1678,7 +1678,7 @@ INT32 EstimateShotDamage(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pOpponent, UINT8 ub INT32 EstimateThrowDamage( SOLDIERTYPE *pSoldier, UINT8 ubItemPos, SOLDIERTYPE *pOpponent, INT16 sGridno ) { UINT16 ubExplosiveIndex; - INT32 iExplosDamage, iBreathDamage, iArmourAmount, iDamage = 0; + INT32 iExplosDamage, iBreathDamage, iArmourAmount, iDamage = 0; INT8 bSlot; @@ -1688,38 +1688,37 @@ INT32 EstimateThrowDamage( SOLDIERTYPE *pSoldier, UINT8 ubItemPos, SOLDIERTYPE * if( pSoldier->inv[ubItemPos].usItem == NOTHING ) return 0; - + //switch ( pSoldier->inv[ ubItemPos ].usItem ) //{ - //case GL_SMOKE_GRENADE: - //case SMOKE_GRENADE: - // // Don't want to value throwing smoke very much. This value is based relative - // // to the value for knocking somebody down, which was giving values that were - // // too high - // return( 5 ); - //case RPG7: - //case ROCKET_LAUNCHER: - // ubExplosiveIndex = Item[ C1 ].ubClassIndex; - // break; - //default: - if ( Item[pSoldier->inv[ ubItemPos ].usItem].singleshotrocketlauncher ) - ubExplosiveIndex = Item[ C1 ].ubClassIndex; - else if ( Item[pSoldier->inv[ ubItemPos ].usItem].rocketlauncher || Item[pSoldier->inv[ ubItemPos ].usItem].grenadelauncher || Item[pSoldier->inv[ ubItemPos ].usItem].mortar ) - { - bSlot = FindLaunchableAttachment(&pSoldier->inv[ ubItemPos ],pSoldier->inv[ ubItemPos ].usItem ) ; - if ( bSlot != ITEM_NOT_FOUND ) - ubExplosiveIndex = Item[pSoldier->inv[ bSlot ].usItem].ubClassIndex; - else - return 0; - } - else if ( Explosive[Item[pSoldier->inv[ ubItemPos ].usItem].ubClassIndex].ubType == EXPLOSV_SMOKE ) - return 5; - else - ubExplosiveIndex = Item[ pSoldier->inv[ubItemPos].usItem ].ubClassIndex; - - // break; - //} + //case GL_SMOKE_GRENADE: + //case SMOKE_GRENADE: + // // Don't want to value throwing smoke very much. This value is based relative + // // to the value for knocking somebody down, which was giving values that were + // // too high + // return( 5 ); + //case RPG7: + //case ROCKET_LAUNCHER: + // ubExplosiveIndex = Item[ C1 ].ubClassIndex; + // break; + //default: + if ( Item[pSoldier->inv[ ubItemPos ].usItem].singleshotrocketlauncher ) + ubExplosiveIndex = Item[ C1 ].ubClassIndex; + else if ( Item[pSoldier->inv[ ubItemPos ].usItem].rocketlauncher || Item[pSoldier->inv[ ubItemPos ].usItem].grenadelauncher || Item[pSoldier->inv[ ubItemPos ].usItem].mortar ) + { + bSlot = FindLaunchableAttachment(&pSoldier->inv[ ubItemPos ],pSoldier->inv[ ubItemPos ].usItem ) ; + if ( bSlot != ITEM_NOT_FOUND ) + ubExplosiveIndex = Item[pSoldier->inv[ bSlot ].usItem].ubClassIndex; + else + return 0; + } + else if ( Explosive[Item[pSoldier->inv[ ubItemPos ].usItem].ubClassIndex].ubType == EXPLOSV_SMOKE ) + return 5; + else + ubExplosiveIndex = Item[ pSoldier->inv[ubItemPos].usItem ].ubClassIndex; + // break; + //} // JA2Gold: added if ( Item[pSoldier->inv[ubItemPos].usItem].flare ) { @@ -1744,7 +1743,7 @@ INT32 EstimateThrowDamage( SOLDIERTYPE *pSoldier, UINT8 ubItemPos, SOLDIERTYPE * //NumMessage("damage after GAS MASK: ",iBreathDamage); } - } + } if ( Explosive[ ubExplosiveIndex ].ubType == EXPLOSV_BURNABLEGAS ) { // if target gridno is outdoors (where tear gas lasts only 1-2 turns) @@ -1759,7 +1758,7 @@ INT32 EstimateThrowDamage( SOLDIERTYPE *pSoldier, UINT8 ubItemPos, SOLDIERTYPE * if (iExplosDamage < 1) iExplosDamage = 1; - } + } // if this opponent is standing if (gAnimControl[ pSoldier->usAnimState ].ubEndHeight == ANIM_STAND) @@ -1784,7 +1783,7 @@ INT32 EstimateThrowDamage( SOLDIERTYPE *pSoldier, UINT8 ubItemPos, SOLDIERTYPE * // if the target gridno is in water, grenade may not blow (guess 50% of time) /* if (TTypeList[Grid[gridno].land] >= LAKETYPE) - iDamage /= 2; + iDamage /= 2; */ return( iDamage);