untyped globalize_all_functions struct { table < entity, array< void functionref(WeaponPrimaryAttackParams attackParams) > > weaponCallbacks } file void function AddCallback_OnWeaponFired(entity weapon, void functionref(WeaponPrimaryAttackParams attackParams) callback){ if(weapon in file.weaponCallbacks){ file.weaponCallbacks[weapon].append(callback) }else{ file.weaponCallbacks[weapon] <- [callback] } AddEntityDestroyedCallback(weapon, HandleWeaponDestroyed) } function HandleWeaponDestroyed(weapon){ entity w = expect entity(weapon) if(w in file.weaponCallbacks){ delete file.weaponCallbacks[w] } } void function OnWeaponFired(entity weapon, WeaponPrimaryAttackParams attackParams){ if(weapon in file.weaponCallbacks){ array< void functionref(WeaponPrimaryAttackParams attackParams) > callbacks = file.weaponCallbacks[weapon] foreach(callback in callbacks){ callback(attackParams) } } } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_alternator_smg( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_alternator_smg(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_defender( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_defender(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_doubletake( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_doubletake(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_lmg( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_lmg(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_lstar( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_lstar(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_mastiff( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_mastiff(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_mgl( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_mgl(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_rocket_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_rocket_launcher(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_shotgun( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_shotgun(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_shotgun_doublebarrel( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_shotgun_doublebarrel(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_shotgun_pistol( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_shotgun_pistol(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_smart_pistol( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_smart_pistol(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_smr( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_smr(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_sniper( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_sniper(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_softball( entity weapon, WeaponPrimaryAttackParams attackParams ) { var result = OnWeaponPrimaryAttack_weapon_softball(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_generic( entity weapon, WeaponPrimaryAttackParams attackParams ){ OnWeaponFired(weapon, attackParams) } var function WeaponFireCallbacks_OnWeaponPrimaryAttack_GenericBoltWithDrop_Player( entity weapon, WeaponPrimaryAttackParams attackParams ){ var result = OnWeaponPrimaryAttack_GenericBoltWithDrop_Player(weapon, attackParams) if(result == 0){ return 0 } OnWeaponFired(weapon, attackParams) return result }