Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
hook.qc File Reference
Include dependency graph for hook.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

 classfield (Hook) .vector origin
void Draw_CylindricLine (vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float theAlpha, float drawflag, vector vieworg)
void Draw_GrapplingHook (entity this)
void Draw_GrapplingHook_trace_callback (vector start, vector hit, vector end)
 entityclass (Hook)
 NET_HANDLE (ENT_CLIENT_HOOK, bool bIsNew)
void Remove_GrapplingHook (entity this)
void W_Hook_Attack2 (Weapon thiswep, entity actor,.entity weaponentity)
void W_Hook_Damage (entity this, entity inflictor, entity attacker, float damage, int deathtype,.entity weaponentity, vector hitloc, vector force)
void W_Hook_Explode2 (entity this)
void W_Hook_Explode2_use (entity this, entity actor, entity trigger)
void W_Hook_ExplodeThink (entity this)
void W_Hook_Touch2 (entity this, entity toucher)

Variables

float autocvar_cl_grapplehook_alpha = 1
float Draw_GrapplingHook_trace_callback_a
vector Draw_GrapplingHook_trace_callback_rgb
float Draw_GrapplingHook_trace_callback_rnd
string Draw_GrapplingHook_trace_callback_tex

Function Documentation

◆ classfield()

classfield ( Hook )

References origin, and velocity.

◆ Draw_CylindricLine()

void Draw_CylindricLine ( vector from,
vector to,
float thickness,
string texture,
float aspect,
float shift,
vector rgb,
float theAlpha,
float drawflag,
vector vieworg )

Definition at line 11 of file draw.qh.

12 {
13 // I want to draw a quad...
14 // from and to are MIDPOINTS.
15
16 float len = vlen(to - from);
17 if (!len)
18 return;
19
20 float length_tex = aspect * len / thickness;
21 vector axis = (to - from) / len; // same as axis = normalize(to - from) but cheaper
22
23 // direction is perpendicular to the view normal, and perpendicular to the axis
24 vector thickdir = normalize(cross(axis, vieworg - from));
25
26 vector ofs = thickdir * (thickness / 2);
27
28 R_BeginPolygon(texture, drawflag, false);
29 R_PolygonVertex(from - ofs, '0 0 0' + shift * '1 0 0', rgb, theAlpha);
30 R_PolygonVertex(from + ofs, '0 1 0' + shift * '1 0 0', rgb, theAlpha);
31 R_PolygonVertex(to + ofs, '0 1 0' + (shift + length_tex) * '1 0 0', rgb, theAlpha);
32 R_PolygonVertex(to - ofs, '0 0 0' + (shift + length_tex) * '1 0 0', rgb, theAlpha);
33 R_EndPolygon();
34 }
float vlen(vector v)
vector normalize(vector v)
vector
Definition self.qh:92
#define cross(a, b)
Definition vector.qh:25

References cross, normalize(), vector, and vlen().

Referenced by bumble_raygun_draw(), Draw_ArcBeam_callback(), Draw_GrapplingHook_trace_callback(), and Porto_Draw().

◆ Draw_GrapplingHook()

void Draw_GrapplingHook ( entity this)

Definition at line 292 of file hook.qc.

