Added range modifier for throwing knives

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7885 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2015-06-01 21:02:07 +00:00
parent ec90c52bd2
commit 6c9d75480f
4 changed files with 15 additions and 0 deletions
+1
View File
@@ -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);
+1
View File
@@ -2189,6 +2189,7 @@ typedef struct
// range modifiers
FLOAT fRangeModifierGun[9];
FLOAT fRangeModifierLauncher;
FLOAT fRangeModifierThrowingKnife;
FLOAT fRangeModifierGrenade;
// damage modifiers
+11
View File
@@ -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
+2
View File
@@ -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;
}