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 isNew)
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(), Draw_VaporizerBeam_trace_callback(), and Porto_Draw().

◆ Draw_GrapplingHook()

void Draw_GrapplingHook ( entity this)

Definition at line 294 of file hook.qc.

295{
296 vector a, b;
297 string tex;
298 vector rgb;
299
300 if (this.teleport_time && time > this.teleport_time)
301 {
302 sound(this, CH_SHOTS_SINGLE, SND_Null, VOL_BASE, ATTEN_NORM); // safeguard
303 this.teleport_time = 0;
304 }
305
307
308 int s = W_GunAlign(viewmodels[this.cnt], STAT(GUNALIGN)) - 1;
309 vector vs = hook_shotorigin[s];
310
311 if (this.owner.sv_entnum == player_localentnum - 1)
312 {
314 a = csqcplayer.origin + csqcplayer.view_ofs;
315 else
316 a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z;
317 b = this.origin;
318 }
319 else
320 {
321 a = this.velocity;
322 b = this.origin;
323 }
324
325 int t = entcs_GetTeamColor(this.owner.sv_entnum);
326
327 float intensity = autocvar_cl_grapplehook_alpha;
328 float offset = 0;
329 switch (t)
330 {
331 case NUM_TEAM_1: tex = "particles/hook_red"; rgb = '1 0.3 0.3'; break;
332 case NUM_TEAM_2: tex = "particles/hook_blue"; rgb = '0.3 0.3 1'; break;
333 case NUM_TEAM_3: tex = "particles/hook_yellow"; rgb = '1 1 0.3'; break;
334 case NUM_TEAM_4: tex = "particles/hook_pink"; rgb = '1 0.3 1'; break;
335 default:
336 tex = "particles/hook_white";
337 rgb = entcs_GetColor(this.sv_entnum - 1);
338 break;
339 }
340
341 MUTATOR_CALLHOOK(DrawGrapplingHook, this, tex, rgb, t);
342 tex = M_ARGV(1, string);
343 rgb = M_ARGV(2, vector);
344
351
353
354 if (vdist(trace_endpos - atrans, >, 0.5))
355 {
356 setorigin(this, trace_endpos); // hook endpoint!
357 this.angles = vectoangles(trace_endpos - atrans);
358 this.drawmask = MASK_NORMAL;
359 }
360 else
361 this.drawmask = 0;
362}
#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:218
string Draw_GrapplingHook_trace_callback_tex
Definition hook.qc:281
float Draw_GrapplingHook_trace_callback_a
Definition hook.qc:284
void Draw_GrapplingHook_trace_callback(vector start, vector hit, vector end)
Definition hook.qc:285
vector Draw_GrapplingHook_trace_callback_rgb
Definition hook.qc:283
float autocvar_cl_grapplehook_alpha
Definition hook.qc:271
float Draw_GrapplingHook_trace_callback_rnd
Definition hook.qc:282
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 285 of file hook.qc.

286{
288 for (int i = 0; i < Draw_GrapplingHook_trace_callback_a; ++i)
290 Draw_GrapplingHook_trace_callback_rnd += (0.25 / 8) * vlen(hit - start);
291}
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 isNew )

Definition at line 376 of file hook.qc.

377{
378 int sf = ReadByte();
379
380 this.HookSilent = sf & 0x80;
382
384
385 if (sf & 1)
386 {
387 this.sv_entnum = ReadByte();
388 int slot = ReadByte();
389 this.owner = playerslots[this.sv_entnum - 1];
390 if (this.sv_entnum == player_localentnum)
391 viewmodels[slot].hook = this;
392 this.cnt = slot;
393 this.HookRange = 0;
394 }
395 if (sf & 2)
396 {
397 this.origin = ReadVector();
398 setorigin(this, this.origin);
399 }
400 if (sf & 4)
401 this.velocity = ReadVector();
402
404
405 if (isNew || !this.teleport_time)
406 {
407 this.draw = Draw_GrapplingHook;
408 IL_PUSH(g_drawables, this);
409 this.entremove = Remove_GrapplingHook;
410
411 setmodel(this, MDL_HOOK);
412 this.drawmask = MASK_NORMAL;
413 }
414
415 this.teleport_time = time + 10;
416 return true;
417}
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:294
void Remove_GrapplingHook(entity this)
Definition hook.qc:364
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:350
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 364 of file hook.qc.