293{
294 vector a, b;
295 string tex;
296 vector rgb;
297
298 if(this.teleport_time)
299 if(time > this.teleport_time)
300 {
301 sound (this, CH_SHOTS_SINGLE, SND_Null, VOL_BASE, ATTEN_NORM); // safeguard
302 this.teleport_time = 0;
303 }
304
306
307 int s = W_GunAlign(viewmodels[this.cnt], STAT(GUNALIGN)) - 1;
308 vector vs = hook_shotorigin[s];
309
310 if((this.owner.sv_entnum == player_localentnum - 1))
311 {
313 a = csqcplayer.origin + csqcplayer.view_ofs;
314 else
315 a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z;
316 b = this.origin;
317 }
318 else
319 {
320 a = this.velocity;
321 b = this.origin;
322 }
323
324 int t = entcs_GetTeamColor(this.owner.sv_entnum);
325
326 float intensity = autocvar_cl_grapplehook_alpha;
327 float offset = 0;
328 switch(t)
329 {
330 case NUM_TEAM_1: tex = "particles/hook_red"; rgb = '1 0.3 0.3'; break;
331 case NUM_TEAM_2: tex = "particles/hook_blue"; rgb = '0.3 0.3 1'; break;
332 case NUM_TEAM_3: tex = "particles/hook_yellow"; rgb = '1 1 0.3'; break;
333 case NUM_TEAM_4: tex = "particles/hook_pink"; rgb = '1 0.3 1'; break;
334 default: tex = "particles/hook_white"; rgb = entcs_GetColor(this.sv_entnum - 1); break;
335 }
336
337 MUTATOR_CALLHOOK(DrawGrapplingHook, this, tex, rgb, t);
338 tex = M_ARGV(1, string);
339 rgb = M_ARGV(2, vector);
340
347
349
350 if(vdist(trace_endpos - atrans, >, 0.5))
351 {
352 setorigin(this, trace_endpos); // hook endpoint!
353 this.angles = vectoangles(trace_endpos - atrans);
354 this.drawmask = MASK_NORMAL;
355 }
356 else
357 {
358 this.drawmask = 0;
359 }
360}
#define MUTATOR_CALLHOOK(id,...)
Definition base.qh:143
int W_GunAlign(entity this, int preferred_align)
entity csqcplayer
Definition cl_player.qh:26
float cnt
Definition powerups.qc:24
vector view_origin
Definition main.qh:109
entity owner
Definition main.qh:87
int sv_entnum
Definition main.qh:186
vector view_up
Definition main.qh:109
vector hook_shotorigin[4]
Definition main.qh:205
vector view_right
Definition main.qh:109
vector view_forward
Definition main.qh:109
#define M_ARGV(x, type)
Definition events.qh:17
float teleport_time
Definition player.qh:216
string Draw_GrapplingHook_trace_callback_tex
Definition hook.qc:277
float Draw_GrapplingHook_trace_callback_a
Definition hook.qc:280
void Draw_GrapplingHook_trace_callback(vector start, vector hit, vector end)
Definition hook.qc:281
vector Draw_GrapplingHook_trace_callback_rgb
Definition hook.qc:279
float autocvar_cl_grapplehook_alpha
Definition hook.qc:267
float Draw_GrapplingHook_trace_callback_rnd
Definition hook.qc:278
float drawmask
const float MASK_NORMAL
vector velocity
float time
vector trace_endpos
float player_localentnum
vector origin
ent angles
Definition ent_cs.qc:121
vector entcs_GetColor(int i)
Definition ent_cs.qh:176
int entcs_GetTeamColor(int i)
Definition ent_cs.qh:125
void InterpolateOrigin_Do(entity this)
set origin based on iorigin1 (old pos), iorigin2 (desired pos), and time
#define STAT(...)
Definition stats.qh:82
void WarpZone_TraceBox_ThroughZone(vector org, vector mi, vector ma, vector end, float nomonsters, entity forent, entity zone, WarpZone_trace_callback_t cb)
Definition common.qc:212
vector WarpZone_TransformOrigin(entity wz, vector v)
Definition common.qc:509
entity WarpZone_trace_transform
Definition common.qh:37
#define MOVE_NOTHING
Definition common.qh:33
vector vectoangles(vector v)
string string_null
Definition nil.qh:9
#define NULL
Definition post.qh:14
const float VOL_BASE
Definition sound.qh:36
const int CH_SHOTS_SINGLE
Definition sound.qh:15
const float ATTEN_NORM
Definition sound.qh:30
#define sound(e, c, s, v, a)
Definition sound.qh:52
const int NUM_TEAM_2
Definition teams.qh:14
const int NUM_TEAM_4
Definition teams.qh:16
const int NUM_TEAM_3
Definition teams.qh:15
const int NUM_TEAM_1
Definition teams.qh:13
#define vdist(v, cmp, f)
Vector distance comparison, avoids sqrt()
Definition vector.qh:8
int autocvar_chase_active
Definition view.qh:17
entity viewmodels[MAX_WEAPONSLOTS]
Definition view.qh:108

