FireBulletsInfo_t
FireBulletsInfo_t
is a struct that describes a batch of hitscan bullets. An object of this type is normally created by a weapon before being passed, as a required parameter, to CBaseEntity::FireBullets()
.
Tip:For full implementation details, examine
CBaseCombatWeapon::PrimaryAttack()
.Members
int m_iShots
- Number of bullets in this batch. Rapid-fire weapons should be able to queue up several bullets at once if the framerate is low, like this:
while (NextPrimaryAttack <= curtime) { mybullets.m_iShots++; NextPrimaryAttack += fireRate; }
Vector m_vecSrc
Vector m_vecDirShooting
- Location to shoot from and direction to shoot in. Normally assigned
CBasePlayer::Weapon_ShootPosition()
andCBasePlayer::GetAutoaimVector(AUTOAIM_SCALE_DEFAULT)
respectively. Vector m_vecSpread
- A "cone of fire" within which bullets will be spread at random (but see
m_nFlags
). You can use the variousVECTOR_CONE_
#defines to avoid maths. float m_flDistance
- Maximum trace length. Bullets travel this far then disappear.
int m_iAmmoType
- AmmoDef index for the type of bullet being fired.
int m_iTracerFreq
- How often visible tracers should be created. Confirm:1 = 100%, 2 = 50%, etc.
int m_iDamage
int m_iPlayerDamage
- Amount of damage to do. PlayerDamage is a special override that determines how much damage should be done if a player is hit.
int m_nFlags
- Generic flag bitstring - see
FireBulletsFlags_t
. Stock choices are:FIRE_BULLETS_FIRST_SHOT_ACCURATE
- Fire the first shot with perfect accuracy.
FIRE_BULLETS_DONT_HIT_UNDERWATER
- If the shot hits its target underwater, don't damage it.
FIRE_BULLETS_ALLOW_WATER_SURFACE_IMPACTS
- If the shot hits water surface, still call
DoImpactEffect()
. FIRE_BULLETS_TEMPORARY_DANGER_SOUND
- Danger sounds added from this impact can be stomped immediately if another is queued.
float m_flDamageForceScale
- Multiplier for VPhysics forces created by the bullets.
CBaseEntity* m_pAttacker
- The entity which is attacking. Defaults to the one which
FireBullets()
. CBaseEntity* m_pAdditionalIgnoreEnt
- The gun and its owner are ignored when tracing the path of the bullets. This allows another entity to be ignored also.
bool m_bPrimaryAttack
- Whether the attack is primary fire or not. Only checked by the game stats system.