365{
366 sound(this, CH_SHOTS_SINGLE, SND_Null, VOL_BASE, ATTEN_NORM);
367
368 for (int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
369 {
370 entity wep = viewmodels[slot];
371 if (wep.hook == this)
372 wep.hook = NULL;
373 }
374}
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 85 of file hook.qc.

86{
87 //W_DecreaseAmmo(thiswep, actor, WEP_CVAR_SEC(WEP_HOOK, ammo)); // WEAPONTODO: Figure out how to handle ammo with hook secondary (gravitybomb)
88 W_SetupShot(actor, weaponentity, false, 4, SND_HOOKBOMB_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_HOOK, damage), WEP_HOOK.m_id | HITTYPE_SECONDARY);
89
90 entity gren = new(hookbomb);
91 gren.owner = gren.realowner = actor;
92 gren.bot_dodge = true;
93 gren.bot_dodgerating = WEP_CVAR_SEC(WEP_HOOK, damage);
96 gren.projectiledeathtype = WEP_HOOK.m_id | HITTYPE_SECONDARY;
97 gren.weaponentity_fld = weaponentity;
98 setorigin(gren, w_shotorg);
99 setsize(gren, '0 0 0', '0 0 0');
100
101 gren.nextthink = time + WEP_CVAR_SEC(WEP_HOOK, lifetime);
103 gren.use = W_Hook_Explode2_use;
104 settouch(gren, W_Hook_Touch2);
105
106 gren.takedamage = DAMAGE_YES;
107 SetResourceExplicit(gren, RES_HEALTH, WEP_CVAR_SEC(WEP_HOOK, health));
108 gren.damageforcescale = WEP_CVAR_SEC(WEP_HOOK, damageforcescale);
109 gren.event_damage = W_Hook_Damage;
110 gren.damagedbycontents = true;
112 gren.missile_flags = MIF_SPLASH | MIF_ARC;
113
114 gren.velocity = '0 0 1' * WEP_CVAR_SEC(WEP_HOOK, speed);
116 gren.velocity += actor.velocity;
117
118 gren.gravity = WEP_CVAR_SEC(WEP_HOOK, gravity);
119 //W_SetupProjVelocity_Basic(gren); // just falling down!
120
121 gren.angles = '0 0 0';
122 gren.flags = FL_PROJECTILE;
123 IL_PUSH(g_projectiles, gren);
124 IL_PUSH(g_bot_dodge, gren);
125
126 CSQCProjectile(gren, true, PROJECTILE_HOOKBOMB, true);
127
128 MUTATOR_CALLHOOK(EditProjectile, actor, gren);
129}
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:66
void W_Hook_Explode2_use(entity this, entity actor, entity trigger)
Definition hook.qc:61
void W_Hook_Touch2(entity this, entity toucher)
Definition hook.qc:79
const int FL_PROJECTILE
Definition constants.qh:85
void CSQCProjectile(entity e, float clientanimate, int type, float docull)
IntrusiveList g_damagedbycontents
Definition damage.qh:143
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:339

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 66 of file hook.qc.

67{
68 if (GetResource(this, RES_HEALTH) <= 0)
69 return;
70 if (!W_CheckProjectileDamage(inflictor.realowner, this.realowner, deathtype, -1)) // no exceptions
71 return; // g_projectiles_damage says to halt
72
73 SetResourceExplicit(this, RES_HEALTH, GetResource(this, RES_HEALTH));
74
75 if (GetResource(this, RES_HEALTH) <= 0)
77}
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:44
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 44 of file hook.qc.

45{
46 this.event_damage = func_null;
47 settouch(this, func_null);
48 this.effects |= EF_NODRAW;
49
51 this.nextthink = time;
52 this.dmg = WEP_CVAR_SEC(WEP_HOOK, damage);
53 this.dmg_edge = WEP_CVAR_SEC(WEP_HOOK, edgedamage);
54 this.dmg_radius = WEP_CVAR_SEC(WEP_HOOK, radius);
55 this.dmg_force = WEP_CVAR_SEC(WEP_HOOK, force);
56 this.teleport_time = time;
57 this.dmg_last = 1;
59}
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_last
Definition hook.qh:93
float effects
float nextthink
const float EF_NODRAW
const int MOVETYPE_NONE
Definition movetypes.qh:129
var void func_null()

References dmg, dmg_edge, dmg_force, dmg_last, 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 61 of file hook.qc.

62{
63 W_Hook_Explode2(this);
64}

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 = time - this.teleport_time;
8 float dmg_remaining_next = bound(0, 1 - dt / WEP_CVAR_SEC(WEP_HOOK, duration), 1) ** WEP_CVAR_SEC(WEP_HOOK, power);
9
10 float f = this.dmg_last - dmg_remaining_next;
11 this.dmg_last = dmg_remaining_next;
12
13 RadiusDamage(this, this.realowner,
14 f * this.dmg,
15 f * this.dmg_edge,
16 this.dmg_radius,
17 this.realowner,
18 NULL,
19 f * this.dmg_force,
22 NULL
23 );
25 #if 0
26 RadiusDamage(this, NULL,
27 f * this.dmg,
28 f * this.dmg_edge,
29 this.dmg_radius,
30 NULL,
31 NULL,
32 f * this.dmg_force,
34 NULL
35 );
36 #endif
37
38 if (dt < WEP_CVAR_SEC(WEP_HOOK, duration))
39 this.nextthink = time + 0.05; // soon
40 else
41 delete(this);
42}
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:943
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_edge, dmg_force, dmg_last, dmg_radius, entity(), HITTYPE_SPAM, nextthink, NULL, projectiledeathtype, RadiusDamage(), realowner, teleport_time, time, weaponentity_fld, and WEP_CVAR_SEC.

Referenced by W_Hook_Explode2().

◆ W_Hook_Touch2()

void W_Hook_Touch2 ( entity this,
entity toucher )

Definition at line 79 of file hook.qc.

80{
82 this.use(this, NULL, NULL);
83}
#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 271 of file hook.qc.

Referenced by Draw_GrapplingHook().

◆ Draw_GrapplingHook_trace_callback_a

float Draw_GrapplingHook_trace_callback_a

Definition at line 284 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 283 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 282 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 281 of file hook.qc.

Referenced by Draw_GrapplingHook(), and Draw_GrapplingHook_trace_callback().