References angles, ATTEN_NORM, autocvar_chase_active, autocvar_cl_grapplehook_alpha, CH_SHOTS_SINGLE, cnt, csqcplayer, Draw_GrapplingHook_trace_callback(), Draw_GrapplingHook_trace_callback_a, Draw_GrapplingHook_trace_callback_rgb, Draw_GrapplingHook_trace_callback_rnd, Draw_GrapplingHook_trace_callback_tex, drawmask, entcs_GetColor(), entcs_GetTeamColor(), entity(), hook_shotorigin, InterpolateOrigin_Do(), M_ARGV, MASK_NORMAL, MOVE_NOTHING, MUTATOR_CALLHOOK, NULL, NUM_TEAM_1, NUM_TEAM_2, NUM_TEAM_3, NUM_TEAM_4, origin, owner, player_localentnum, sound, STAT, string_null, sv_entnum, teleport_time, time, trace_endpos, vdist, vectoangles(), vector, velocity, view_forward, view_origin, view_right, view_up, viewmodels, VOL_BASE, W_GunAlign(), WarpZone_trace_transform, WarpZone_TraceBox_ThroughZone(), and WarpZone_TransformOrigin().

Referenced by NET_HANDLE().

◆ Draw_GrapplingHook_trace_callback()

void Draw_GrapplingHook_trace_callback ( vector start,
vector hit,
vector end )

Definition at line 281 of file hook.qc.

282{
283 float i;
284 vector vorg;
286 for(i = 0; i < Draw_GrapplingHook_trace_callback_a; ++i)
288 Draw_GrapplingHook_trace_callback_rnd += 0.25 * vlen(hit - start) / 8;
289}
void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float theAlpha, float drawflag, vector vieworg)
Definition draw.qh:11
const float DRAWFLAG_NORMAL
float min(float f,...)

References Draw_CylindricLine(), Draw_GrapplingHook_trace_callback_a, Draw_GrapplingHook_trace_callback_rgb, Draw_GrapplingHook_trace_callback_rnd, Draw_GrapplingHook_trace_callback_tex, DRAWFLAG_NORMAL, min(), vector, view_origin, vlen(), WarpZone_trace_transform, and WarpZone_TransformOrigin().

Referenced by Draw_GrapplingHook().

◆ entityclass()

entityclass ( Hook )

◆ NET_HANDLE()

NET_HANDLE ( ENT_CLIENT_HOOK ,
bool bIsNew )

Definition at line 374 of file hook.qc.

375{
376 int sf = ReadByte();
377
378 this.HookSilent = (sf & 0x80);
380
382
383 if(sf & 1)
384 {
385 int myowner = ReadByte();
386 int slot = ReadByte();
387 this.owner = playerslots[myowner - 1];
388 this.sv_entnum = myowner;
389 if(myowner == player_localentnum)
390 viewmodels[slot].hook = this;
391 this.cnt = slot;
392 this.HookRange = 0;
393 }
394 if(sf & 2)
395 {
396 this.origin = ReadVector();
397 setorigin(this, this.origin);
398 }
399 if(sf & 4)
400 {
401 this.velocity = ReadVector();
402 }
403
405
406 if(bIsNew || !this.teleport_time)
407 {
408 this.draw = Draw_GrapplingHook;
409 IL_PUSH(g_drawables, this);
410 this.entremove = Remove_GrapplingHook;
411
412 setmodel(this, MDL_HOOK);
413 this.drawmask = MASK_NORMAL;
414 }
415
416 this.teleport_time = time + 10;
417 return true;
418}
entity playerslots[255]
Definition main.qh:84
IntrusiveList g_drawables
Definition main.qh:91
#define setmodel(this, m)
Definition model.qh:26
void Draw_GrapplingHook(entity this)
Definition hook.qc:292
void Remove_GrapplingHook(entity this)
Definition hook.qc:362
void InterpolateOrigin_Undo(entity this)
snap origin to iorigin2 (actual origin)
void InterpolateOrigin_Note(entity this)
const int IFLAG_VELOCITY
const int IFLAG_ORIGIN
int iflags
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
#define ReadVector()
Definition net.qh:367
int ReadByte()

References cnt, Draw_GrapplingHook(), drawmask, g_drawables, IFLAG_ORIGIN, IFLAG_VELOCITY, iflags, IL_PUSH(), InterpolateOrigin_Note(), InterpolateOrigin_Undo(), MASK_NORMAL, origin, owner, player_localentnum, playerslots, ReadByte(), ReadVector, Remove_GrapplingHook(), setmodel, sv_entnum, teleport_time, time, velocity, and viewmodels.

◆ Remove_GrapplingHook()

