18#define REGISTER_DEATHTYPE(id, msg_death, msg_death_by, msg_death_ent, msg_death_ent_by, extra) \
19 REGISTER(Deathtypes, DEATH, id, m_id, new_pure(deathtype)) \
21 this.m_id += DT_FIRST; \
23 this.message = extra; \
24 this.death_msgself = msg_death; \
25 this.death_msgmurder = msg_death_by; \
26 this.death_msg_ent_self = msg_death_ent; \
27 this.death_msg_ent_murder = msg_death_ent_by; \
41#define DEATH_ISSPECIAL(t) (t >= DT_FIRST)
42#define DEATH_IS(t, dt) (DEATH_ISSPECIAL(t) && (REGISTRY_GET(Deathtypes, t - DT_FIRST)) == dt)
43#define DEATH_ENT(t) (DEATH_ISSPECIAL(t) ? (REGISTRY_GET(Deathtypes, t - DT_FIRST)) : NULL)
44#define DEATH_ISVEHICLE(t) (DEATH_ISSPECIAL(t) && (REGISTRY_GET(Deathtypes, t - DT_FIRST)).message == "vehicle")
45#define DEATH_ISTURRET(t) (DEATH_ISSPECIAL(t) && (REGISTRY_GET(Deathtypes, t - DT_FIRST)).message == "turret")
46#define DEATH_ISMONSTER(t) (DEATH_ISSPECIAL(t) && (REGISTRY_GET(Deathtypes, t - DT_FIRST)).message == "monster")
47#define DEATH_WEAPONOF(t) (DEATH_ISSPECIAL(t) ? WEP_Null : REGISTRY_GET(Weapons, (t) & DEATH_WEAPONMASK))
48#define DEATH_ISWEAPON(t, w) (DEATH_WEAPONOF(t) == (w))
#define BIT(n)
Only ever assign into the first 24 bits in QC (so max is BIT(23)).
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
const int HITTYPE_ARMORPIERCE
ignore armor calculations
const int DEATH_WEAPONMASK
const int HITTYPE_BOUNCE
set manually after projectile has bounced
entity death_msg_ent_self
const int DEATH_HITTYPEMASK
const int HITTYPE_SPAM
set manually after first RadiusDamage, stops effect spam
string Deathtype_Name(int deathtype)
const int HITTYPE_SPLASH
automatically set by RadiusDamage
entity death_msg_ent_murder
const int HITTYPE_SECONDARY
const int HITTYPE_SOUND
cause bleeding from ears
#define REGISTER_REGISTRY(id)
#define REGISTRY(id, max)
Declares a new registry.
#define REGISTRY_CHECK(id)
#define REGISTRY_DEFINE_GET(id, null)