struct IWeaponEventListener { };
IWeapon.h
virtual ~IWeaponEventListener();
virtual void OnEndReload(IWeapon * pWeapon, EntityId shooterId, IEntityClass* pAmmoType) = 0;
virtual void OnFireModeChanged(IWeapon * pWeapon, int currentFireMode) = 0;
virtual void OnOutOfAmmo(IWeapon * pWeapon, IEntityClass* pAmmoType) = 0;
virtual void OnReadyToFire(IWeapon * pWeapon) = 0;
virtual void OnSelected(IWeapon * pWeapon, bool selected) = 0;
virtual void OnShoot(IWeapon * pWeapon, EntityId shooterId, EntityId ammoId, IEntityClass* pAmmoType, const Vec3 & pos, const Vec3 & dir, const Vec3 & vel) = 0;
virtual void OnStartReload(IWeapon * pWeapon, EntityId shooterId, IEntityClass* pAmmoType) = 0;
virtual void OnStartTargetting(IWeapon * pWeapon) = 0;
virtual void OnStopTargetting(IWeapon * pWeapon) = 0;
virtual void OnZoomChanged(IWeapon* pWeapon, bool zoomed, int idx);
empty implementation to be compatible with other game dlls