26 if(player.(weaponentity) && player.(weaponentity).m_switchweapon != WEP_Null)
30 return held_weapons > 1;
40 Send_Notification(NOTIF_ONE, e, MSG_MULTI, ITEM_WEAPON_GOT, wep);
51 float is_from_contents = (deathtype == DEATH_SLIME.m_id || deathtype == DEATH_LAVA.m_id);
52 float is_from_owner = (inflictor == projowner);
53 float is_from_exception = (exception != -1);
72 else if(!is_from_contents)
79 else if(!(is_from_contents || is_from_owner))
100 this.
owner = attacker;
114 adaptor_think2use(
this);
125 LOG_TRACEF(
"A hit from a projectile happened with no hit contents! DEBUG THIS, this should never happen for projectiles! Projectile will self-destruct. (edict: %i, classname: %s, origin: %v)",
this, this.
classname, this.
origin);
130 if (toucher ==
NULL && this.
size !=
'0 0 0')
142 LOG_TRACE(
"Detected and prevented the sky-grapple bug.");
153 if(toucher && toucher == this.
owner)
159 else if(this.
classname ==
"grapplinghook")
const int HITTYPE_SPLASH
automatically set by RadiusDamage
bool SUB_NoImpactCheck(entity this, entity toucher)
float trace_dphitq3surfaceflags
float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception)
float trace_dphitcontents
#define REGISTRY_GET(id, i)
bool WarpZone_Projectile_Touch_ImpactFilter_Callback(entity this, entity toucher)
bool autocvar_g_projectiles_keep_owner
void W_PlayStrengthSound(entity player)
void UpdateCSQCProjectile(entity e)
bool W_DualWielding(entity player)
void W_GiveWeapon(entity e, int wep)
const int MAX_WEAPONSLOTS
void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode)
int autocvar_g_projectiles_damage
float Q3SURFACEFLAG_NOIMPACT
vector(float skel, float bonenum) _skel_get_boneabs_hidden
const float SOLID_TRIGGER
#define MUTATOR_CALLHOOK(id,...)
entity weaponentities[MAX_WEAPONSLOTS]
void adaptor_think2use_hittype_splash(entity this)
#define WepSet_FromWeapon(it)
void RemoveHook(entity this)