From 1200ce8de312337a6c8f1c400cedcc4b54dba502 Mon Sep 17 00:00:00 2001 From: Sevenfm Date: Thu, 29 Oct 2020 13:21:57 +0000 Subject: [PATCH] Added new option BUCKSHOT_SUPPRESSION_EFFECTIVENESS, 50 by default, used both for NCTH and OCTH. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8912 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 2 ++ GameSettings.h | 2 ++ Tactical/LOS.cpp | 8 ++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 5a2102df..6a0e50ae 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -1610,6 +1610,8 @@ void LoadGameExternalOptions() // HEADROCK HAM 3.5: Explosive Suppression Effectiveness alters the amount of Suppression Points you get from nearby blasts. gGameExternalOptions.usExplosionSuppressionEffect = iniReader.ReadInteger("Tactical Suppression Fire Settings","EXPLOSIVE_SUPPRESSION_EFFECTIVENESS", 100, 0, 1000); + gGameExternalOptions.ubBuckshotSuppressionEffectiveness = iniReader.ReadInteger("Tactical Suppression Fire Settings", "BUCKSHOT_SUPPRESSION_EFFECTIVENESS", 50, 0, 100); + // HEADROCK HAM 3.1: This is a suppression tool that not everyone will like. It gives an on-screen message when any character has been suppressed so much he's lost his next turn completely! gGameExternalOptions.fShowSuppressionShutdown = iniReader.ReadBoolean("Tactical Suppression Fire Settings","NOTIFY_WHEN_PINNED_DOWN", FALSE); diff --git a/GameSettings.h b/GameSettings.h index 3bb1871d..b7b50440 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -1205,6 +1205,8 @@ typedef struct // HEADROCK HAM 3.5: Explosive Suppression Effectiveness alters the amount of Suppression Points you get from nearby blasts. UINT16 usExplosionSuppressionEffect; + UINT8 ubBuckshotSuppressionEffectiveness; + // HEADROCK HAM 3.5: When enabled, goggle-switching affects every merc in the sector, not just those belonging to the current squad. BOOLEAN fGoggleSwapAffectsAllMercsInSector; diff --git a/Tactical/LOS.cpp b/Tactical/LOS.cpp index 7e963243..617eea44 100644 --- a/Tactical/LOS.cpp +++ b/Tactical/LOS.cpp @@ -7106,7 +7106,9 @@ void MoveBullet( INT32 iBullet ) { // buckshot has only a 1 in 2 chance of applying a suppression point // HEADROCK HAM 5: For NCTH, make pellets as effective as any other bullet. - if (UsingNewCTHSystem() || !(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Random(2)) + // sevenfm: externalized chance + //if (UsingNewCTHSystem() || !(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Random(2)) + if (!(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Chance(gGameExternalOptions.ubBuckshotSuppressionEffectiveness)) { // bullet goes whizzing by this guy! switch ( gAnimControl[ MercPtrs[pStructure->usStructureID]->usAnimState ].ubEndHeight ) @@ -7192,7 +7194,9 @@ void MoveBullet( INT32 iBullet ) { // buckshot has only a 1 in 2 chance of applying a suppression point // HEADROCK HAM 5: For NCTH, make pellets as effective as any other bullet. - if (UsingNewCTHSystem() || !(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Random(2)) + // sevenfm: externalized chance + //if (UsingNewCTHSystem() || !(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Random(2)) + if (!(pBullet->usFlags & BULLET_FLAG_BUCKSHOT) || Chance(gGameExternalOptions.ubBuckshotSuppressionEffectiveness)) { // bullet goes whizzing by this guy! switch ( gAnimControl[ pTarget->usAnimState ].ubEndHeight )