diff --git a/Tactical/Items.cpp b/Tactical/Items.cpp index 9cdca11d..6d69454c 100644 --- a/Tactical/Items.cpp +++ b/Tactical/Items.cpp @@ -7100,3 +7100,40 @@ INT8 FindNightGoggles( SOLDIERTYPE * pSoldier, INT16 bonusToBeat ) } return( ITEM_NOT_FOUND ); } + +INT16 GetMinRangeForAimBonus( OBJECTTYPE * pObj ) +{ + INT16 bns; + + bns = Item[pObj->usItem].minrangeforaimbonus; + bns += Item[pObj->usGunAmmoItem].minrangeforaimbonus; + + for (int i = 0; i < MAX_ATTACHMENTS; i++) + { + bns += Item[pObj->usAttachItem[i]].minrangeforaimbonus; + } + + return( bns ); +} + +UINT8 AllowedAimingLevels(SOLDIERTYPE * pSoldier) +{ + UINT8 aimLevels = 4; + OBJECTTYPE obj = pSoldier->inv[pSoldier->ubAttackingHand]; + + if ( IsScoped( &obj ) ) + { + if ( GetMinRangeForAimBonus(&obj) >= 60 ) // HACK: Madd: hard coded for now for testing + { + aimLevels += 2; + } + + if ( GetMinRangeForAimBonus(&obj) >= 90 ) // HACK: Madd: hard coded for now for testing + { + aimLevels += 2; + } + } + + return aimLevels; +} + diff --git a/Tactical/Items.h b/Tactical/Items.h index c3d6adcc..73d20c38 100644 --- a/Tactical/Items.h +++ b/Tactical/Items.h @@ -288,5 +288,8 @@ UINT16 GetFirstExplosiveOfType(UINT16 expType); INT8 FindSunGoggles( SOLDIERTYPE * pSoldier, INT16 bonusToBeat ); INT8 FindNightGoggles( SOLDIERTYPE * pSoldier, INT16 bonusToBeat ); +INT16 GetMinRangeForAimBonus( OBJECTTYPE * pObj ); +UINT8 AllowedAimingLevels(SOLDIERTYPE * pSoldier); + #endif diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index 61a34410..90f7ce37 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -1687,7 +1687,7 @@ BOOLEAN UseGun( SOLDIERTYPE *pSoldier , INT16 sTargetGridNo ) DeductAmmo( pSoldier, pSoldier->ubAttackingHand ); // ATE: Check if we should say quote... - if ( pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft == 0 && !Item[pSoldier->usAttackingWeapon].singleshotrocketlauncher ) + if ( pSoldier->inv[ pSoldier->ubAttackingHand ].ubGunShotsLeft == 0 && !Item[pSoldier->usAttackingWeapon].rocketlauncher ) { if ( pSoldier->bTeam == gbPlayerNum ) {