From ca008d8e868f3aa4caf5dbf0ba495a210bd0c847 Mon Sep 17 00:00:00 2001 From: Dinorush Date: Fri, 18 Aug 2023 05:58:42 -0400 Subject: [PATCH] Restructure and add class name callbacks --- mod.json | 6 +- mod/scripts/vscripts/weaponFireCallbacks.gnut | 289 ++-- mod/scripts/vscripts/weaponFireReroutes.gnut | 1226 +++++++++++++++++ 3 files changed, 1354 insertions(+), 167 deletions(-) create mode 100644 mod/scripts/vscripts/weaponFireReroutes.gnut diff --git a/mod.json b/mod.json index d8e3409..a7a801d 100644 --- a/mod.json +++ b/mod.json @@ -7,7 +7,11 @@ "Scripts": [ { "Path": "weaponFireCallbacks.gnut", - "RunOn": "SERVER" + "RunOn": "CLIENT || SERVER" + }, + { + "Path": "weaponFireReroutes.gnut", + "RunOn": "CLIENT || SERVER" } ] } diff --git a/mod/scripts/vscripts/weaponFireCallbacks.gnut b/mod/scripts/vscripts/weaponFireCallbacks.gnut index 562fbc0..51ba017 100644 --- a/mod/scripts/vscripts/weaponFireCallbacks.gnut +++ b/mod/scripts/vscripts/weaponFireCallbacks.gnut @@ -3,194 +3,151 @@ untyped globalize_all_functions struct { - table < entity, array< void functionref(WeaponPrimaryAttackParams attackParams) > > weaponCallbacks + table < entity, array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > > weaponCallbacks + table < string, array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > > weaponClassCallbacks + table < string, array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > > ownerClassCallbacks + bool clearThreadRunning = false // Only used on client } file -void function AddCallback_OnWeaponFired(entity weapon, void functionref(WeaponPrimaryAttackParams attackParams) callback){ - if(weapon in file.weaponCallbacks){ - file.weaponCallbacks[weapon].append(callback) - }else{ +void function WeaponFireCallbacks_AddCallbackOnWeaponFired( entity weapon, void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) callback ) +{ + if ( !IsValid( weapon ) ) + return + + if ( weapon in file.weaponCallbacks ) + file.weaponCallbacks[weapon].append( callback ) + else file.weaponCallbacks[weapon] <- [callback] - } - AddEntityDestroyedCallback(weapon, HandleWeaponDestroyed) + + #if SERVER + AddEntityDestroyedCallback( weapon, WeaponFireCallbacks_HandleWeaponDestroyed ) + #else + // Per-entity destroyed callbacks don't exist on client. Client needs to clear invalid keys periodically. + if ( !file.clearThreadRunning ) + thread ClearInvalidWeaponsThread() + #endif } -function HandleWeaponDestroyed(weapon){ - entity w = expect entity(weapon) - if(w in file.weaponCallbacks){ +void function WeaponFireCallbacks_AddCallbackOnWeaponClassFired( string weaponClass, void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) callback ) +{ + if ( weaponClass in file.weaponClassCallbacks ) + file.weaponClassCallbacks[weaponClass].append( callback ) + else + file.weaponClassCallbacks[weaponClass] <- [callback] +} + +void function WeaponFireCallbacks_RemoveCallbackOnWeaponClassFired( string weaponClass, void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) callback ) +{ + if ( weaponClass in file.weaponClassCallbacks ) + { + file.weaponClassCallbacks[weaponClass].fastremovebyvalue( callback ) + if ( file.weaponClassCallbacks[weaponClass].len() == 0 ) + delete file.weaponClassCallbacks[weaponClass] + } +} + +void function WeaponFireCallbacks_AddCallbackOnOwnerClassFired( string ownerClass, void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) callback ) +{ + if ( ownerClass in file.ownerClassCallbacks ) + file.ownerClassCallbacks[ownerClass].append( callback ) + else + file.ownerClassCallbacks[ownerClass] <- [callback] +} + +void function WeaponFireCallbacks_RemoveCallbackOnOwnerClassFired( string ownerClass, void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) callback ) +{ + if ( ownerClass in file.ownerClassCallbacks ) + { + file.ownerClassCallbacks[ownerClass].fastremovebyvalue( callback ) + if ( file.ownerClassCallbacks[ownerClass].len() == 0 ) + delete file.ownerClassCallbacks[ownerClass] + } +} + +function WeaponFireCallbacks_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) +#if CLIENT +void function ClearInvalidWeaponsThread() +{ + file.clearThreadRunning = true + + while( file.weaponCallbacks.len() > 0 ) + { + array< entity > invalidList = [] + + foreach( key, callback in file.weaponCallbacks ) + { + if ( !IsValid( key ) ) + invalidList.append( key ) } + + foreach( w in invalidList ) + delete file.weaponCallbacks[w] + + wait 1.0 // Some arbitrary number that isn't WaitFrame(), don't need to run this very often } + + file.clearThreadRunning = false } +#endif - -var function WeaponFireCallbacks_OnWeaponPrimaryAttack_alternator_smg( entity weapon, WeaponPrimaryAttackParams attackParams ) +void function WeaponFireCallbacks_OnWeaponFired( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) { - var result = OnWeaponPrimaryAttack_alternator_smg(weapon, attackParams) - if(result == 0){ - return 0 + if ( weapon in file.weaponCallbacks ) + { + #if CLIENT + ClearInvalidWeapons() + #endif + + array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > callbacks = file.weaponCallbacks[weapon] + foreach ( callback in callbacks ) + callback( weapon, attackParams, ammoUsed ) + } + + string weaponClass = weapon.GetWeaponClassName() + if ( weaponClass in file.weaponClassCallbacks ) + { + array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > callbacks = file.weaponClassCallbacks[weaponClass] + foreach ( callback in callbacks ) + callback( weapon, attackParams, ammoUsed ) + } + + entity owner = weapon.GetWeaponOwner() + if ( !IsValid( owner ) ) + return + + string ownerClass = owner.GetClassName() + if ( ownerClass in file.ownerClassCallbacks ) + { + array< void functionref( entity weapon, WeaponPrimaryAttackParams attackParams, var ammoUsed ) > callbacks = file.ownerClassCallbacks[ownerClass] + foreach ( callback in callbacks ) + callback( weapon, attackParams, ammoUsed ) } - OnWeaponFired(weapon, attackParams) - return result } -var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_defender( entity weapon, WeaponPrimaryAttackParams attackParams ) +var function WeaponFireCallbacks_OnWeaponPrimaryAttack( entity weapon, WeaponPrimaryAttackParams attackParams ) { - var result = OnWeaponPrimaryAttack_weapon_defender(weapon, attackParams) - if(result == 0){ + weapon.EmitWeaponNpcSound( LOUD_WEAPON_AI_SOUND_RADIUS_MP, 0.2 ) + var result = weapon.FireWeaponBullet( attackParams.pos, attackParams.dir, 1, weapon.GetWeaponDamageFlags() ) + if ( result == 0 ) return 0 - } - OnWeaponFired(weapon, attackParams) + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) return result } -var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_doubletake( entity weapon, WeaponPrimaryAttackParams attackParams ) +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack( entity weapon, WeaponPrimaryAttackParams attackParams ) { - var result = OnWeaponPrimaryAttack_weapon_doubletake(weapon, attackParams) - if(result == 0){ + weapon.EmitWeaponNpcSound( LOUD_WEAPON_AI_SOUND_RADIUS_MP, 0.2 ) + var result = weapon.FireWeaponBullet( attackParams.pos, attackParams.dir, 1, weapon.GetWeaponDamageFlags() ) + if ( result == 0 ) return 0 - } - OnWeaponFired(weapon, attackParams) + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) 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 -} \ No newline at end of file +#endif \ No newline at end of file diff --git a/mod/scripts/vscripts/weaponFireReroutes.gnut b/mod/scripts/vscripts/weaponFireReroutes.gnut new file mode 100644 index 0000000..123b2ba --- /dev/null +++ b/mod/scripts/vscripts/weaponFireReroutes.gnut @@ -0,0 +1,1226 @@ +globalize_all_functions + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_ammo_swap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_ammo_swap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_ammo_swap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_ammo_swap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanability_basic_block( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanability_basic_block( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanability_smoke( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanability_smoke( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_gun_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_gun_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_gun_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_gun_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_TitanHover( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_TitanHover( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_NPC_OnWeaponPrimaryAttack_TitanHover( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = NPC_OnWeaponPrimaryAttack_TitanHover( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_laser_trip( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_laser_trip( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_laser_trip( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_laser_trip( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_nuke_eject( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_nuke_eject( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_particle_wall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_particle_wall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_particle_wall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_particle_wall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanability_phase_dash( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanability_phase_dash( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanability_phase_dash( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanability_phase_dash( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_power_shot( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_power_shot( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_power_shot( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_power_shot( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanability_rearm( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanability_rearm( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanability_rearm( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanability_rearm( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_rocketeer_ammo_swap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_rocketeer_ammo_swap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_rocketeer_ammo_swap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_rocketeer_ammo_swap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_slow_trap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_slow_trap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_slow_trap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_slow_trap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanability_smoke( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanability_smoke( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanability_sonar_pulse( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanability_sonar_pulse( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanability_sonar_pulse( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanability_sonar_pulse( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_tether_trap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_tether_trap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_tether_trap( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_tether_trap( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_TimeShift( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_TimeShift( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_AmpCore( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_AmpCore( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_AmpCore( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_AmpCore( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titancore_flame_wave( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titancore_flame_wave( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_salvo_core( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_salvo_core( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_salvo_core( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_salvo_core( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_arc_wave( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_arc_wave( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_arc_wave( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_arc_wave( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_dumbfire_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_dumbfire_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_dumbfire_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_dumbfire_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_FlameWall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_FlameWall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_FlameWall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_FlameWall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_flightcore_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_flightcore_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_flightcore_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_flightcore_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_heat_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_heat_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_heat_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_heat_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_homing_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_homing_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_homing_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_homing_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_laser_lite( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_laser_lite( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_laser_lite( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_laser_lite( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_leadwall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_leadwall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_leadwall( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_leadwall( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_Meteor( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_Meteor( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_Meteor( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_Meteor( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_salvo_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_salvo_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_particle_accelerator( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_particle_accelerator( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_particle_accelerator( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_particle_accelerator( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_predator_cannon( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_predator_cannon( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_predator_cannon( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_predator_cannon( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_TitanWeapon_Rocketeer_RocketStream( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_TitanWeapon_Rocketeer_RocketStream( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_TitanWeapon_Rocketeer_RocketStream( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_TitanWeapon_Rocketeer_RocketStream( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_salvo_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_salvo_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_shoulder_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_shoulder_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_shoulder_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_shoulder_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_sniper( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_sniper( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_sniper( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_sniper( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_40mm( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_40mm( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_40mm( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_40mm( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_stun_laser( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_stun_laser( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_stun_laser( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_stun_laser( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_tracker_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_tracker_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNPCPrimaryAttack_titanweapon_tracker_rockets( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNPCPrimaryAttack_titanweapon_tracker_rockets( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_vortex_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_vortex_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_vortex_shield( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_vortex_shield( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_smr( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_smr( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_smr( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_smr( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_GenericBoltWithDrop_Player( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_GenericBoltWithDrop_Player( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_GenericBoltWithDrop_NPC( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_GenericBoltWithDrop_NPC( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_titanweapon_xo16( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_titanweapon_xo16( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_titanweapon_xo16( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_titanweapon_xo16( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_alternator_smg( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_alternator_smg( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_alternator_smg( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_alternator_smg( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_arc_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_arc_launcher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_defender( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_defender( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_defender( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_defender( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_doubletake( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_doubletake( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_doubletake( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_doubletake( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_DroneBeam( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_DroneBeam( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_DronePlasma( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_DronePlasma( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_dronerocket( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_dronerocket( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_engineer_combat_drone( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_engineer_combat_drone( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_lmg( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_lmg( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_GunshipLauncher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_GunshipLauncher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_GunshipLauncher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_GunshipLauncher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_gunship_missile( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_gunship_missile( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_lstar( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_lstar( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_lstar( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_lstar( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_mastiff( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_mastiff( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_mastiff( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_mastiff( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_mega_turret( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_mega_turret( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_mega_turret( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_mega_turret( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_mgl( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_mgl( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_mgl( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_mgl( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_npc_rocket_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_npc_rocket_launcher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_npc_rocket_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_npc_rocket_launcher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_rocket_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_rocket_launcher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_rocket_launcher( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_rocket_launcher( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_shotgun( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_shotgun( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_shotgun( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_shotgun( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_shotgun_doublebarrel( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_shotgun_doublebarrel( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_shotgun_doublebarrel( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_shotgun_doublebarrel( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_shotgun_pistol( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_shotgun_pistol( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_shotgun_pistol( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_shotgun_pistol( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_smart_pistol( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_smart_pistol( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_sniper( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_sniper( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_sniper( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_sniper( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +var function WeaponFireCallbacks_OnWeaponPrimaryAttack_weapon_softball( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponPrimaryAttack_weapon_softball( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_softball( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_softball( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_SuperSpectre( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_SuperSpectre( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_TurretLaser_Mega( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_TurretLaser_Mega( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_TurretPlasma( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_TurretPlasma( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_TurretPlasma_Mega( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_TurretPlasma_Mega( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_yh803Rocket( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_yh803Rocket( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif + +#if SERVER +var function WeaponFireCallbacks_OnWeaponNpcPrimaryAttack_weapon_yh803( entity weapon, WeaponPrimaryAttackParams attackParams ) +{ + var result = OnWeaponNpcPrimaryAttack_weapon_yh803( weapon, attackParams ) + if ( result == 0 ) + return 0 + WeaponFireCallbacks_OnWeaponFired( weapon, attackParams, result ) + return result +} +#endif +