void Remove_GrapplingHook ( entity this)

Definition at line 362 of file hook.qc.

363{
364 sound (this, CH_SHOTS_SINGLE, SND_Null, VOL_BASE, ATTEN_NORM);
365
366 for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
367 {
368 entity wep = viewmodels[slot];
369 if(wep.hook == this)
370 wep.hook = NULL;
371 }
372}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
const int MAX_WEAPONSLOTS
Definition weapon.qh:16

References ATTEN_NORM, CH_SHOTS_SINGLE, entity(), MAX_WEAPONSLOTS, NULL, sound, viewmodels, and VOL_BASE.

Referenced by NET_HANDLE().

◆ W_Hook_Attack2()

void W_Hook_Attack2 ( Weapon thiswep,
entity actor,
.entity weaponentity )

Definition at line 69 of file hook.qc.

70{
71 //W_DecreaseAmmo(thiswep, actor, WEP_CVAR_SEC(WEP_HOOK, ammo)); // WEAPONTODO: Figure out how to handle ammo with hook secondary (gravitybomb)
72 W_SetupShot(actor, weaponentity, false, 4, SND_HOOKBOMB_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_HOOK, damage), WEP_HOOK.m_id | HITTYPE_SECONDARY);
73
74 entity gren = new(hookbomb);
75 gren.owner = gren.realowner = actor;
76 gren.bot_dodge = true;
77 gren.bot_dodgerating = WEP_CVAR_SEC(WEP_HOOK, damage);
80 gren.projectiledeathtype = WEP_HOOK.m_id | HITTYPE_SECONDARY;
81 gren.weaponentity_fld = weaponentity;
82 setorigin(gren, w_shotorg);
83 setsize(gren, '0 0 0', '0 0 0');
84
85 gren.nextthink = time + WEP_CVAR_SEC(WEP_HOOK, lifetime);
87 gren.use = W_Hook_Explode2_use;
89
90 gren.takedamage = DAMAGE_YES;
91 SetResourceExplicit(gren, RES_HEALTH, WEP_CVAR_SEC(WEP_HOOK, health));
92 gren.damageforcescale = WEP_CVAR_SEC(WEP_HOOK, damageforcescale);
93 gren.event_damage = W_Hook_Damage;
94 gren.damagedbycontents = true;
96 gren.missile_flags = MIF_SPLASH | MIF_ARC;
97
98 gren.velocity = '0 0 1' * WEP_CVAR_SEC(WEP_HOOK, speed);
100 gren.velocity = gren.velocity + actor.velocity;
101
102 gren.gravity = WEP_CVAR_SEC(WEP_HOOK, gravity);
103 //W_SetupProjVelocity_Basic(gren); // just falling down!
104
105 gren.angles = '0 0 0';
106 gren.flags = FL_PROJECTILE;
107 IL_PUSH(g_projectiles, gren);
108 IL_PUSH(g_bot_dodge, gren);
109
110 CSQCProjectile(gren, true, PROJECTILE_HOOKBOMB, true);
111
112 MUTATOR_CALLHOOK(EditProjectile, actor, gren);
113}
IntrusiveList g_bot_dodge
Definition api.qh:150
bool SetResourceExplicit(entity e, Resource res_type, float amount)
Sets the resource amount of an entity without calling any hooks.
float lifetime
Definition powerups.qc:23
float gravity
Definition items.qh:17
void W_Hook_Damage(entity this, entity inflictor, entity attacker, float damage, int deathtype,.entity weaponentity, vector hitloc, vector force)
Definition hook.qc:49
void W_Hook_Explode2_use(entity this, entity actor, entity trigger)
Definition hook.qc:44
void W_Hook_Touch2(entity this, entity toucher)
Definition hook.qc:63
const int FL_PROJECTILE
Definition constants.qh:85
void CSQCProjectile(entity e, float clientanimate, int type, float docull)
IntrusiveList g_damagedbycontents
Definition damage.qh:135
float damageforcescale
const int HITTYPE_SECONDARY
Definition all.qh:29
float speed
Definition dynlight.qc:9
void set_movetype(entity this, int mt)
Definition movetypes.qc:4
const int MOVETYPE_TOSS
Definition movetypes.qh:135
const int PROJECTILE_HOOKBOMB
float health
Legacy fields for the resources. To be removed.
Definition resources.qh:9
#define setthink(e, f)
#define settouch(e, f)
Definition self.qh:73
void adaptor_think2use_hittype_splash(entity this)
Definition common.qc:106
const int MIF_SPLASH
Definition common.qh:46
IntrusiveList g_projectiles
Definition common.qh:58
const int MIF_ARC
Definition common.qh:47
#define PROJECTILE_MAKETRIGGER(e)
Definition common.qh:34
const int CH_WEAPON_A
Definition sound.qh:7
const int DAMAGE_YES
Definition subs.qh:80
int autocvar_g_projectiles_newton_style
Definition tracing.qh:11
vector w_shotorg
Definition tracing.qh:19
#define W_SetupShot(ent, wepent, antilag, recoil, snd, chan, maxdamage, deathtype)
Definition tracing.qh:34
#define WEP_CVAR_SEC(wep, name)
Definition all.qh:323

