26 if(player.(weaponentity) && player.(weaponentity).m_switchweapon != WEP_Null)
30 return held_weapons > 1;
47 float is_from_contents = (deathtype == DEATH_SLIME.m_id || deathtype == DEATH_LAVA.m_id);
48 float is_from_owner = (inflictor == projowner);
49 float is_from_exception = (exception != -1);
68 else if(!is_from_contents)
75 else if(!(is_from_contents || is_from_owner))
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);
143 LOG_TRACE(
"Detected and prevented the sky-grapple bug.");
169 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]