diff --git a/GameSettings.cpp b/GameSettings.cpp index 33430f41..305a7eaf 100644 --- a/GameSettings.cpp +++ b/GameSettings.cpp @@ -2833,6 +2833,7 @@ void LoadItemSettings() gItemSettings.fRangeModifierGun[GUN_SHOTGUN] = iniReader.ReadFloat ("Weapon Settings","RANGE_SHOTGUN_MODIFIER", 1.0f, 0.1f, 5.0f); // -------- LAUNCHERs --------- gItemSettings.fRangeModifierLauncher = iniReader.ReadFloat ("Weapon Settings","RANGE_LAUNCHER_MODIFIER", 1.0f, 0.1f, 5.0f); + gItemSettings.fRangeModifierThrowingKnife = iniReader.ReadFloat( "Weapon Settings", "RANGE_THROWINGKNIFE_MODIFIER", 1.0f, 0.1f, 5.0f ); // throwing hand grenades gItemSettings.fRangeModifierGrenade = iniReader.ReadFloat ("Weapon Settings","RANGE_GRENADE_MODIFIER", 1.0f, 0.1f, 5.0f); diff --git a/GameSettings.h b/GameSettings.h index c054a8c3..ff981a2c 100644 --- a/GameSettings.h +++ b/GameSettings.h @@ -2189,6 +2189,7 @@ typedef struct // range modifiers FLOAT fRangeModifierGun[9]; FLOAT fRangeModifierLauncher; + FLOAT fRangeModifierThrowingKnife; FLOAT fRangeModifierGrenade; // damage modifiers diff --git a/Tactical/Interface Enhanced.cpp b/Tactical/Interface Enhanced.cpp index d11ca743..823a4233 100644 --- a/Tactical/Interface Enhanced.cpp +++ b/Tactical/Interface Enhanced.cpp @@ -6737,6 +6737,8 @@ void DrawWeaponValues( OBJECTTYPE * gpItemDescObject ) iRangeValue = (UINT16)( (FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierGun[ Weapon[ gpItemDescObject->usItem ].ubWeaponType ] / 10.0f ); else if ( Item[ gpItemDescObject->usItem ].usItemClass & IC_LAUNCHER ) iRangeValue = (UINT16)( (FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierLauncher / 10.0f ); + else if ( Item[gpItemDescObject->usItem].usItemClass & IC_THROWING_KNIFE ) + iRangeValue = (UINT16)((FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierThrowingKnife / 10.0f); // Get Final Range value UINT16 iFinalRangeValue = (UINT16)( GunRange( gpItemDescObject, gpItemDescSoldier ) / 10.0f ); @@ -6757,11 +6759,15 @@ void DrawWeaponValues( OBJECTTYPE * gpItemDescObject ) { // Get base Range value UINT16 iComparedRangeValue = Weapon[ gpComparedItemDescObject->usItem ].usRange; + // apply Ini modifiers if ( Item[ gpComparedItemDescObject->usItem ].usItemClass & IC_GUN ) iComparedRangeValue = (UINT16)( (FLOAT)iComparedRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierGun[ Weapon[ gpComparedItemDescObject->usItem ].ubWeaponType ] / 10.0f ); else if ( Item[ gpComparedItemDescObject->usItem ].usItemClass & IC_LAUNCHER ) iComparedRangeValue = (UINT16)( (FLOAT)iComparedRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierLauncher / 10.0f ); + else if ( Item[gpComparedItemDescObject->usItem].usItemClass & IC_THROWING_KNIFE ) + iComparedRangeValue = (UINT16)((FLOAT)iComparedRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierThrowingKnife / 10.0f); + // Get Final Range value UINT16 iComparedFinalRangeValue = (UINT16)( GunRange( gpComparedItemDescObject, gpItemDescSoldier ) / 10.0f ); // Get difference @@ -6780,13 +6786,18 @@ void DrawWeaponValues( OBJECTTYPE * gpItemDescObject ) ubNumLine = 2; else ubNumLine = 0; + // Get base Range value UINT16 iRangeValue = Weapon[ gpComparedItemDescObject->usItem ].usRange; + // apply Ini modifiers if ( Item[ gpComparedItemDescObject->usItem ].usItemClass & IC_GUN ) iRangeValue = (UINT16)( (FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierGun[ Weapon[ gpComparedItemDescObject->usItem ].ubWeaponType ] / 10.0f ); else if ( Item[ gpComparedItemDescObject->usItem ].usItemClass & IC_LAUNCHER ) iRangeValue = (UINT16)( (FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierLauncher / 10.0f ); + else if ( Item[gpComparedItemDescObject->usItem].usItemClass & IC_THROWING_KNIFE ) + iRangeValue = (UINT16)((FLOAT)iRangeValue * (FLOAT)(gGameExternalOptions.iGunRangeModifier / 100) * gItemSettings.fRangeModifierThrowingKnife / 10.0f); + // Get Final Range value UINT16 iFinalRangeValue = (UINT16)( GunRange( gpComparedItemDescObject, NULL ) / 10.0f ); // Get difference diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 5579eac3..93bad729 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -14122,6 +14122,8 @@ UINT16 GetModifiedGunRange(UINT16 usWeaponIndex) 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 ); + else if ( Item[Weapon[usWeaponIndex].uiIndex].usItemClass == IC_THROWING_KNIFE ) + ubRange = (INT16)((FLOAT)(ubRange * gGameExternalOptions.iGunRangeModifier) / 100 * gItemSettings.fRangeModifierThrowingKnife); return (UINT16)ubRange; }