References adaptor_think2use_hittype_splash(), autocvar_g_projectiles_newton_style, CH_WEAPON_A, CSQCProjectile(), DAMAGE_YES, damageforcescale, entity(), FL_PROJECTILE, g_bot_dodge, g_damagedbycontents, g_projectiles, gravity, health, HITTYPE_SECONDARY, IL_PUSH(), lifetime, MIF_ARC, MIF_SPLASH, MOVETYPE_TOSS, MUTATOR_CALLHOOK, PROJECTILE_HOOKBOMB, PROJECTILE_MAKETRIGGER, set_movetype(), SetResourceExplicit(), setthink, settouch, speed, time, W_Hook_Damage(), W_Hook_Explode2_use(), W_Hook_Touch2(), W_SetupShot, w_shotorg, and WEP_CVAR_SEC.

◆ W_Hook_Damage()

void W_Hook_Damage ( entity this,
entity inflictor,
entity attacker,
float damage,
int deathtype,
.entity weaponentity,
vector hitloc,
vector force )

Definition at line 49 of file hook.qc.

50{
51 if(GetResource(this, RES_HEALTH) <= 0)
52 return;
53
54 if(!W_CheckProjectileDamage(inflictor.realowner, this.realowner, deathtype, -1)) // no exceptions
55 return; // g_projectiles_damage says to halt
56
57 SetResourceExplicit(this, RES_HEALTH, GetResource(this, RES_HEALTH));
58
59 if(GetResource(this, RES_HEALTH) <= 0)
61}
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
void W_Hook_Explode2(entity this)
Definition hook.qc:25
float W_CheckProjectileDamage(entity inflictor, entity projowner, int deathtype, float exception)
Definition common.qc:45
void W_PrepareExplosionByDamage(entity this, entity attacker, void(entity this) explode)
Definition common.qc:87
entity realowner

References entity(), GetResource(), realowner, SetResourceExplicit(), vector, W_CheckProjectileDamage(), W_Hook_Explode2(), and W_PrepareExplosionByDamage().

Referenced by W_Hook_Attack2().

◆ W_Hook_Explode2()

void W_Hook_Explode2 ( entity this)

Definition at line 25 of file hook.qc.

26{
27 this.event_damage = func_null;
28 settouch(this, func_null);
29 this.effects |= EF_NODRAW;
30
32 this.nextthink = time;
33 this.dmg = WEP_CVAR_SEC(WEP_HOOK, damage);
34 this.dmg_edge = WEP_CVAR_SEC(WEP_HOOK, edgedamage);
35 this.dmg_radius = WEP_CVAR_SEC(WEP_HOOK, radius);
36 this.dmg_force = WEP_CVAR_SEC(WEP_HOOK, force);
37 this.dmg_power = WEP_CVAR_SEC(WEP_HOOK, power);
38 this.dmg_duration = WEP_CVAR_SEC(WEP_HOOK, duration);
39 this.teleport_time = time;
40 this.dmg_last = 1;
42}
float dmg_force
Definition breakable.qc:15
float dmg
Definition breakable.qc:12
float dmg_edge
Definition breakable.qc:13
float dmg_radius
Definition breakable.qc:14
float radius
Definition impulse.qh:11
void W_Hook_ExplodeThink(entity this)
Definition hook.qc:5
float dmg_power
Definition hook.qh:89
float dmg_last
Definition hook.qh:91
float dmg_duration
Definition hook.qh:90
float effects
float nextthink
const float EF_NODRAW
const int MOVETYPE_NONE
Definition movetypes.qh:129
var void func_null()

