1 #using scripts\codescripts\struct;
3 #using scripts\shared\gameobjects_shared;
4 #using scripts\shared\util_shared;
5 #using scripts\shared\weapons\_weapons;
7 #insert scripts\shared\shared.gsh;
8 #insert scripts\shared\abilities\_ability_util.gsh;
17 root_weapon = weapon.rootWeapon;
18 return root_weapon != level.weaponNone && isdefined( level.primary_weapon_array[root_weapon] );
22 root_weapon = weapon.rootWeapon;
23 return root_weapon != level.weaponNone && isdefined( level.side_arm_array[root_weapon] );
27 root_weapon = weapon.rootWeapon;
28 return root_weapon != level.weaponNone && isdefined( level.inventory_array[root_weapon] );
32 root_weapon = weapon.rootWeapon;
33 return root_weapon != level.weaponNone && isdefined( level.grenade_array[root_weapon] );
47 if( isdefined(
self.tag_stowed_back ) )
49 self detach(
self.tag_stowed_back,
"tag_stowed_back" );
50 self.tag_stowed_back = undefined;
57 if( isdefined(
self.tag_stowed_back ) )
61 if ( isdefined(
self.carryObject ))
65 if ( isdefined( carrierModel ) && carrierModel ==
self.tag_stowed_back )
67 self detach(
self.tag_stowed_back,
"tag_stowed_back" );
74 self ClearStowedWeapon();
77 self.tag_stowed_back = undefined;
81 self ClearStowedWeapon();
84 if( isdefined(
self.tag_stowed_hip ) )
86 detach_model =
self.tag_stowed_hip.worldModel;
87 self detach( detach_model,
"tag_stowed_hip_rear" );
88 self.tag_stowed_hip = undefined;
94 currentWeapon =
self getCurrentWeapon();
95 currentAltWeapon = currentWeapon.altWeapon;
97 self.tag_stowed_back = undefined;
99 index_weapon = level.weaponNone;
105 self attach(
self.tag_stowed_back,
"tag_stowed_back",
true );
108 else if ( currentWeapon != level.weaponNone )
110 for ( idx = 0; idx <
self.weapon_array_primary.size; idx++ )
113 temp_index_weapon =
self.weapon_array_primary[idx];
114 assert( isdefined( temp_index_weapon ),
"Primary weapon list corrupted." );
116 if ( temp_index_weapon == currentWeapon )
119 if ( temp_index_weapon == currentAltWeapon )
122 if ( temp_index_weapon.nonStowedWeapon )
125 index_weapon = temp_index_weapon;
129 self SetStowedWeapon( index_weapon );
134 currentWeapon =
self getCurrentWeapon();
136 self.tag_stowed_hip = undefined;
138 for ( idx = 0; idx <
self.weapon_array_inventory.size; idx++ )
140 if (
self.weapon_array_inventory[idx] == currentWeapon )
143 if ( !
self GetWeaponAmmoStock(
self.weapon_array_inventory[idx] ) )
146 self.tag_stowed_hip =
self.weapon_array_inventory[idx];
149 if ( !isdefined(
self.tag_stowed_hip ) )
152 self attach(
self.tag_stowed_hip.worldmodel,
"tag_stowed_hip_rear",
true );
158 return (
trace[
"fraction"] == 1);
166 if ( lengthsquared( diff ) < startRadius*startRadius )
168 dir = vectornormalize( diff );
169 midpos = from + (dir[0]*startRadius, dir[1]*startRadius, dir[2]*startRadius);
173 if ( GetDvarint(
"scr_damage_debug") != 0 )
175 if (
trace[
"fraction"] == 1)
191 weapon =
self GetCurrentWeapon();
192 return ( weapon.weapClass ==
"mg" );
197 weapon =
self GetCurrentWeapon();
198 return weapon.isRocketLauncher;
203 weapon =
self GetCurrentWeapon();
210 clientNum = player getEntityNumber();
211 return isdefined( target.locked_on ) && ( target.locked_on & ( 1 << clientNum ) );