From 7342e398580241522e4876ae5e4e4551f4eac438 Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Fri, 23 Aug 2019 20:23:44 +0000 Subject: [PATCH] Fixed incorrect attacker's extra strength calculation in CalcChanceHTH() Fix: don't allow opening inventory panel if soldier is not available during interrupt. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8691 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- Tactical/Interface Panels.cpp | 5 ++++- Tactical/Weapons.cpp | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Tactical/Interface Panels.cpp b/Tactical/Interface Panels.cpp index 5febb3e4..3ba5baac 100644 --- a/Tactical/Interface Panels.cpp +++ b/Tactical/Interface Panels.cpp @@ -6111,7 +6111,6 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) return; } - if (iReason & MSYS_CALLBACK_REASON_INIT) { return; @@ -6122,6 +6121,10 @@ void MercFacePanelCallback( MOUSE_REGION * pRegion, INT32 iReason ) return; } + if (!OK_INTERRUPT_MERC(MercPtrs[ubSoldierID])) + { + return; + } if (iReason & MSYS_CALLBACK_REASON_LBUTTON_DWN) { diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index f4f84bee..5e12cea1 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -8408,7 +8408,7 @@ UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAi iAttRating = ( 2 * EffectiveDexterity( pAttacker, FALSE ) + // coordination, accuracy * 2 * EffectiveAgility( pAttacker, FALSE ) + // speed & reflexes pAttacker->stats.bStrength + // physical strength - pDefender->bExtraStrength + // additional strength from power armour + pAttacker->bExtraStrength + // additional strength from power armour (10 * EffectiveExpLevel( pAttacker ) ) ); // experience, knowledge } else @@ -8417,7 +8417,7 @@ UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAi iAttRating = ( EffectiveDexterity( pAttacker, FALSE ) + // coordination, accuracy EffectiveAgility( pAttacker, FALSE ) + // speed & reflexes 3 * pAttacker->stats.bStrength + // physical strength (TRIPLED!) - 3 * pDefender->bExtraStrength + // additional strength from power armour + 3 * pAttacker->bExtraStrength + // additional strength from power armour (10 * EffectiveExpLevel( pAttacker ) ) ); // experience, knowledge } /////////////////////////////////////////////////////////////////////////////////////// @@ -8427,7 +8427,7 @@ UINT32 CalcChanceHTH( SOLDIERTYPE * pAttacker,SOLDIERTYPE *pDefender, INT16 ubAi iAttRating = (3 * EffectiveDexterity( pAttacker, FALSE ) + // coordination, accuracy (TRIPLED!) EffectiveAgility( pAttacker, FALSE ) + // speed & reflexes pAttacker->stats.bStrength + // physical strength - pDefender->bExtraStrength + // additional strength from power armour + pAttacker->bExtraStrength + // additional strength from power armour (10 * EffectiveExpLevel( pAttacker ) ) ); // experience, knowledge }