References dmg, dmg_duration, dmg_edge, dmg_force, dmg_last, dmg_power, dmg_radius, EF_NODRAW, effects, entity(), func_null(), MOVETYPE_NONE, nextthink, radius, set_movetype(), setthink, settouch, teleport_time, time, W_Hook_ExplodeThink(), and WEP_CVAR_SEC.

Referenced by W_Hook_Damage(), and W_Hook_Explode2_use().

◆ W_Hook_Explode2_use()

void W_Hook_Explode2_use ( entity this,
entity actor,
entity trigger )

Definition at line 44 of file hook.qc.

45{
46 W_Hook_Explode2(this);
47}

References entity(), and W_Hook_Explode2().

Referenced by W_Hook_Attack2().

◆ W_Hook_ExplodeThink()

void W_Hook_ExplodeThink ( entity this)

Definition at line 5 of file hook.qc.

6{
7 float dt, dmg_remaining_next, f;
8
9 dt = time - this.teleport_time;
10 dmg_remaining_next = (bound(0, 1 - dt / this.dmg_duration, 1) ** this.dmg_power);
11
12 f = this.dmg_last - dmg_remaining_next;
13 this.dmg_last = dmg_remaining_next;
14
15 RadiusDamage(this, this.realowner, this.dmg * f, this.dmg_edge * f, this.dmg_radius, this.realowner, NULL, this.dmg_force * f, this.projectiledeathtype, this.weaponentity_fld, NULL);
17 //RadiusDamage(this, NULL, this.dmg * f, this.dmg_edge * f, this.dmg_radius, NULL, NULL, this.dmg_force * f, this.projectiledeathtype, NULL);
18
19 if(dt < this.dmg_duration)
20 this.nextthink = time + 0.05; // soon
21 else
22 delete(this);
23}
float RadiusDamage(entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity cantbe, entity mustbe, float forceintensity, int deathtype,.entity weaponentity, entity directhitentity)
Definition damage.qc:981
const int HITTYPE_SPAM
Definition all.qh:34
float bound(float min, float value, float max)
int projectiledeathtype
Definition common.qh:21
entity weaponentity_fld

References bound(), dmg, dmg_duration, dmg_edge, dmg_force, dmg_last, dmg_power, dmg_radius, entity(), HITTYPE_SPAM, nextthink, NULL, projectiledeathtype, RadiusDamage(), realowner, teleport_time, time, and weaponentity_fld.

Referenced by W_Hook_Explode2().

◆ W_Hook_Touch2()

void W_Hook_Touch2 ( entity this,
entity toucher )

Definition at line 63 of file hook.qc.

64{
66 this.use(this, NULL, NULL);
67}
#define use
entity entity toucher
Definition self.qh:72
#define PROJECTILE_TOUCH(e, t)
Definition common.qh:28

References entity(), NULL, PROJECTILE_TOUCH, toucher, and use.

Referenced by W_Hook_Attack2().

Variable Documentation

◆ autocvar_cl_grapplehook_alpha

float autocvar_cl_grapplehook_alpha = 1

Definition at line 267 of file hook.qc.

Referenced by Draw_GrapplingHook().

◆ Draw_GrapplingHook_trace_callback_a

float Draw_GrapplingHook_trace_callback_a

Definition at line 280 of file hook.qc.

Referenced by Draw_GrapplingHook(), and Draw_GrapplingHook_trace_callback().

◆ Draw_GrapplingHook_trace_callback_rgb

vector Draw_GrapplingHook_trace_callback_rgb

Definition at line 279 of file hook.qc.

Referenced by Draw_GrapplingHook(), and Draw_GrapplingHook_trace_callback().

◆ Draw_GrapplingHook_trace_callback_rnd

float Draw_GrapplingHook_trace_callback_rnd

Definition at line 278 of file hook.qc.

Referenced by Draw_GrapplingHook(), and Draw_GrapplingHook_trace_callback().

◆ Draw_GrapplingHook_trace_callback_tex

string Draw_GrapplingHook_trace_callback_tex

Definition at line 277 of file hook.qc.

Referenced by Draw_GrapplingHook(), and Draw_GrapplingHook_trace_callback().