From 2b19bd1959fca994dd9e9954dbfb7ee921eb6710 Mon Sep 17 00:00:00 2001 From: silversurfer Date: Fri, 4 Oct 2013 18:55:50 +0000 Subject: [PATCH] - new Item_Settings.ini modifiers for weapon class specific range - renamed weapon overheating modifiers to get a common naming scheme - added weapon overheating modifiers for launchers - renamed TURNING_FROM_PRONE_FOR_PUNCH_OR_STUB to TURNING_FROM_PRONE_FOR_PUNCH_OR_STAB for search reasons git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6469 3b4a5df2-a311-0410-b5c6-a8a6f20db521 --- GameSettings.cpp | 81 ++++++++++++++++++++------------- GameSettings.h | 15 ++++-- Tactical/Interface Enhanced.cpp | 22 +++++++-- Tactical/Items.cpp | 13 +++--- Tactical/Soldier Control.cpp | 6 +-- Tactical/Soldier Control.h | 2 +- Tactical/Weapons.cpp | 20 ++++++-- 7 files changed, 104 insertions(+), 55 deletions(-) diff --git a/GameSettings.cpp b/GameSettings.cpp index 00b528bd5..c4149c5e5 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -2407,45 +2407,62 @@ void LoadItemSettings() // silversurfer: New values to fine-tune weapon overheating for different gun classes // --------- PISTOLS ---------- - gItemSettings.fOverheatJamThresholdModifier[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); // ----- MACHINE PISTOLS ------ - gItemSettings.fOverheatJamThresholdModifier[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_MP_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_MP_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_MP_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_MP_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_MP_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_MP_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_MP_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_MP_MODIFIER", 1.0f, 0.1f, 10.0f); // ---------- SMGS ------------ - gItemSettings.fOverheatJamThresholdModifier[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); // --------- RIFLES ----------- - gItemSettings.fOverheatJamThresholdModifier[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); // ------ SNIPER RIFLES ------- - gItemSettings.fOverheatJamThresholdModifier[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); // ------ ASSAULT RIFLES ------ - gItemSettings.fOverheatJamThresholdModifier[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_AR_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_AR_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_AR_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_AR_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_AR_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_AR_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_AR_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_AR_MODIFIER", 1.0f, 0.1f, 10.0f); // ---------- LMGS ------------ - gItemSettings.fOverheatJamThresholdModifier[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); // -------- SHOTGUNS ---------- - gItemSettings.fOverheatJamThresholdModifier[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatDamageThresholdModifier[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatTemperatureModifier[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); - gItemSettings.fOverheatCooldownModifier[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatJamThresholdModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + // -------- LAUNCHERs --------- + gItemSettings.fOverheatJamThresholdModifierLauncher = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_JAM_THRESHOLD_LAUNCHER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatDamageThresholdModifierLauncher = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_DAMAGE_THRESHOLD_LAUNCHER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatTemperatureModifierLauncher = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_TEMPERATURE_LAUNCHER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fOverheatCooldownModifierLauncher = iniReader.ReadFloat ("Weapon Settings","OVERHEATING_COOLDOWN_LAUNCHER_MODIFIER", 1.0f, 0.1f, 10.0f); + + // silversurfer: new values to adjust weapon range for different gun classes + gItemSettings.fRangeModifierGun[GUN_PISTOL] = iniReader.ReadFloat ("Weapon Settings","RANGE_PISTOL_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_M_PISTOL] = iniReader.ReadFloat ("Weapon Settings","RANGE_MP_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_SMG] = iniReader.ReadFloat ("Weapon Settings","RANGE_SMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","RANGE_RIFLE_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_SN_RIFLE] = iniReader.ReadFloat ("Weapon Settings","RANGE_SNIPER_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_AS_RIFLE] = iniReader.ReadFloat ("Weapon Settings","RANGE_AR_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_LMG] = iniReader.ReadFloat ("Weapon Settings","RANGE_LMG_MODIFIER", 1.0f, 0.1f, 10.0f); + gItemSettings.fRangeModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","RANGE_SHOTGUN_MODIFIER", 1.0f, 0.1f, 10.0f); + // -------- LAUNCHERs --------- + gItemSettings.fRangeModifierLauncher = iniReader.ReadFloat ("Weapon Settings","RANGE_LAUNCHER_MODIFIER", 1.0f, 0.1f, 10.0f); } INT16 DynamicAdjustAPConstants(INT16 iniReadValue, INT16 iniDefaultValue, BOOLEAN reverse) diff --git a/GameSettings.h b/GameSettings.h index 47144db29..401654960 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -1743,10 +1743,17 @@ typedef struct typedef struct { // weapon overheating modifiers for the different gun classes - FLOAT fOverheatJamThresholdModifier[9]; - FLOAT fOverheatDamageThresholdModifier[9]; - FLOAT fOverheatTemperatureModifier[9]; - FLOAT fOverheatCooldownModifier[9]; + FLOAT fOverheatJamThresholdModifierGun[9]; + FLOAT fOverheatDamageThresholdModifierGun[9]; + FLOAT fOverheatTemperatureModifierGun[9]; + FLOAT fOverheatCooldownModifierGun[9]; + FLOAT fOverheatJamThresholdModifierLauncher; + FLOAT fOverheatDamageThresholdModifierLauncher; + FLOAT fOverheatTemperatureModifierLauncher; + FLOAT fOverheatCooldownModifierLauncher; + // range modifiers for different weapon types + FLOAT fRangeModifierGun[9]; + FLOAT fRangeModifierLauncher; }ITEM_SETTINGS; diff --git a/Tactical/Interface Enhanced.cpp b/Tactical/Interface Enhanced.cpp index 01a99a8c8..45fa3e028 100644 --- a/Tactical/Interface Enhanced.cpp +++ b/Tactical/Interface Enhanced.cpp @@ -6152,6 +6152,12 @@ void DrawWeaponValues( OBJECTTYPE * gpItemDescObject ) // Get base Range value UINT16 iRangeValue = Weapon[ gpItemDescObject->usItem ].usRange; + // apply Ini modifiers + if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_GUN ) + iRangeValue *= ( (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierGun[ Weapon[ gpItemDescObject->usItem ].ubWeaponType ] ); + else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_LAUNCHER ) + iRangeValue *= ( (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierLauncher); + // Get Final Range value UINT16 iFinalRangeValue = GunRange( gpItemDescObject, NULL ); @@ -11558,7 +11564,9 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject ) iFloatModifier[0] = Weapon[ gpItemDescObject->usItem ].usOverheatingSingleShotTemperature * gGameExternalOptions.iOverheatTemperatureGlobalModfier; if ( Item[gpItemDescObject->usItem].usItemClass & IC_GUN ) - iFloatModifier[0] *= gItemSettings.fOverheatTemperatureModifier[ Weapon[ gpItemDescObject->usItem ].ubWeaponType ]; + iFloatModifier[0] *= gItemSettings.fOverheatTemperatureModifierGun[ Weapon[ gpItemDescObject->usItem ].ubWeaponType ]; + else if ( Item[gpItemDescObject->usItem].usItemClass & IC_LAUNCHER ) + iFloatModifier[0] *= gItemSettings.fOverheatTemperatureModifierLauncher; iFloatModifier[1] = GetSingleShotTemperature( gpItemDescObject ) - iFloatModifier[0]; iFloatModifier[2] = GetSingleShotTemperature( gpItemDescObject ); @@ -11614,7 +11622,9 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject ) iFloatModifier[0] = Item[gpItemDescObject->usItem].usOverheatingCooldownFactor; if ( Item[gpItemDescObject->usItem].usItemClass & IC_GUN ) - iFloatModifier[0] *= gItemSettings.fOverheatCooldownModifier[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + iFloatModifier[0] *= gItemSettings.fOverheatCooldownModifierGun[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + else if ( Item[gpItemDescObject->usItem].usItemClass & IC_LAUNCHER ) + iFloatModifier[0] *= gItemSettings.fOverheatCooldownModifierLauncher; iFloatModifier[1] = GetItemCooldownFactor(gpItemDescObject) - iFloatModifier[0]; iFloatModifier[2] = GetItemCooldownFactor(gpItemDescObject); @@ -11669,7 +11679,9 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject ) iFloatModifier[0] = Weapon[ gpItemDescObject->usItem ].usOverheatingJamThreshold; if ( Item[gpItemDescObject->usItem].usItemClass & IC_GUN ) - iFloatModifier[0] *= gItemSettings.fOverheatJamThresholdModifier[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + iFloatModifier[0] *= gItemSettings.fOverheatJamThresholdModifierGun[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + else if ( Item[gpItemDescObject->usItem].usItemClass & IC_LAUNCHER ) + iFloatModifier[0] *= gItemSettings.fOverheatJamThresholdModifierLauncher; iFloatModifier[1] = GetOverheatJamThreshold(gpItemDescObject) - iFloatModifier[0]; iFloatModifier[2] = GetOverheatJamThreshold(gpItemDescObject); @@ -11724,7 +11736,9 @@ void DrawAdvancedValues( OBJECTTYPE *gpItemDescObject ) iFloatModifier[0] = Weapon[ gpItemDescObject->usItem ].usOverheatingDamageThreshold; if ( Item[gpItemDescObject->usItem].usItemClass & IC_GUN ) - iFloatModifier[0] *= gItemSettings.fOverheatDamageThresholdModifier[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + iFloatModifier[0] *= gItemSettings.fOverheatDamageThresholdModifierGun[ Weapon[gpItemDescObject->usItem].ubWeaponType ]; + else if ( Item[gpItemDescObject->usItem].usItemClass & IC_LAUNCHER ) + iFloatModifier[0] *= gItemSettings.fOverheatDamageThresholdModifierLauncher; iFloatModifier[1] = GetOverheatDamageThreshold(gpItemDescObject) - iFloatModifier[0]; iFloatModifier[2] = GetOverheatDamageThreshold(gpItemDescObject); diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index e4b6ae7ef..e543b13e1 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -13876,11 +13876,10 @@ UINT16 GetModifiedGunRange(UINT16 usWeaponIndex) } // Only apply range modifier on "real" guns! - if (Item[Weapon[usWeaponIndex].uiIndex].usItemClass == IC_GUN || - Item[Weapon[usWeaponIndex].uiIndex].usItemClass == IC_LAUNCHER) - { - ubRange = (INT16)(( ubRange * gGameExternalOptions.iGunRangeModifier ) / 100); - } + if (Item[Weapon[usWeaponIndex].uiIndex].usItemClass == IC_GUN ) + ubRange = (INT16)((FLOAT)( ubRange * gGameExternalOptions.iGunRangeModifier ) / 100 * gItemSettings.fRangeModifierGun[ Weapon[usWeaponIndex].ubWeaponType ] ); + else if (Item[Weapon[usWeaponIndex].uiIndex].usItemClass == IC_LAUNCHER ) + ubRange = (INT16)((FLOAT)( ubRange * gGameExternalOptions.iGunRangeModifier ) / 100 * gItemSettings.fRangeModifierLauncher ); return (UINT16)ubRange; } @@ -14098,7 +14097,9 @@ FLOAT GetItemCooldownFactor( OBJECTTYPE * pObj ) { FLOAT cooldownfactor = Item[pObj->usItem].usOverheatingCooldownFactor; // ... get item-specific cooldown factor ... if ( Item[pObj->usItem].usItemClass & IC_GUN ) - cooldownfactor *= gItemSettings.fOverheatCooldownModifier[ Weapon[ pObj->usItem ].ubWeaponType ]; + cooldownfactor *= gItemSettings.fOverheatCooldownModifierGun[ Weapon[ pObj->usItem ].ubWeaponType ]; + else if ( Item[pObj->usItem].usItemClass & IC_LAUNCHER ) + cooldownfactor *= gItemSettings.fOverheatCooldownModifierLauncher; FLOAT modificator = 1.0f + GetItemCooldownModificator( pObj ); diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index e782dd48b..c6ddcd540 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -8026,7 +8026,7 @@ void SOLDIERTYPE::TurnSoldier( void ) } } - if(this->flags.bTurningFromPronePosition == TURNING_FROM_PRONE_FOR_PUNCH_OR_STUB)//dnl ch73 290913 + if(this->flags.bTurningFromPronePosition == TURNING_FROM_PRONE_FOR_PUNCH_OR_STAB)//dnl ch73 290913 { this->flags.bTurningFromPronePosition = TURNING_FROM_PRONE_OFF; } @@ -11766,7 +11766,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio this->EVENT_SetSoldierDesiredDirection(ubDirection); this->EVENT_SetSoldierDirection(ubDirection); if(this->flags.bTurningFromPronePosition) - this->flags.bTurningFromPronePosition = TURNING_FROM_PRONE_FOR_PUNCH_OR_STUB; + this->flags.bTurningFromPronePosition = TURNING_FROM_PRONE_FOR_PUNCH_OR_STAB; usForceAnimState = INVALID_ANIMATION; // CHANGE TO ANIMATION @@ -11987,7 +11987,7 @@ void SOLDIERTYPE::EVENT_SoldierBeginPunchAttack( INT32 sGridNo, UINT8 ubDirectio this->EVENT_SetSoldierDesiredDirection(ubDirection); this->EVENT_SetSoldierDirection(ubDirection); if(this->flags.bTurningFromPronePosition) - this->flags.bTurningFromPronePosition = TURNING_FROM_PRONE_FOR_PUNCH_OR_STUB; + this->flags.bTurningFromPronePosition = TURNING_FROM_PRONE_FOR_PUNCH_OR_STAB; usForceAnimState = INVALID_ANIMATION; } diff --git a/Tactical/Soldier Control.h b/Tactical/Soldier Control.h index 9fc687d3c..8b66b1cbc 100644 --- a/Tactical/Soldier Control.h +++ b/Tactical/Soldier Control.h @@ -200,7 +200,7 @@ INT8 NUM_SKILL_TRAITS( SOLDIERTYPE * pSoldier, UINT8 uiSkillTraitNumber ); #define TURNING_FROM_PRONE_ON 1 #define TURNING_FROM_PRONE_START_UP_FROM_MOVE 2 #define TURNING_FROM_PRONE_ENDING_UP_FROM_MOVE 3 -#define TURNING_FROM_PRONE_FOR_PUNCH_OR_STUB 4//dnl ch73 290913 +#define TURNING_FROM_PRONE_FOR_PUNCH_OR_STAB 4//dnl ch73 290913 //ENUMERATIONS FOR ACTIONS enum diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index 5f995445e..198329f9a 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -1458,7 +1458,9 @@ FLOAT GetGunOverheatDamagePercentage( FLOAT usTemperature, UINT16 usIndx ) FLOAT damagethreshold = Weapon[Item[ usIndx ].ubClassIndex].usOverheatingDamageThreshold; if ( Item[usIndx].usItemClass & IC_GUN ) - damagethreshold *= gItemSettings.fOverheatDamageThresholdModifier[Weapon[Item[ usIndx ].uiIndex].ubWeaponType]; + damagethreshold *= gItemSettings.fOverheatDamageThresholdModifierGun[Weapon[Item[ usIndx ].uiIndex].ubWeaponType]; + else if ( Item[usIndx].usItemClass & IC_LAUNCHER ) + damagethreshold *= gItemSettings.fOverheatDamageThresholdModifierLauncher; return usTemperature/ damagethreshold ; } @@ -1469,7 +1471,9 @@ FLOAT GetGunOverheatJamPercentage( FLOAT usTemperature, UINT16 usIndx ) FLOAT jamthreshold = Weapon[Item[ usIndx ].ubClassIndex].usOverheatingJamThreshold; if ( Item[usIndx].usItemClass & IC_GUN ) - jamthreshold *= gItemSettings.fOverheatJamThresholdModifier[Weapon[Item[ usIndx ].uiIndex].ubWeaponType]; + jamthreshold *= gItemSettings.fOverheatJamThresholdModifierGun[Weapon[Item[ usIndx ].uiIndex].ubWeaponType]; + else if ( Item[usIndx].usItemClass & IC_LAUNCHER ) + jamthreshold *= gItemSettings.fOverheatJamThresholdModifierLauncher; return usTemperature/ jamthreshold ; } @@ -12078,7 +12082,9 @@ FLOAT GetSingleShotTemperature( OBJECTTYPE *pObj ) singleshottemperature = Weapon[ pObj->usItem ].usOverheatingSingleShotTemperature; if ( Item[pObj->usItem].usItemClass & IC_GUN ) - singleshottemperature *= gItemSettings.fOverheatTemperatureModifier[ Weapon[ pObj->usItem ].ubWeaponType ]; + singleshottemperature *= gItemSettings.fOverheatTemperatureModifierGun[ Weapon[ pObj->usItem ].ubWeaponType ]; + else if ( Item[pObj->usItem].usItemClass & IC_LAUNCHER ) + singleshottemperature *= gItemSettings.fOverheatTemperatureModifierLauncher; // determine modificator according to attachments FLOAT modificator = 1.0f + GetTemperatureModifier(pObj); @@ -12147,7 +12153,9 @@ FLOAT GetOverheatJamThreshold( OBJECTTYPE *pObj ) jamthreshold = Weapon[ pObj->usItem ].usOverheatingJamThreshold; if ( Item[pObj->usItem].usItemClass & IC_GUN ) - jamthreshold *= gItemSettings.fOverheatJamThresholdModifier[ Weapon[ pObj->usItem ].ubWeaponType ]; + jamthreshold *= gItemSettings.fOverheatJamThresholdModifierGun[ Weapon[ pObj->usItem ].ubWeaponType ]; + else if ( Item[pObj->usItem].usItemClass & IC_LAUNCHER ) + jamthreshold *= gItemSettings.fOverheatJamThresholdModifierLauncher; // determine modificator according to attachments FLOAT modificator = 1.0f + GetOverheatJamThresholdModifier(pObj); @@ -12184,7 +12192,9 @@ FLOAT GetOverheatDamageThreshold( OBJECTTYPE *pObj ) damagethreshold = Weapon[ pObj->usItem ].usOverheatingDamageThreshold; if ( Item[pObj->usItem].usItemClass & IC_GUN ) - damagethreshold *= gItemSettings.fOverheatDamageThresholdModifier[ Weapon[ pObj->usItem ].ubWeaponType ]; + damagethreshold *= gItemSettings.fOverheatDamageThresholdModifierGun[ Weapon[ pObj->usItem ].ubWeaponType ]; + else if ( Item[pObj->usItem].usItemClass & IC_LAUNCHER ) + damagethreshold *= gItemSettings.fOverheatDamageThresholdModifierLauncher; // determine modificator according to attachments FLOAT modificator = 1.0f + GetOverheatDamageThresholdModifier(pObj);