Go to the documentation of this file.
78 if (aim[1] > self->mins[0] && aim[1] < self->maxs[0])
81 range -=
self->enemy->maxs[0];
87 aim[1] =
self->enemy->mins[0];
89 aim[1] =
self->enemy->maxs[0];
117 VectorMA (self->enemy->absmin, 0.5, self->enemy->size,
v);
120 VectorMA (self->enemy->velocity, kick,
v, self->enemy->velocity);
121 if (self->enemy->velocity[2] > 0)
122 self->enemy->groundentity =
NULL;
310 if (other == self->
owner)
319 if (self->owner->client)
324 if (self->spawnflags & 1)
457 if (other == ent->
owner)
508 grenade->
owner =
self;
512 grenade->
dmg = damage;
541 grenade->
owner =
self;
545 grenade->
dmg = damage;
574 if (other == ent->
owner)
636 rocket->
owner =
self;
640 rocket->
dmg = damage;
667 VectorMA (start, 8192, aimdir, end);
730 if (self->s.frame == 0)
738 if (ent == self->
owner)
749 points =
self->radius_dmg * (1.0 -
sqrt(dist/self->dmg_radius));
750 if (ent == self->
owner)
763 if (self->s.frame == 5)
769 if (other == self->
owner)
778 if (self->owner->client)
791 self->s.modelindex =
gi.
modelindex (
"sprites/s_bfg3.sp2");
828 if (ent == self->
owner)
void fire_bfg(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, float damage_radius)
trace_t(* trace)(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, edict_t *passent, int contentmask)
@ TE_GRENADE_EXPLOSION_WATER
void fire_shotgun(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick, int hspread, int vspread, int count, int mod)
#define VectorSubtract(a, b, c)
void(* WritePosition)(vec3_t pos)
void(* multicast)(vec3_t origin, multicast_t to)
void fire_grenade2(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held)
@ TE_ROCKET_EXPLOSION_WATER
qboolean fire_hit(edict_t *self, vec3_t aim, int damage, int kick)
void fire_rail(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick)
#define CONTENTS_DEADMONSTER
void VectorScale(vec3_t in, vec_t scale, vec3_t out)
static void check_dodge(edict_t *self, vec3_t start, vec3_t dir, int speed)
struct gclient_s * client
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
void bfg_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void rocket_touch(edict_t *ent, edict_t *other, cplane_t *plane, csurface_t *surf)
void ThrowDebris(edict_t *self, char *modelname, float speed, vec3_t origin)
void T_Damage(edict_t *targ, edict_t *inflictor, edict_t *attacker, vec3_t dir, vec3_t point, vec3_t normal, int damage, int knockback, int dflags, int mod)
void(* dodge)(edict_t *self, edict_t *other, float eta)
void fire_rocket(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, float damage_radius, int radius_damage)
qboolean infront(edict_t *self, edict_t *other)
void fire_blaster(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, int effect, qboolean hyper)
#define DAMAGE_NO_KNOCKBACK
void bfg_explode(edict_t *self)
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
static void Grenade_Touch(edict_t *ent, edict_t *other, cplane_t *plane, csurface_t *surf)
void vectoangles(vec3_t vec, vec3_t angles)
edict_t * findradius(edict_t *from, vec3_t org, float rad)
void G_FreeEdict(edict_t *e)
int(* soundindex)(char *name)
vec_t VectorLength(vec3_t v)
int(* pointcontents)(vec3_t point)
int(* modelindex)(char *name)
void(* think)(edict_t *self)
vec_t VectorNormalize(vec3_t v)
qboolean CanDamage(edict_t *targ, edict_t *inflictor)
#define SPLASH_BROWN_WATER
#define VectorAdd(a, b, c)
monsterinfo_t monsterinfo
void(* WriteDir)(vec3_t pos)
void fire_grenade(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius)
void VectorMA(vec3_t veca, float scale, vec3_t vecb, vec3_t vecc)
void fire_bullet(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick, int hspread, int vspread, int mod)
#define SPLASH_BLUE_WATER
static void fire_lead(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick, int te_impact, int hspread, int vspread, int mod)
void PlayerNoise(edict_t *who, vec3_t where, int type)
void(* touch)(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
#define VectorSet(v, x, y, z)
static void Grenade_Explode(edict_t *ent)
int VectorCompare(vec3_t v1, vec3_t v2)
void bfg_think(edict_t *self)
GLdouble GLdouble GLint GLint const GLdouble * points
void(* linkentity)(edict_t *ent)
void blaster_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void T_RadiusDamage(edict_t *inflictor, edict_t *attacker, float damage, edict_t *ignore, float radius, int mod)