26 if (player.(weaponentity) && player.(weaponentity).m_switchweapon != WEP_Null)
30 return held_weapons > 1;
47 bool is_from_contents = (deathtype == DEATH_SLIME.m_id || deathtype == DEATH_LAVA.m_id);
48 bool is_from_owner = (inflictor == projowner);
49 bool is_from_exception = (exception != -1);
59 if (is_from_exception)
66 if (is_from_exception)
68 else if (!is_from_contents)
73 if (is_from_exception)
75 else if (!(is_from_contents || is_from_owner))
80 if (is_from_exception)
96 this.
owner = attacker;
110 adaptor_think2use(
this);
123 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);
142 LOG_TRACE(
"Detected and prevented the sky-grapple bug.");
168 else if (this.
classname ==
"grapplinghook")
#define MUTATOR_CALLHOOK(id,...)
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
float trace_dphitcontents
const float SOLID_TRIGGER
float trace_dphitq3surfaceflags
float Q3SURFACEFLAG_NOIMPACT
void UpdateCSQCProjectile(entity e)
const int MOVETYPE_BOUNCEMISSILE
const int MOVETYPE_BOUNCE
#define REGISTRY_GET(id, i)
void RemoveHook(entity this)
float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception)
bool WarpZone_Projectile_Touch_ImpactFilter_Callback(entity this, entity toucher)
void W_PlayStrengthSound(entity player)
void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode)
void W_GiveWeapon(entity e, int wep)
bool SUB_NoImpactCheck(entity this, entity toucher)
void adaptor_think2use_hittype_splash(entity this)
bool W_DualWielding(entity player)
bool autocvar_g_projectiles_keep_owner
int autocvar_g_projectiles_damage
int autocvar_g_projectiles_interact
#define WepSet_FromWeapon(it)
const int MAX_WEAPONSLOTS
entity weaponentities[MAX_WEAPONSLOTS]