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

Go to the source code of this file.

Functions

 bool (entity, entity, entity) waypointsprite_visible_for_player
 classfield (WaypointSprite) .float helpme
void Draw_WaypointSprite (entity this)
void drawhealthbar (vector org, float rot, float h, vector sz, vector hotspot, float width, float height, float margin, float border, float align, vector rgb, float a, vector hrgb, float ha, float f)
void drawquad (vector o, vector ri, vector up, string pic, vector rgb, float a, float f)
void drawrotpic (vector org, float rot, string pic, vector sz, vector hotspot, vector rgb, float a, float f)
vector drawsprite_TextOrIcon (bool is_text, vector o, float ang, float minwidth, vector rgb, float a, vector sz, string str)
vector drawspritearrow (vector o, float ang, vector rgb, float a, float t)
void Ent_RemoveWaypointSprite (entity this)
void Ent_WaypointSprite (entity this, bool isnew)
 entityclass (WaypointSprite)
vector fixrgbexcess (vector rgb)
vector fixrgbexcess_move (vector rgb, vector src, vector dst)
float spritelookupblinkvalue (entity this, string s)
vector spritelookupcolor (entity this, string s, vector def)
string spritelookuptext (entity this, string s)
entity WaypointSprite_Attach (entity spr, entity player, bool limited_range, entity icon)
entity WaypointSprite_AttachCarrier (entity spr, entity carrier, entity icon)
void WaypointSprite_ClearOwned (entity this)
void WaypointSprite_ClearPersonal (entity this)
bool WaypointSprite_Customize (entity this, entity client)
entity WaypointSprite_DeployFixed (entity spr, bool limited_range, entity player, vector ofs, entity icon)
entity WaypointSprite_DeployPersonal (entity spr, entity player, vector ofs, entity icon)
void WaypointSprite_DetachCarrier (entity carrier)
void WaypointSprite_Disown (entity wp, float fadetime)
void WaypointSprite_FadeOutIn (entity e, float t)
entity WaypointSprite_getviewentity (entity e)
void WaypointSprite_HelpMePing (entity e)
void WaypointSprite_Init ()
float WaypointSprite_isteammate (entity e, entity e2)
void WaypointSprite_Kill (entity wp)
void WaypointSprite_Load ()
void WaypointSprite_Load_Frames (string ext)
void WaypointSprite_Ping (entity e)
void WaypointSprite_PlayerDead (entity this)
void WaypointSprite_PlayerGone (entity this)
void WaypointSprite_Reset (entity this)
bool WaypointSprite_SendEntity (entity this, entity to, float sendflags)
entity WaypointSprite_Spawn (entity spr, float lifetime, float maxdistance, entity ref, vector ofs, entity showto, float t, entity own,.entity ownfield, float hideable, entity icon)
entity WaypointSprite_SpawnFixed (entity spr, vector ofs, entity own,.entity ownfield, entity icon)
void WaypointSprite_Think (entity this)
void WaypointSprite_UpdateBuildFinished (entity e, float f)
void WaypointSprite_UpdateHealth (entity e, float f)
void WaypointSprite_UpdateMaxHealth (entity e, float f)
void WaypointSprite_UpdateOrigin (entity e, vector o)
void WaypointSprite_UpdateRule (entity e, float t, float r)
void WaypointSprite_UpdateSprites (entity e, entity m1, entity m2, entity m3)
void WaypointSprite_UpdateTeamRadar (entity e, entity icon, vector col)
bool WaypointSprite_visible_for_player (entity this, entity player, entity view)

Variables

float alpha
bool autocvar_cl_hidewaypoints
float autocvar_g_waypointsprite_alpha
float autocvar_g_waypointsprite_crosshairfadealpha
float autocvar_g_waypointsprite_crosshairfadedistance
float autocvar_g_waypointsprite_crosshairfadescale
float autocvar_g_waypointsprite_distancealphaexponent
float autocvar_g_waypointsprite_distancefadealpha
float autocvar_g_waypointsprite_distancefadedistancemultiplier
float autocvar_g_waypointsprite_distancefadescale
float autocvar_g_waypointsprite_edgefadealpha
float autocvar_g_waypointsprite_edgefadedistance
float autocvar_g_waypointsprite_edgefadescale
float autocvar_g_waypointsprite_edgeoffset_bottom
float autocvar_g_waypointsprite_edgeoffset_left
float autocvar_g_waypointsprite_edgeoffset_right
float autocvar_g_waypointsprite_edgeoffset_top
float autocvar_g_waypointsprite_fontsize
bool autocvar_g_waypointsprite_iconcolor
float autocvar_g_waypointsprite_iconsize = 32
int autocvar_g_waypointsprite_itemstime
float autocvar_g_waypointsprite_minalpha
float autocvar_g_waypointsprite_minscale
float autocvar_g_waypointsprite_normdistance
float autocvar_g_waypointsprite_scale
int autocvar_g_waypointsprite_spam
bool autocvar_g_waypointsprite_text
float autocvar_g_waypointsprite_timealphaexponent
bool autocvar_g_waypointsprite_turrets = true
float autocvar_g_waypointsprite_turrets_maxdist = 5000
bool autocvar_g_waypointsprite_turrets_onlyhurt = false
bool autocvar_g_waypointsprite_turrets_text = false
bool autocvar_g_waypointsprite_uppercase
float autocvar_sv_waypointsprite_deadlifetime
float autocvar_sv_waypointsprite_deployed_lifetime
float autocvar_sv_waypointsprite_limitedrange
string model1
string model2
string model3
entity owned_by_field
float rule
entity sprite
const float SPRITE_ARROW_SCALE = 1.0
const float SPRITE_HEALTHBAR_BORDER = 2
const float SPRITE_HEALTHBAR_BORDERALPHA = 1
const float SPRITE_HEALTHBAR_HEALTHALPHA = 0.5
const float SPRITE_HEALTHBAR_HEIGHT = 7
const float SPRITE_HEALTHBAR_MARGIN = 6
const float SPRITE_HEALTHBAR_WIDTH = 104
const float SPRITE_HELPME_BLINK = 2
const int SPRITERULE_DEFAULT = 0
const int SPRITERULE_SPECTATOR = 2
const int SPRITERULE_TEAMPLAY = 1
float waypointsprite_alpha
entity waypointsprite_attached
entity waypointsprite_attachedforcarrier
float waypointsprite_count
float waypointsprite_crosshairfadealpha
float waypointsprite_crosshairfadedistance
float waypointsprite_crosshairfadescale
float waypointsprite_deadlifetime
entity waypointsprite_deployed_fixed
float waypointsprite_deployed_lifetime
entity waypointsprite_deployed_personal
float waypointsprite_distancealphaexponent
float waypointsprite_distancefadealpha
float waypointsprite_distancefadedistance
float waypointsprite_distancefadescale
float waypointsprite_edgefadealpha
float waypointsprite_edgefadedistance
float waypointsprite_edgefadescale
float waypointsprite_edgeoffset_bottom
float waypointsprite_edgeoffset_left
float waypointsprite_edgeoffset_right
float waypointsprite_edgeoffset_top
float waypointsprite_fadedistance
float waypointsprite_fontsize
float waypointsprite_helpmetime
float waypointsprite_limitedrange
float waypointsprite_minalpha
float waypointsprite_minscale
float waypointsprite_newcount
float waypointsprite_normdistance
float waypointsprite_pingtime
float waypointsprite_scale
float waypointsprite_timealphaexponent
int wp_extra
 Additional networked waypoint state, used for items, weapons, buffs.

Function Documentation

◆ bool()

bool ( entity ,
entity ,
entity  )

References entity(), and vector.

◆ classfield()

classfield ( WaypointSprite )

◆ Draw_WaypointSprite()

void Draw_WaypointSprite ( entity this)

Definition at line 453 of file waypointsprites.qc.

454{
455 if (this.lifetime > 0)
456 this.alpha = (bound(0, (this.fadetime - time) / this.lifetime, 1) ** waypointsprite_timealphaexponent);
457 else
458 this.alpha = 1;
459
460 if (this.hideflags & 2)
461 return; // radar only
462
464 return;
465
466 if ((this.hideflags & 1) && autocvar_cl_hidewaypoints)
467 return; // fixed waypoint
468
470
471 float t = entcs_GetTeam(player_localnum) + 1;
472 string spriteimage = "";
473
474 // choose the sprite
475 switch (this.rule)
476 {
478 if (!(
480 || (autocvar_g_waypointsprite_itemstime == 2 && (t == NUM_SPECTATOR + 1 || warmup_stage || STAT(ITEMSTIME) == 2))
481 ))
482 return;
483 spriteimage = this.netname;
484 break;
486 if (this.team)
487 {
488 if (this.team == t)
489 spriteimage = this.netname;
490 else
491 spriteimage = "";
492 }
493 else
494 spriteimage = this.netname;
495 break;
497 if (t == NUM_SPECTATOR + 1)
498 spriteimage = this.netname3;
499 else if (this.team == t)
500 spriteimage = this.netname2;
501 else
502 spriteimage = this.netname;
503 break;
504 default:
505 error("Invalid waypointsprite rule!");
506 break;
507 }
508
509 if (spriteimage == "")
510 return;
511
513
514 float dist = vlen(this.origin - view_origin);
515 float a = this.alpha * autocvar_hud_panel_fg_alpha;
516
517 if(this.maxdistance > 0)
518 {
519 // restrict maximum normal distance to the waypoint's maximum distance to prevent exploiting cvars
520 float maxnormdistance = bound(0, waypointsprite_normdistance, this.maxdistance - 1);
521 a *= (bound(0, (this.maxdistance - dist) / (this.maxdistance - maxnormdistance), 1) ** waypointsprite_distancealphaexponent);
522 }
523
524 vector rgb = spritelookupcolor(this, spriteimage, this.teamradar_color);
525 if (rgb == '0 0 0')
526 {
527 this.teamradar_color = '1 0 1';
528 LOG_INFOF("WARNING: sprite of name %s has no color, using pink so you notice it", spriteimage);
529 }
530
531 float health_val = GetResource(this, RES_HEALTH);
532 float blink_time = (health_val >= 0) ? (health_val * 10) : time;
533 if (blink_time - floor(blink_time) > 0.5)
534 {
535 if (this.helpme && time < this.helpme)
537 else if (!this.lifetime) // fading out waypoints don't blink
538 a *= spritelookupblinkvalue(this, spriteimage);
539 }
540
541 if (a > 1)
542 {
543 rgb *= a;
544 a = 1;
545 }
546
547 if (a <= 0.003)
548 return;
549
550 rgb = fixrgbexcess(rgb);
551
552 vector o;
553 float ang;
554
555 o = project_3d_to_2d(this.origin);
556 if (o.z < 0
561 {
562 // scale it to be just in view
563 vector d = o - '0.5 0 0' * vid_conwidth - '0 0.5 0' * vid_conheight;
564 ang = atan2(-d.x, -d.y);
565 if (o.z < 0)
566 ang += M_PI;
567
568 float f1 = d.x / vid_conwidth;
569 float f2 = d.y / vid_conheight;
570 if (f1 == 0) { f1 = 0.000001; }
571 if (f2 == 0) { f2 = 0.000001; }
572
573 if (max(f1, -f1) > max(f2, -f2)) {
574 if (d.z * f1 > 0) {
575 // RIGHT edge
576 d *= (0.5 - waypointsprite_edgeoffset_right) / f1;
577 } else {
578 // LEFT edge
579 d *= -(0.5 - waypointsprite_edgeoffset_left) / f1;
580 }
581 } else {
582 if (d.z * f2 > 0) {
583 // BOTTOM edge
585 } else {
586 // TOP edge
587 d *= -(0.5 - waypointsprite_edgeoffset_top) / f2;
588 }
589 }
590
591 o = d + '0.5 0 0' * vid_conwidth + '0 0.5 0' * vid_conheight;
592 }
593 else
594 {
595#if 1
596 ang = M_PI;
597#else
598 vector d = o - '0.5 0 0' * vid_conwidth - '0 0.5 0' * vid_conheight;
599 ang = atan2(-d.x, -d.y);
600#endif
601 }
602 o.z = 0;
603
604 float edgedistance_min = min((o.y - (vid_conheight * waypointsprite_edgeoffset_top)),
608
609 float crosshairdistance = sqrt( ((o.x - vid_conwidth/2) ** 2) + ((o.y - vid_conheight/2) ** 2) );
610
613
614 {
617 }
618 if (edgedistance_min < waypointsprite_edgefadedistance) {
619 a *= 1 - (1 - waypointsprite_edgefadealpha) * (1 - bound(0, edgedistance_min/waypointsprite_edgefadedistance, 1));
620 t *= 1 - (1 - waypointsprite_edgefadescale) * (1 - bound(0, edgedistance_min/waypointsprite_edgefadedistance, 1));
621 }
622 if (crosshairdistance < waypointsprite_crosshairfadedistance) {
623 a *= 1 - (1 - waypointsprite_crosshairfadealpha) * (1 - bound(0, crosshairdistance/waypointsprite_crosshairfadedistance, 1));
624 t *= 1 - (1 - waypointsprite_crosshairfadescale) * (1 - bound(0, crosshairdistance/waypointsprite_crosshairfadedistance, 1));
625 }
626
627 if (this.build_finished)
628 {
629 if (time < this.build_finished + 0.25)
630 {
631 if (time < this.build_started)
632 SetResourceExplicit(this, RES_HEALTH, this.build_starthealth);
633 else if (time < this.build_finished)
634 SetResourceExplicit(this, RES_HEALTH, (time - this.build_started) / (this.build_finished - this.build_started) * (1 - this.build_starthealth) + this.build_starthealth);
635 else
636 SetResourceExplicit(this, RES_HEALTH, 1);
637 }
638 else
639 SetResourceExplicit(this, RES_HEALTH, -1);
640 }
641
642 o = drawspritearrow(o, ang, rgb, a, SPRITE_ARROW_SCALE * t);
643
644 string pic = "";
645 bool is_text = true;
647 {
648 string spr_icon = spritelookupicon(this, spriteimage);
649 pic = spr_icon;
650 bool icon_found = !(!spr_icon || spr_icon == "");
651 if (icon_found) // it's valid, but let's make sure it exists!
652 {
653 pic = strcat(hud_skin_path, "/", spr_icon);
654 if(precache_pic(pic) == "")
655 {
656 pic = strcat("gfx/hud/default/", spr_icon);
657 if(!precache_pic(pic))
658 icon_found = false;
659 }
660 }
661 if (icon_found)
662 is_text = false;
663 }
664
665 vector sz;
666 vector col = rgb;
667 string txt = string_null; // it will contain either the text or the icon path
668 if (is_text)
669 {
670 txt = spritelookuptext(this, spriteimage);
671 if (this.helpme && time < this.helpme)
672 txt = sprintf(_("%s needing help!"), txt);
674 txt = strtoupper(txt);
675 sz = waypointsprite_fontsize * '1 1 0';
676 }
677 else
678 {
679 txt = pic; // icon path
681 col = '1 1 1';
683 {
684 col = rgb_to_hsv(col);
685 col.y *= autocvar_g_waypointsprite_iconcolor; // scale saturation
686 col = hsv_to_rgb(col);
687 }
689 }
690
692 if (GetResource(this, RES_HEALTH) >= 0)
693 {
694 float align = 0, marg;
695 if (this.build_finished)
696 align = 0.5;
697 else
698 align = 0;
699 if (cos(ang) > 0)
701 else
702 marg = SPRITE_HEALTHBAR_MARGIN * t + 0.5 * sz.y;
703
704 float minwidth = (SPRITE_HEALTHBAR_WIDTH + 2 * SPRITE_HEALTHBAR_BORDER) * t;
705 o = drawsprite_TextOrIcon(is_text, o, ang, minwidth, col, a, sz, txt);
707 o,
708 0,
709 GetResource(this, RES_HEALTH),
710 '0 0 0',
711 '0 0 0',
714 marg,
716 align,
717 rgb,
719 rgb,
722 );
723 }
724 else
725 drawsprite_TextOrIcon(is_text, o, ang, 0, col, a, sz, txt);
726
728}
float GetResource(entity e, Resource res_type)
Returns the current amount of resource the given entity has.
#define draw_beginBoldFont()
Definition draw.qh:4
#define draw_endBoldFont()
Definition draw.qh:5
string netname
Definition powerups.qc:20
float lifetime
Definition powerups.qc:23
float alpha
Definition items.qc:13
vector view_origin
Definition main.qh:109
bool warmup_stage
Definition main.qh:120
int team
Definition main.qh:188
ERASEABLE vector rgb_to_hsv(vector rgb)
Definition color.qh:119
ERASEABLE vector hsv_to_rgb(vector hsv)
Definition color.qh:136
const float DRAWFLAG_NORMAL
float player_localnum
float time
vector origin
SetResourceExplicit(ent, RES_ARMOR, ReadByte() *DEC_FACTOR)) ENTCS_PROP(NAME
int entcs_GetTeam(int i)
Definition ent_cs.qh:132
string hud_skin_path
Definition hud.qh:136
float autocvar_hud_panel_fg_alpha
Definition hud.qh:202
void InterpolateOrigin_Do(entity this)
set origin based on iorigin1 (old pos), iorigin2 (desired pos), and time
noref float vid_conwidth
Definition draw.qh:7
noref float vid_conheight
Definition draw.qh:8
#define STAT(...)
Definition stats.qh:94
#define LOG_INFOF(...)
Definition log.qh:63
#define M_PI
pi
Definition mathlib.qh:114
float bound(float min, float value, float max)
float cos(float f)
string precache_pic(string name,...)
float vlen(vector v)
float sqrt(float f)
float min(float f,...)
float floor(float f)
float max(float f,...)
fadetime
string string_null
Definition nil.qh:9
s2 minigame1_name minigames s f2
Definition all.inc:573
strcat(_("^F4Countdown stopped!"), "\n^BG", _("Teams are too unbalanced."))
s2 minigame1_name minigames s f1
Definition all.inc:569
#define error
Definition pre.qh:6
vector
Definition self.qh:96
vector vector ang
Definition self.qh:96
const int NUM_SPECTATOR
Definition teams.qh:23
vector project_3d_to_2d(vector vec)
Definition view.qc:373
vector drawsprite_TextOrIcon(bool is_text, vector o, float ang, float minwidth, vector rgb, float a, vector sz, string str)
void drawhealthbar(vector org, float rot, float h, vector sz, vector hotspot, float width, float theheight, float margin, float border, float align, vector rgb, float a, vector hrgb, float ha, float f)
string spritelookupicon(entity this, string s)
vector drawspritearrow(vector o, float ang, vector rgb, float a, float t)
string spritelookuptext(entity this, string s)
vector spritelookupcolor(entity this, string s, vector def)
vector fixrgbexcess(vector rgb)
float spritelookupblinkvalue(entity this, string s)
const float SPRITE_HEALTHBAR_HEIGHT
float waypointsprite_alpha
const int SPRITERULE_DEFAULT
bool autocvar_g_waypointsprite_uppercase
float waypointsprite_edgeoffset_left
float waypointsprite_scale
float waypointsprite_distancefadedistance
float waypointsprite_edgeoffset_top
float autocvar_g_waypointsprite_iconsize
float waypointsprite_distancealphaexponent
float waypointsprite_crosshairfadescale
const float SPRITE_HELPME_BLINK
float waypointsprite_normdistance
float waypointsprite_edgefadescale
int autocvar_g_waypointsprite_itemstime
float waypointsprite_edgeoffset_right
float waypointsprite_crosshairfadealpha
float waypointsprite_edgefadedistance
const float SPRITE_ARROW_SCALE
float waypointsprite_crosshairfadedistance
bool autocvar_g_waypointsprite_iconcolor
bool autocvar_cl_hidewaypoints
const int SPRITERULE_SPECTATOR
const float SPRITE_HEALTHBAR_HEALTHALPHA
const float SPRITE_HEALTHBAR_BORDERALPHA
float waypointsprite_edgefadealpha
const float SPRITE_HEALTHBAR_WIDTH
const float SPRITE_HEALTHBAR_BORDER
float waypointsprite_distancefadealpha
float waypointsprite_timealphaexponent
float rule
float waypointsprite_distancefadescale
const float SPRITE_HEALTHBAR_MARGIN
float waypointsprite_fontsize
const int SPRITERULE_TEAMPLAY
float waypointsprite_edgeoffset_bottom
float waypointsprite_newcount
bool autocvar_g_waypointsprite_text

References alpha, ang, autocvar_cl_hidewaypoints, autocvar_g_waypointsprite_iconcolor, autocvar_g_waypointsprite_iconsize, autocvar_g_waypointsprite_itemstime, autocvar_g_waypointsprite_text, autocvar_g_waypointsprite_uppercase, autocvar_hud_panel_fg_alpha, bound(), cos(), draw_beginBoldFont, draw_endBoldFont, DRAWFLAG_NORMAL, drawhealthbar(), drawsprite_TextOrIcon(), drawspritearrow(), entcs_GetTeam(), entity(), error, f1, f2, fadetime, fixrgbexcess(), floor(), GetResource(), hsv_to_rgb(), hud_skin_path, InterpolateOrigin_Do(), lifetime, LOG_INFOF, M_PI, max(), min(), netname, NUM_SPECTATOR, origin, player_localnum, precache_pic(), project_3d_to_2d(), rgb_to_hsv(), rule, SetResourceExplicit(), SPRITE_ARROW_SCALE, SPRITE_HEALTHBAR_BORDER, SPRITE_HEALTHBAR_BORDERALPHA, SPRITE_HEALTHBAR_HEALTHALPHA, SPRITE_HEALTHBAR_HEIGHT, SPRITE_HEALTHBAR_MARGIN, SPRITE_HEALTHBAR_WIDTH, SPRITE_HELPME_BLINK, spritelookupblinkvalue(), spritelookupcolor(), spritelookupicon(), spritelookuptext(), SPRITERULE_DEFAULT, SPRITERULE_SPECTATOR, SPRITERULE_TEAMPLAY, sqrt(), STAT, strcat(), string_null, team, time, vector, vid_conheight, vid_conwidth, view_origin, vlen(), warmup_stage, waypointsprite_alpha, waypointsprite_crosshairfadealpha, waypointsprite_crosshairfadedistance, waypointsprite_crosshairfadescale, waypointsprite_distancealphaexponent, waypointsprite_distancefadealpha, waypointsprite_distancefadedistance, waypointsprite_distancefadescale, waypointsprite_edgefadealpha, waypointsprite_edgefadedistance, waypointsprite_edgefadescale, waypointsprite_edgeoffset_bottom, waypointsprite_edgeoffset_left, waypointsprite_edgeoffset_right, waypointsprite_edgeoffset_top, waypointsprite_fontsize, waypointsprite_newcount, waypointsprite_normdistance, waypointsprite_scale, and waypointsprite_timealphaexponent.

Referenced by Ent_WaypointSprite().

◆ drawhealthbar()

void drawhealthbar ( vector org,
float rot,
float h,
vector sz,
vector hotspot,
float width,
float height,
float margin,
float border,
float align,
vector rgb,
float a,
vector hrgb,
float ha,
float f )

Definition at line 304 of file waypointsprites.qc.

305{
306 vector o, ri, up;
307 float owidth; // outer width
308
309 hotspot = -1 * hotspot;
310
311 // hotspot-relative coordinates of the healthbar corners
312 o = hotspot;
313 ri = '1 0 0';
314 up = '0 1 0';
315
316 rot = -rot; // rotate by the opposite angle, as our coordinate system is reversed
317 o = Rotate(o, rot) + org;
318 ri = Rotate(ri, rot);
319 up = Rotate(up, rot);
320
321 owidth = width + 2 * border;
322 o += up * -(margin + border + theheight) + ri * (sz.x - owidth) * 0.5;
323
324 drawquad(o - up * border, ri * owidth, up * border, "", rgb, a, f);
325 drawquad(o + up * theheight, ri * owidth, up * border, "", rgb, a, f);
326 drawquad(o, ri * border, up * theheight, "", rgb, a, f);
327 drawquad(o + ri * (owidth - border), ri * border, up * theheight, "", rgb, a, f);
328 drawquad(o + ri * (border + align * ((1 - h) * width)), ri * width * h, up * theheight, "", hrgb, ha, f);
329}
vector org
Definition self.qh:96
ERASEABLE vector Rotate(vector v, float a)
Definition vector.qh:111
void drawquad(vector o, vector ri, vector up, string pic, vector rgb, float a, float f)

References drawquad(), org, Rotate(), and vector.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ drawquad()

void drawquad ( vector o,
vector ri,
vector up,
string pic,
vector rgb,
float a,
float f )

Definition at line 294 of file waypointsprites.qc.

295{
296 R_BeginPolygon(pic, f, true);
297 R_PolygonVertex(o, '0 0 0', rgb, a);
298 R_PolygonVertex(o + ri, '1 0 0', rgb, a);
299 R_PolygonVertex(o + up + ri, '1 1 0', rgb, a);
300 R_PolygonVertex(o + up, '0 1 0', rgb, a);
301 R_EndPolygon();
302}

References vector.

Referenced by drawhealthbar().

◆ drawrotpic()

void drawrotpic ( vector org,
float rot,
string pic,
vector sz,
vector hotspot,
vector rgb,
float a,
float f )

Definition at line 266 of file waypointsprites.qc.

267{
268 vector v1, v2, v3, v4;
269
270 hotspot = -1 * hotspot;
271
272 // hotspot-relative coordinates of the corners
273 v1 = hotspot;
274 v2 = hotspot + '1 0 0' * sz.x;
275 v3 = hotspot + '1 0 0' * sz.x + '0 1 0' * sz.y;
276 v4 = hotspot + '0 1 0' * sz.y;
277
278 // rotate them, and make them absolute
279 rot = -rot; // rotate by the opposite angle, as our coordinate system is reversed
280 v1 = Rotate(v1, rot) + org;
281 v2 = Rotate(v2, rot) + org;
282 v3 = Rotate(v3, rot) + org;
283 v4 = Rotate(v4, rot) + org;
284
285 // draw them
286 R_BeginPolygon(pic, f, true);
287 R_PolygonVertex(v1, '0 0 0', rgb, a);
288 R_PolygonVertex(v2, '1 0 0', rgb, a);
289 R_PolygonVertex(v3, '1 1 0', rgb, a);
290 R_PolygonVertex(v4, '0 1 0', rgb, a);
291 R_EndPolygon();
292}

References org, Rotate(), and vector.

◆ drawsprite_TextOrIcon()

vector drawsprite_TextOrIcon ( bool is_text,
vector o,
float ang,
float minwidth,
vector rgb,
float a,
vector sz,
string str )

Definition at line 362 of file waypointsprites.qc.

363{
364 float algnx, algny;
365
366 float sw = is_text ? stringwidth(str, false, sz) : sz.x;
367 float w = sw > minwidth ? sw : minwidth;
368 float h = sz.y;
369
370 // how do corners work?
371 float aspect = vid_conwidth / vid_conheight;
372 float sa = sin(ang);
373 float ca = cos(ang) * aspect;
374 if (fabs(sa) > fabs(ca))
375 {
376 algnx = (sa < 0);
377 float f = fabs(sa);
378 algny = 0.5 - 0.5 * (f ? (ca / f) : 0);
379 }
380 else
381 {
382 float f = fabs(ca);
383 algnx = 0.5 - 0.5 * (f ? (sa / f) : 0);
384 algny = (ca < 0);
385 }
386
387 // align
388 o.x -= w * algnx;
389 o.y -= h * algny;
390
391 // we want to be onscreen
392 if (o.x < 0)
393 o.x = 0;
394 if (o.y < 0)
395 o.y = 0;
396 if (o.x > vid_conwidth - w)
397 o.x = vid_conwidth - w;
398 if (o.y > vid_conheight - h)
399 o.y = vid_conheight - h;
400
401 o.x += 0.5 * (w - sw);
402
403 if (is_text)
404 drawstring(o, str, sz, rgb, a, DRAWFLAG_NORMAL);
405 else
406 drawpic_aspect(o, str, sz, rgb, a, DRAWFLAG_NORMAL);
407
408 o.x += 0.5 * sw;
409 o.y += 0.5 * h;
410
411 return o;
412}
#define drawstring(position, text, scale, rgb, alpha, flag)
Definition draw.qh:27
#define drawpic_aspect(pos, pic, mySize, color, theAlpha, drawflag)
Definition draw.qh:57
#define stringwidth
v x
Definition ent_cs.qc:146
float sin(float f)
float fabs(float f)

References ang, cos(), DRAWFLAG_NORMAL, drawpic_aspect, drawstring, fabs(), sin(), stringwidth, vector, vid_conheight, and vid_conwidth.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ drawspritearrow()

vector drawspritearrow ( vector o,
float ang,
vector rgb,
float a,
float t )

Definition at line 332 of file waypointsprites.qc.

333{
334 float size = 9.0 * t;
335 float border = 1.5 * t;
336 float margin = 4.0 * t;
337
338 float borderDiag = border * M_SQRT2;
339 vector arrowX = eX * size;
340 vector arrowY = eY * (size+borderDiag);
341 vector borderX = eX * (size+borderDiag);
342 vector borderY = eY * (size+borderDiag+border);
343
344 R_BeginPolygon("", DRAWFLAG_NORMAL, true);
345 R_PolygonVertex(o, '0 0 0', '0 0 0', a);
346 R_PolygonVertex(o + Rotate(arrowY - borderX, ang), '0 0 0', '0 0 0', a);
347 R_PolygonVertex(o + Rotate(borderY - borderX, ang), '0 0 0', '0 0 0', a);
348 R_PolygonVertex(o + Rotate(borderY + borderX, ang), '0 0 0', '0 0 0', a);
349 R_PolygonVertex(o + Rotate(arrowY + borderX, ang), '0 0 0', '0 0 0', a);
350 R_EndPolygon();
351
352 R_BeginPolygon("", DRAWFLAG_ADDITIVE, true);
353 R_PolygonVertex(o + Rotate(eY * borderDiag, ang), '0 0 0', rgb, a);
354 R_PolygonVertex(o + Rotate(arrowY - arrowX, ang), '0 0 0', rgb, a);
355 R_PolygonVertex(o + Rotate(arrowY + arrowX, ang), '0 0 0', rgb, a);
356 R_EndPolygon();
357
358 return o + Rotate(eY * (borderDiag+size+margin), ang);
359}
const float DRAWFLAG_ADDITIVE
vector size
const float M_SQRT2
sqrt(2)
Definition mathlib.qh:120
const vector eY
Definition vector.qh:44
const vector eX
Definition vector.qh:43

References ang, DRAWFLAG_ADDITIVE, DRAWFLAG_NORMAL, eX, eY, M_SQRT2, Rotate(), size, and vector.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ Ent_RemoveWaypointSprite()

void Ent_RemoveWaypointSprite ( entity this)

Definition at line 97 of file waypointsprites.qc.

98{
99 strfree(this.netname);
100 strfree(this.netname2);
101 strfree(this.netname3);
102}
#define strfree(this)
Definition string.qh:57

References entity(), netname, and strfree.

Referenced by Ent_WaypointSprite().

◆ Ent_WaypointSprite()

void Ent_WaypointSprite ( entity this,
bool isnew )

Definition at line 104 of file waypointsprites.qc.

105{
106 int sendflags = ReadByte();
107 this.wp_extra = ReadByte();
108
109 if (!this.spawntime)
110 this.spawntime = time;
111
112 this.draw2d = Draw_WaypointSprite;
113 if (isnew) {
114 IL_PUSH(g_drawables_2d, this);
115 IL_PUSH(g_radaricons, this);
116 }
117
119 this.iflags |= IFLAG_ORIGIN;
120
121 if (sendflags & 0x80)
122 {
123 int t = ReadByte();
124 if (t < 192)
125 {
126 SetResourceExplicit(this, RES_HEALTH, t / 191.0);
127 this.build_finished = 0;
128 }
129 else
130 {
131 t = (t - 192) * 256 + ReadByte();
132 this.build_started = servertime;
133 if (this.build_finished)
134 this.build_starthealth = bound(0, GetResource(this, RES_HEALTH), 1);
135 else
136 this.build_starthealth = 0;
137 this.build_finished = servertime + t / 32;
138 }
139 }
140 else
141 {
142 SetResourceExplicit(this, RES_HEALTH, -1);
143 this.build_finished = 0;
144 }
145
146 if (sendflags & 64)
147 {
148 // unfortunately, this needs to be exact (for the 3D display)
149 this.origin = ReadVector();
150 setorigin(this, this.origin);
151 }
152
153 if (sendflags & 1)
154 {
155 this.team = ReadByte();
156 this.rule = ReadByte();
157 }
158
159 if (sendflags & 2)
160 strcpy(this.netname, ReadString());
161
162 if (sendflags & 4)
163 strcpy(this.netname2, ReadString());
164
165 if (sendflags & 8)
166 strcpy(this.netname3, ReadString());
167
168 if (sendflags & 16)
169 {
170 this.lifetime = ReadCoord();
171 this.fadetime = ReadCoord();
172 this.maxdistance = ReadShort();
173 this.hideflags = ReadByte();
174 }
175
176 if (sendflags & 32)
177 {
178 int f = ReadByte();
179 this.teamradar_icon = f & BITS(7);
180 if (f & BIT(7))
181 {
182 this.(teamradar_times[this.teamradar_time_index]) = time;
183 this.teamradar_time_index = (this.teamradar_time_index + 1) % MAX_TEAMRADAR_TIMES;
184 }
185 this.teamradar_color_x = ReadByte() / 255.0;
186 this.teamradar_color_y = ReadByte() / 255.0;
187 this.teamradar_color_z = ReadByte() / 255.0;
188 this.helpme = ReadByte() * 0.1;
189 if (this.helpme > 0)
190 this.helpme += servertime;
191 }
192
194
195 this.entremove = Ent_RemoveWaypointSprite;
196}
#define BIT(n)
Only ever assign into the first 24 bits in QC (so max is BIT(23)).
Definition bits.qh:8
#define BITS(n)
Definition bits.qh:9
#define ReadString
float spawntime
Definition items.qh:16
IntrusiveList g_radaricons
Definition main.qh:95
IntrusiveList g_drawables_2d
Definition main.qh:92
void InterpolateOrigin_Undo(entity this)
snap origin to iorigin2 (actual origin)
void InterpolateOrigin_Note(entity this)
const int IFLAG_ORIGIN
int iflags
ERASEABLE entity IL_PUSH(IntrusiveList this, entity it)
Push to tail.
float servertime
Definition net.qh:329
#define ReadVector()
Definition net.qh:349
int ReadByte()
#define strcpy(this, s)
Definition string.qh:51
const int MAX_TEAMRADAR_TIMES
Definition teamradar.qh:3
void Ent_RemoveWaypointSprite(entity this)
void Draw_WaypointSprite(entity this)
int wp_extra
Additional networked waypoint state, used for items, weapons, buffs.

References BIT, BITS, bound(), Draw_WaypointSprite(), Ent_RemoveWaypointSprite(), entity(), fadetime, g_drawables_2d, g_radaricons, GetResource(), IFLAG_ORIGIN, iflags, IL_PUSH(), InterpolateOrigin_Note(), InterpolateOrigin_Undo(), lifetime, MAX_TEAMRADAR_TIMES, netname, origin, ReadByte(), ReadString, ReadVector, rule, servertime, SetResourceExplicit(), spawntime, strcpy, team, time, and wp_extra.

Referenced by NET_HANDLE().

◆ entityclass()

entityclass ( WaypointSprite )

◆ fixrgbexcess()

vector fixrgbexcess ( vector rgb)

Definition at line 420 of file waypointsprites.qc.

421{
422 if (rgb.x > 1) {
423 rgb = fixrgbexcess_move(rgb, '1 0 0', '0 1 1');
424 if (rgb.y > 1) {
425 rgb = fixrgbexcess_move(rgb, '0 1 0', '0 0 1');
426 if (rgb.z > 1) rgb.z = 1;
427 } else if (rgb.z > 1) {
428 rgb = fixrgbexcess_move(rgb, '0 0 1', '0 1 0');
429 if (rgb.y > 1) rgb.y = 1;
430 }
431 } else if (rgb.y > 1) {
432 rgb = fixrgbexcess_move(rgb, '0 1 0', '1 0 1');
433 if (rgb.x > 1) {
434 rgb = fixrgbexcess_move(rgb, '1 0 0', '0 0 1');
435 if (rgb.z > 1) rgb.z = 1;
436 } else if (rgb.z > 1) {
437 rgb = fixrgbexcess_move(rgb, '0 0 1', '1 0 0');
438 if (rgb.x > 1) rgb.x = 1;
439 }
440 } else if (rgb.z > 1) {
441 rgb = fixrgbexcess_move(rgb, '0 0 1', '1 1 0');
442 if (rgb.x > 1) {
443 rgb = fixrgbexcess_move(rgb, '1 0 0', '0 1 0');
444 if (rgb.y > 1) rgb.y = 1;
445 } else if (rgb.y > 1) {
446 rgb = fixrgbexcess_move(rgb, '0 1 0', '1 0 0');
447 if (rgb.x > 1) rgb.x = 1;
448 }
449 }
450 return rgb;
451}
vector fixrgbexcess_move(vector rgb, vector src, vector dst)

References fixrgbexcess_move(), and vector.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ fixrgbexcess_move()

vector fixrgbexcess_move ( vector rgb,
vector src,
vector dst )

Definition at line 414 of file waypointsprites.qc.

415{
416 vector yvec = '0.299 0.587 0.114';
417 return rgb + dst * ((src * yvec) / (dst * yvec)) * ((rgb - '1 1 1') * src);
418}

References vector.

Referenced by fixrgbexcess().

◆ spritelookupblinkvalue()

float spritelookupblinkvalue ( entity this,
string s )

Definition at line 200 of file waypointsprites.qc.

201{
202 if (s == WP_Weapon.netname) {
204 return 2;
205 }
206 if (s == WP_Item.netname) return REGISTRY_GET(Items, this.wp_extra).m_waypointblink;
207 if(s == WP_FlagReturn.netname) return 2;
208
209 return 1;
210}
int spawnflags
Definition ammo.qh:15
Weapons
Definition guide.qh:113
#define REGISTRY_GET(id, i)
Definition registry.qh:62
const int WEP_FLAG_SUPERWEAPON
powerup timer
Definition weapon.qh:255

References entity(), REGISTRY_GET, spawnflags, Weapons, WEP_FLAG_SUPERWEAPON, and wp_extra.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ spritelookupcolor()

vector spritelookupcolor ( entity this,
string s,
vector def )

Definition at line 212 of file waypointsprites.qc.

213{
214 if (s == WP_Weapon.netname || s == RADARICON_Weapon.netname) return REGISTRY_GET(Weapons, this.wp_extra).m_color;
215 if (s == WP_Item.netname || s == RADARICON_Item.netname) return REGISTRY_GET(Items, this.wp_extra).m_color;
216 if (MUTATOR_CALLHOOK(WP_Format, this, s))
217 {
218 return M_ARGV(2, vector);
219 }
220 return def;
221}
#define MUTATOR_CALLHOOK(name,...)
Definition base.qh:186
#define M_ARGV(idx, type)
Definition base.qh:153

References entity(), M_ARGV, MUTATOR_CALLHOOK, REGISTRY_GET, vector, Weapons, and wp_extra.

Referenced by Draw_WaypointSprite(), HUD_Radar(), and turret_draw2d().

◆ spritelookuptext()

string spritelookuptext ( entity this,
string s )

Definition at line 223 of file waypointsprites.qc.

224{
226 return "Spam"; // no need to translate this debug string
227 if (s == WP_RaceStartFinish.netname) return (race_checkpointtime || race_mycheckpointtime) ? _("Finish") : _("Start");
228 if (s == WP_Weapon.netname) return REGISTRY_GET(Weapons, this.wp_extra).m_name;
229 if (s == WP_Item.netname) return REGISTRY_GET(Items, this.wp_extra).m_waypoint;
230 if (s == WP_Monster.netname) return get_monsterinfo(this.wp_extra).m_name;
231 if (MUTATOR_CALLHOOK(WP_Format, this, s))
232 {
233 return M_ARGV(3, string);
234 }
235
236 // need to loop, as our netname could be one of three
237 FOREACH(Waypoints, it.netname == s, {
238 return it.m_name;
239 });
240
241 return s;
242}
string m_name
Definition scores.qh:142
#define FOREACH(list, cond, body)
Definition iter.qh:19
#define get_monsterinfo(i)
Definition all.qh:8
float race_checkpointtime
Definition racetimer.qh:13
float race_mycheckpointtime
Definition racetimer.qh:37
float waypointsprite_count
int autocvar_g_waypointsprite_spam

References autocvar_g_waypointsprite_spam, entity(), FOREACH, get_monsterinfo, M_ARGV, MUTATOR_CALLHOOK, race_checkpointtime, race_mycheckpointtime, REGISTRY_GET, waypointsprite_count, Weapons, and wp_extra.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ WaypointSprite_Attach()

entity WaypointSprite_Attach ( entity spr,
entity player,
bool limited_range,
entity icon )

Definition at line 1106 of file waypointsprites.qc.

1112{
1113 if (player.waypointsprite_attachedforcarrier)
1114 return NULL; // can't attach to FC
1115 float t = teamplay ? player.team : 0;
1116 float maxdistance = limited_range ? waypointsprite_limitedrange : 0;
1117 return WaypointSprite_Spawn(spr, waypointsprite_deployed_lifetime, maxdistance, player, '0 0 64', NULL, t, player, waypointsprite_attached, false, icon);
1118}
#define NULL
Definition post.qh:14
bool teamplay
Definition teams.qh:59
entity WaypointSprite_Spawn(entity spr, float _lifetime, float maxdistance, entity ref, vector ofs, entity showto, float t, entity own,.entity ownfield, float hideable, entity icon)
float waypointsprite_limitedrange
entity waypointsprite_attached
float waypointsprite_deployed_lifetime

References entity(), NULL, teamplay, waypointsprite_attached, waypointsprite_deployed_lifetime, waypointsprite_limitedrange, and WaypointSprite_Spawn().

Referenced by IMPULSE().

◆ WaypointSprite_AttachCarrier()

entity WaypointSprite_AttachCarrier ( entity spr,
entity carrier,
entity icon )

Definition at line 1120 of file waypointsprites.qc.

1125{
1126 WaypointSprite_Kill(carrier.waypointsprite_attached); // FC overrides attached
1127 entity e = WaypointSprite_Spawn(spr, 0, 0, carrier, '0 0 64', NULL, carrier.team, carrier, waypointsprite_attachedforcarrier, false, icon);
1128 if (GetResource(carrier, RES_HEALTH))
1129 {
1132 }
1133 return e;
1134}
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
vector healtharmor_maxdamage(float h, float a, float armorblock, int deathtype)
Definition util.qc:1391
float autocvar_g_balance_armor_blockpercent
Definition damage.qh:21
RES_ARMOR
Definition ent_cs.qc:155
void WaypointSprite_Kill(entity wp)
void WaypointSprite_UpdateMaxHealth(entity e, float f)
void WaypointSprite_UpdateHealth(entity e, float f)
entity waypointsprite_attachedforcarrier
float start_armorvalue
Definition world.qh:96
float start_health
Definition world.qh:95

References autocvar_g_balance_armor_blockpercent, entity(), GetResource(), healtharmor_maxdamage(), NULL, RES_ARMOR, start_armorvalue, start_health, waypointsprite_attachedforcarrier, WaypointSprite_Kill(), WaypointSprite_Spawn(), WaypointSprite_UpdateHealth(), and WaypointSprite_UpdateMaxHealth().

Referenced by GiveBall(), ka_TouchEvent(), kh_Key_AssignTo(), MUTATOR_HOOKFUNCTION(), SpawnBall(), and tka_TouchEvent().

◆ WaypointSprite_ClearOwned()

◆ WaypointSprite_ClearPersonal()

void WaypointSprite_ClearPersonal ( entity this)

◆ WaypointSprite_Customize()

bool WaypointSprite_Customize ( entity this,
entity client )

Definition at line 1002 of file waypointsprites.qc.

1003{
1004 // this is not in SendEntity because it shall run every frame, not just every update
1005
1006 // make spectators see what the player would see
1008
1009 if (MUTATOR_CALLHOOK(CustomizeWaypoint, this, client))
1010 return false;
1011
1012 return this.waypointsprite_visible_for_player(this, client, e);
1013}
entity WaypointSprite_getviewentity(entity e)

References entity(), MUTATOR_CALLHOOK, and WaypointSprite_getviewentity().

Referenced by WaypointSprite_Spawn().

◆ WaypointSprite_DeployFixed()

entity WaypointSprite_DeployFixed ( entity spr,
bool limited_range,
entity player,
vector ofs,
entity icon )

Definition at line 1083 of file waypointsprites.qc.

1090{
1091 float t = teamplay ? player.team : 0;
1092 float maxdistance = limited_range ? waypointsprite_limitedrange : 0;
1093 return WaypointSprite_Spawn(spr, waypointsprite_deployed_lifetime, maxdistance, NULL, ofs, NULL, t, player, waypointsprite_deployed_fixed, false, icon);
1094}

References entity(), NULL, teamplay, vector, waypointsprite_deployed_fixed, waypointsprite_deployed_lifetime, waypointsprite_limitedrange, and WaypointSprite_Spawn().

Referenced by IMPULSE(), IMPULSE(), IMPULSE(), IMPULSE(), IMPULSE(), and IMPULSE().

◆ WaypointSprite_DeployPersonal()

entity WaypointSprite_DeployPersonal ( entity spr,
entity player,
vector ofs,
entity icon )

Definition at line 1096 of file waypointsprites.qc.

1102{
1103 return WaypointSprite_Spawn(spr, 0, 0, NULL, ofs, NULL, 0, player, waypointsprite_deployed_personal, false, icon);
1104}

References entity(), NULL, vector, waypointsprite_deployed_personal, and WaypointSprite_Spawn().

Referenced by IMPULSE(), IMPULSE(), and IMPULSE().

◆ WaypointSprite_DetachCarrier()

void WaypointSprite_DetachCarrier ( entity carrier)

Definition at line 1136 of file waypointsprites.qc.

1137{
1138 WaypointSprite_Disown(carrier.waypointsprite_attachedforcarrier, waypointsprite_deadlifetime);
1139}
void WaypointSprite_Disown(entity wp, float fadetime)
float waypointsprite_deadlifetime

References entity(), waypointsprite_deadlifetime, and WaypointSprite_Disown().

Referenced by ka_RemoveBalls(), kh_Key_AssignTo(), kh_Key_Remove(), tka_RemoveBalls(), WaypointSprite_PlayerDead(), and WaypointSprite_PlayerGone().

◆ WaypointSprite_Disown()

void WaypointSprite_Disown ( entity wp,
float fadetime )

Definition at line 925 of file waypointsprites.qc.

926{
927 if (!wp) return;
928 if (wp.classname != "sprite_waypoint")
929 {
930 backtrace("Trying to disown a non-waypointsprite");
931 return;
932 }
933 if (wp.owner)
934 {
935 if (wp.exteriormodeltoclient == wp.owner)
936 wp.exteriormodeltoclient = NULL;
937 wp.owner.(wp.owned_by_field) = NULL;
938 wp.owner = NULL;
939
941 }
942}
#define backtrace(msg)
Definition log.qh:96
void WaypointSprite_FadeOutIn(entity e, float t)

References backtrace, entity(), fadetime, NULL, and WaypointSprite_FadeOutIn().

Referenced by assault_objective_decrease_use(), target_objective_decrease_activate(), WaypointSprite_DetachCarrier(), WaypointSprite_PlayerDead(), and WaypointSprite_PlayerGone().

◆ WaypointSprite_FadeOutIn()

void WaypointSprite_FadeOutIn ( entity e,
float t )

Definition at line 888 of file waypointsprites.qc.

889{
890 if (!e.fade_time)
891 {
892 e.fade_time = t;
893 e.teleport_time = time + t;
894 }
895 else if (t < (e.teleport_time - time))
896 {
897 // accelerate the waypoint's dying
898 // ensure:
899 // (e.teleport_time - time) / wp.fade_time stays
900 // e.teleport_time = time + fadetime
901 float current_fadetime = e.teleport_time - time;
902 e.teleport_time = time + t;
903 if (e.fade_time < 0)
904 e.fade_time = -e.fade_time;
905 e.fade_time *= t / current_fadetime;
906 }
907
908 e.SendFlags |= 16;
909}

References entity(), and time.

Referenced by WaypointSprite_Disown().

◆ WaypointSprite_getviewentity()

entity WaypointSprite_getviewentity ( entity e)

◆ WaypointSprite_HelpMePing()

void WaypointSprite_HelpMePing ( entity e)

Definition at line 881 of file waypointsprites.qc.

882{
884 e.waypointsprite_helpmetime = time + waypointsprite_deployed_lifetime;
885 e.SendFlags |= 32;
886}
void WaypointSprite_Ping(entity e)

References entity(), time, waypointsprite_deployed_lifetime, and WaypointSprite_Ping().

Referenced by if(), IMPULSE(), and MUTATOR_HOOKFUNCTION().

◆ WaypointSprite_Init()

◆ WaypointSprite_isteammate()

float WaypointSprite_isteammate ( entity e,
entity e2 )

Definition at line 995 of file waypointsprites.qc.

996{
997 if (teamplay)
998 return e2.team == e.team;
999 return e2 == e;
1000}

References entity(), and teamplay.

Referenced by WaypointSprite_SendEntity().

◆ WaypointSprite_Kill()

◆ WaypointSprite_Load()

void WaypointSprite_Load ( )

Definition at line 756 of file waypointsprites.qc.

757{
780
783}
vector mi_scale
Definition main.qh:38
float autocvar__menu_alpha
Definition hud.qh:187
float autocvar_g_waypointsprite_edgeoffset_left
float autocvar_g_waypointsprite_timealphaexponent
float autocvar_g_waypointsprite_crosshairfadedistance
float autocvar_g_waypointsprite_fontsize
float autocvar_g_waypointsprite_normdistance
float autocvar_g_waypointsprite_distancefadealpha
float autocvar_g_waypointsprite_alpha
float autocvar_g_waypointsprite_crosshairfadealpha
float waypointsprite_fadedistance
float autocvar_g_waypointsprite_minalpha
float autocvar_g_waypointsprite_scale
float autocvar_g_waypointsprite_distancealphaexponent
float autocvar_g_waypointsprite_edgeoffset_right
float autocvar_g_waypointsprite_edgeoffset_top
float autocvar_g_waypointsprite_distancefadescale
float autocvar_g_waypointsprite_edgefadescale
float autocvar_g_waypointsprite_crosshairfadescale
float waypointsprite_minscale
float autocvar_g_waypointsprite_edgefadedistance
float autocvar_g_waypointsprite_edgeoffset_bottom
float autocvar_g_waypointsprite_minscale
float autocvar_g_waypointsprite_distancefadedistancemultiplier
float waypointsprite_minalpha
float autocvar_g_waypointsprite_edgefadealpha

References autocvar__menu_alpha, autocvar_g_waypointsprite_alpha, autocvar_g_waypointsprite_crosshairfadealpha, autocvar_g_waypointsprite_crosshairfadedistance, autocvar_g_waypointsprite_crosshairfadescale, autocvar_g_waypointsprite_distancealphaexponent, autocvar_g_waypointsprite_distancefadealpha, autocvar_g_waypointsprite_distancefadedistancemultiplier, autocvar_g_waypointsprite_distancefadescale, autocvar_g_waypointsprite_edgefadealpha, autocvar_g_waypointsprite_edgefadedistance, autocvar_g_waypointsprite_edgefadescale, autocvar_g_waypointsprite_edgeoffset_bottom, autocvar_g_waypointsprite_edgeoffset_left, autocvar_g_waypointsprite_edgeoffset_right, autocvar_g_waypointsprite_edgeoffset_top, autocvar_g_waypointsprite_fontsize, autocvar_g_waypointsprite_minalpha, autocvar_g_waypointsprite_minscale, autocvar_g_waypointsprite_normdistance, autocvar_g_waypointsprite_scale, autocvar_g_waypointsprite_timealphaexponent, mi_scale, vlen(), waypointsprite_alpha, waypointsprite_count, waypointsprite_crosshairfadealpha, waypointsprite_crosshairfadedistance, waypointsprite_crosshairfadescale, waypointsprite_distancealphaexponent, waypointsprite_distancefadealpha, waypointsprite_distancefadedistance, waypointsprite_distancefadescale, waypointsprite_edgefadealpha, waypointsprite_edgefadedistance, waypointsprite_edgefadescale, waypointsprite_edgeoffset_bottom, waypointsprite_edgeoffset_left, waypointsprite_edgeoffset_right, waypointsprite_edgeoffset_top, waypointsprite_fadedistance, waypointsprite_fontsize, waypointsprite_minalpha, waypointsprite_minscale, waypointsprite_newcount, waypointsprite_normdistance, waypointsprite_scale, and waypointsprite_timealphaexponent.

Referenced by CSQC_UpdateView(), and STATIC_INIT().

◆ WaypointSprite_Load_Frames()

void WaypointSprite_Load_Frames ( string ext)

Definition at line 730 of file waypointsprites.qc.

731{
732 int dh = search_begin(strcat("models/sprites/*_frame*", ext), false, false);
733 if (dh < 0) return;
734 int ext_len = strlen(ext);
735 int n = search_getsize(dh);
736 for (int i = 0; i < n; ++i)
737 {
738 string s = search_getfilename(dh, i);
739 s = substring(s, 15, strlen(s) - 15 - ext_len); // strip models/sprites/ and extension
740
741 int o = strstrofs(s, "_frame", 0);
742 string sname = strcat("/spriteframes/", substring(s, 0, o));
743 string sframes = substring(s, o + 6, strlen(s) - o - 6);
744 int f = stof(sframes) + 1;
745 db_put(tempdb, sname, ftos(max(f, stof(db_get(tempdb, sname)))));
746 }
747 search_end(dh);
748}
int tempdb
Definition main.qh:203
#define strstrofs
#define strlen
ERASEABLE string db_get(int db, string key)
Definition map.qh:93
ERASEABLE void db_put(int db, string key, string value)
Definition map.qh:103
float stof(string val,...)
string substring(string s, float start, float length)
string search_getfilename(float handle, float num)
float search_getsize(float handle)
float search_begin(string pattern, float caseinsensitive, float quiet)
string ftos(float f)
void search_end(float handle)

References db_get(), db_put(), ftos(), max(), search_begin(), search_end(), search_getfilename(), search_getsize(), stof(), strcat(), strlen, strstrofs, substring(), and tempdb.

Referenced by STATIC_INIT().

◆ WaypointSprite_Ping()

◆ WaypointSprite_PlayerDead()

◆ WaypointSprite_PlayerGone()

◆ WaypointSprite_Reset()

void WaypointSprite_Reset ( entity this)

Definition at line 1017 of file waypointsprites.qc.

1018{
1019 // if a WP wants to time out, let it time out immediately; other WPs ought to be reset/killed by their owners
1020
1021 if (this.fade_time)
1022 WaypointSprite_Kill(this);
1023}
float fade_time
Definition common.qh:35

References entity(), fade_time, and WaypointSprite_Kill().

Referenced by WaypointSprite_Spawn().

◆ WaypointSprite_SendEntity()

bool WaypointSprite_SendEntity ( entity this,
entity to,
float sendflags )

Definition at line 9 of file waypointsprites.qc.

10{
11 WriteHeader(MSG_ENTITY, waypointsprites);
12
13 sendflags &= 0x7F;
14
15 if (this.max_health || (this.pain_finished && (time < this.pain_finished + 0.25)))
16 sendflags |= 0x80;
17
18 int hide_flags = 0;
19 if(this.currentammo == 1) hide_flags |= 1; // hideable
20 else if(this.currentammo == 2) hide_flags |= 2; // radar only
21 if(this.exteriormodeltoclient == to) hide_flags |= 2; // my own
22
23 MUTATOR_CALLHOOK(SendWaypoint, this, to, sendflags, hide_flags);
24 sendflags = M_ARGV(2, int);
25 hide_flags = M_ARGV(3, int);
26
27 WriteByte(MSG_ENTITY, sendflags);
29
30 if (sendflags & 0x80)
31 {
32 if (this.max_health)
33 WriteByte(MSG_ENTITY, (GetResource(this, RES_HEALTH) / this.max_health) * 191.0);
34 else
35 {
36 float dt = this.pain_finished - time;
37 dt = bound(0, dt * 32, 16383);
38 WriteByte(MSG_ENTITY, (dt & 0xFF00) / 256 + 192);
39 WriteByte(MSG_ENTITY, (dt & 0x00FF));
40 }
41 }
42
43 if (sendflags & 64)
44 WriteVector(MSG_ENTITY, this.origin);
45
46 if (sendflags & 1)
47 {
50 }
51
52 if (sendflags & 2)
54
55 if (sendflags & 4)
57
58 if (sendflags & 8)
60
61 if (sendflags & 16)
62 {
65 WriteShort(MSG_ENTITY, bound(0, this.fade_rate, 32767)); // maxdist
66 WriteByte(MSG_ENTITY, hide_flags);
67 }
68
69 if (sendflags & 32)
70 {
71 WriteByte(MSG_ENTITY, this.cnt); // icon on radar
72 WriteByte(MSG_ENTITY, this.colormod.x * 255.0);
73 WriteByte(MSG_ENTITY, this.colormod.y * 255.0);
74 WriteByte(MSG_ENTITY, this.colormod.z * 255.0);
75
77 {
78 float dt = bound(0, (this.waypointsprite_helpmetime - time) / 0.1, 255);
80 }
81 else
83 }
84
85 return true;
86}
float max_health
float pain_finished
float cnt
Definition powerups.qc:24
vector colormod
Definition powerups.qc:21
entity owner
Definition main.qh:87
float teleport_time
Definition player.qh:218
entity exteriormodeltoclient
WriteString(chan, ent.netname)
WriteByte(chan, ent.angles.y/DEC_FACTOR)
const int MSG_ENTITY
Definition net.qh:156
#define WriteHeader(to, id)
Definition net.qh:265
void WriteShort(float data, float dest, float desto)
void WriteCoord(float data, float dest, float desto)
float currentammo
Definition progsdefs.qc:142
fade_rate
Definition projectile.qh:14
float WaypointSprite_isteammate(entity e, entity e2)
float waypointsprite_helpmetime
string model1
string model3
string model2

References bound(), cnt, colormod, currentammo, entity(), exteriormodeltoclient, fade_rate, fade_time, GetResource(), M_ARGV, max_health, model1, model2, model3, MSG_ENTITY, MUTATOR_CALLHOOK, origin, owner, pain_finished, rule, team, teleport_time, time, WaypointSprite_getviewentity(), waypointsprite_helpmetime, WaypointSprite_isteammate(), wp_extra, WriteByte(), WriteCoord(), WriteHeader, WriteShort(), and WriteString().

Referenced by WaypointSprite_Spawn().

◆ WaypointSprite_Spawn()

entity WaypointSprite_Spawn ( entity spr,
float lifetime,
float maxdistance,
entity ref,
vector ofs,
entity showto,
float t,
entity own,
.entity ownfield,
float hideable,
entity icon )

Definition at line 1025 of file waypointsprites.qc.

1034{
1035 entity wp = new(sprite_waypoint);
1036 wp.fade_time = _lifetime; // if negative tells client not to fade it out
1037 if(_lifetime < 0)
1038 _lifetime = -_lifetime;
1039 wp.teleport_time = time + _lifetime;
1040 wp.exteriormodeltoclient = ref;
1041 if (ref)
1042 {
1043 wp.view_ofs = ofs;
1044 setorigin(wp, ref.origin + ofs);
1045 }
1046 else
1047 setorigin(wp, ofs);
1048 wp.enemy = showto;
1049 wp.team = t;
1050 wp.owner = own;
1051 wp.currentammo = hideable;
1052 if (own)
1053 {
1054 if (own.(ownfield))
1055 delete(own.(ownfield));
1056 own.(ownfield) = wp;
1057 wp.owned_by_field = ownfield;
1058 }
1059 wp.fade_rate = maxdistance;
1061 wp.nextthink = time;
1062 wp.model1 = spr.netname;
1064 wp.waypointsprite_visible_for_player = WaypointSprite_visible_for_player;
1065 wp.reset2 = WaypointSprite_Reset;
1066 wp.cnt = icon.m_id;
1067 wp.colormod = spr.m_color;
1069 return wp;
1070}
void Net_LinkEntity(entity e, bool docull, float dt, bool(entity this, entity to, int sendflags) sendfunc)
Definition net.qh:167
#define setthink(e, f)
#define setcefc(e, f)
bool WaypointSprite_Customize(entity this, entity client)
bool WaypointSprite_SendEntity(entity this, entity to, float sendflags)
void WaypointSprite_Think(entity this)
bool WaypointSprite_visible_for_player(entity this, entity player, entity view)
void WaypointSprite_Reset(entity this)

References entity(), Net_LinkEntity(), setcefc, setthink, time, vector, WaypointSprite_Customize(), WaypointSprite_Reset(), WaypointSprite_SendEntity(), WaypointSprite_Think(), and WaypointSprite_visible_for_player().

Referenced by buff_Waypoint_Spawn(), ctf_CheckStalemate(), ctf_FlagcarrierWaypoints(), ctf_Handle_Drop(), DropBall(), freezetag_Freeze(), Item_RespawnCountdown(), ka_DropEvent(), ka_RespawnBall(), kh_Key_Spawn(), Monster_Spawn_Setup(), MUTATOR_HOOKFUNCTION(), powerups_DropItem(), tka_DropEvent(), tka_RespawnBall(), vehicles_enter(), vehicles_showwp(), W_Seeker_Tag_Touch(), WaypointSprite_Attach(), WaypointSprite_AttachCarrier(), WaypointSprite_DeployFixed(), WaypointSprite_DeployPersonal(), and WaypointSprite_SpawnFixed().

◆ WaypointSprite_SpawnFixed()

entity WaypointSprite_SpawnFixed ( entity spr,
vector ofs,
entity own,
.entity ownfield,
entity icon )

◆ WaypointSprite_Think()

void WaypointSprite_Think ( entity this)

Definition at line 944 of file waypointsprites.qc.

945{
946 bool doremove = false;
947
948 if (this.fade_time && time >= this.teleport_time)
949 doremove = true;
950
951 if (this.exteriormodeltoclient)
952 WaypointSprite_UpdateOrigin(this, this.exteriormodeltoclient.origin + this.view_ofs);
953
954 if (doremove)
956 else
957 this.nextthink = time; // WHY?!?
958}
float nextthink
void WaypointSprite_UpdateOrigin(entity e, vector o)

References entity(), exteriormodeltoclient, fade_time, nextthink, teleport_time, time, WaypointSprite_Kill(), and WaypointSprite_UpdateOrigin().

Referenced by WaypointSprite_Spawn().

◆ WaypointSprite_UpdateBuildFinished()

void WaypointSprite_UpdateBuildFinished ( entity e,
float f )

Definition at line 831 of file waypointsprites.qc.

832{
833 if (f != e.pain_finished || e.max_health)
834 {
835 e.max_health = 0;
836 e.pain_finished = f;
837 e.SendFlags |= 0x80;
838 }
839}

References entity().

Referenced by buff_SetCooldown(), buff_Think(), Item_RespawnCountdown(), ons_ControlPoint_Icon_Damage(), ons_ControlPoint_Icon_Heal(), ons_ControlPoint_Icon_Spawn(), and vehicles_showwp().

◆ WaypointSprite_UpdateHealth()

◆ WaypointSprite_UpdateMaxHealth()

◆ WaypointSprite_UpdateOrigin()

void WaypointSprite_UpdateOrigin ( entity e,
vector o )

Definition at line 841 of file waypointsprites.qc.

842{
843 if (o != e.origin)
844 {
845 setorigin(e, o);
846 e.SendFlags |= 64;
847 }
848}

References entity(), and vector.

Referenced by WaypointSprite_Think().

◆ WaypointSprite_UpdateRule()

void WaypointSprite_UpdateRule ( entity e,
float t,
float r )

Definition at line 850 of file waypointsprites.qc.

851{
852 // no check, as this is never called without doing an actual change (usually only once)
853 e.rule = r;
854 e.team = t;
855 e.SendFlags |= 1;
856}

References entity().

Referenced by DropBall(), GiveBall(), Item_RespawnCountdown(), ka_DropEvent(), ka_TouchEvent(), kh_Key_AssignTo(), MUTATOR_HOOKFUNCTION(), ons_ControlPoint_Icon_Spawn(), ons_ControlPoint_Reset(), ons_ControlPoint_Setup(), ons_GeneratorReset(), ons_GeneratorSetup(), target_objective_decrease_activate(), tka_DropEvent(), tka_TouchEvent(), vehicles_showwp(), and W_Seeker_Tag_Touch().

◆ WaypointSprite_UpdateSprites()

void WaypointSprite_UpdateSprites ( entity e,
entity m1,
entity m2,
entity m3 )

Definition at line 787 of file waypointsprites.qc.

788{
789 string m1 = _m1.netname;
790 string m2 = _m2.netname;
791 string m3 = _m3.netname;
792 if (m1 != e.model1)
793 {
794 e.model1 = m1;
795 e.SendFlags |= 2;
796 }
797 if (m2 != e.model2)
798 {
799 e.model2 = m2;
800 e.SendFlags |= 4;
801 }
802 if (m3 != e.model3)
803 {
804 e.model3 = m3;
805 e.SendFlags |= 8;
806 }
807}

References entity().

Referenced by CommonCommand_editmob(), dompoint_captured(), dompointtouch(), kh_Key_AssignTo(), MUTATOR_HOOKFUNCTION(), ons_ControlPoint_UpdateSprite(), ons_Generator_UpdateSprite(), target_objective_decrease_activate(), and tka_TouchEvent().

◆ WaypointSprite_UpdateTeamRadar()

void WaypointSprite_UpdateTeamRadar ( entity e,
entity icon,
vector col )

Definition at line 858 of file waypointsprites.qc.

859{
860 // no check, as this is never called without doing an actual change (usually only once)
861 int i = icon.m_id;
862 int new_cnt = (e.cnt & BIT(7)) | (i & BITS(7));
863 if (new_cnt != e.cnt || col != e.colormod)
864 {
865 e.cnt = new_cnt;
866 e.colormod = col;
867 e.SendFlags |= 32;
868 }
869}

References BIT, BITS, entity(), and vector.

Referenced by buff_Waypoint_Spawn(), ctf_DelayedFlagSetup(), ctf_FlagcarrierWaypoints(), dompoint_captured(), dompointtouch(), monster_changeteam(), MUTATOR_HOOKFUNCTION(), MUTATOR_HOOKFUNCTION(), ons_ControlPoint_UpdateSprite(), and ons_Generator_UpdateSprite().

◆ WaypointSprite_visible_for_player()

bool WaypointSprite_visible_for_player ( entity this,
entity player,
entity view )

Definition at line 960 of file waypointsprites.qc.

961{
962 // personal waypoints
963 if (this.enemy && this.enemy != view)
964 return false;
965
966 // team waypoints
967 if (this.rule == SPRITERULE_SPECTATOR)
968 {
970 return false;
971 if (!warmup_stage && IS_PLAYER(view) && autocvar_sv_itemstime != 2)
972 return false;
973 }
974 else if (this.team && this.rule == SPRITERULE_DEFAULT)
975 {
976 if (this.team != view.team)
977 return false;
978 if (!IS_PLAYER(view))
979 return false;
980 }
981
982 return true;
983}
#define IS_PLAYER(s)
Definition player.qh:242
int autocvar_sv_itemstime
Definition itemstime.qh:4
entity enemy
Definition sv_ctf.qh:152

References autocvar_sv_itemstime, enemy, entity(), IS_PLAYER, rule, SPRITERULE_DEFAULT, SPRITERULE_SPECTATOR, team, and warmup_stage.

Referenced by buff_Waypoint_visible_for_player(), and WaypointSprite_Spawn().

Variable Documentation

◆ alpha

float alpha

Definition at line 126 of file waypointsprites.qh.

◆ autocvar_cl_hidewaypoints

bool autocvar_cl_hidewaypoints

Definition at line 30 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ autocvar_g_waypointsprite_alpha

float autocvar_g_waypointsprite_alpha

Definition at line 32 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_crosshairfadealpha

float autocvar_g_waypointsprite_crosshairfadealpha

Definition at line 33 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_crosshairfadedistance

float autocvar_g_waypointsprite_crosshairfadedistance

Definition at line 34 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_crosshairfadescale

float autocvar_g_waypointsprite_crosshairfadescale

Definition at line 35 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_distancealphaexponent

float autocvar_g_waypointsprite_distancealphaexponent

Definition at line 36 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_distancefadealpha

float autocvar_g_waypointsprite_distancefadealpha

Definition at line 37 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_distancefadedistancemultiplier

float autocvar_g_waypointsprite_distancefadedistancemultiplier

Definition at line 38 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_distancefadescale

float autocvar_g_waypointsprite_distancefadescale

Definition at line 39 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgefadealpha

float autocvar_g_waypointsprite_edgefadealpha

Definition at line 40 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgefadedistance

float autocvar_g_waypointsprite_edgefadedistance

Definition at line 41 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgefadescale

float autocvar_g_waypointsprite_edgefadescale

Definition at line 42 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgeoffset_bottom

float autocvar_g_waypointsprite_edgeoffset_bottom

Definition at line 43 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgeoffset_left

float autocvar_g_waypointsprite_edgeoffset_left

Definition at line 44 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgeoffset_right

float autocvar_g_waypointsprite_edgeoffset_right

Definition at line 45 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_edgeoffset_top

float autocvar_g_waypointsprite_edgeoffset_top

Definition at line 46 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_fontsize

float autocvar_g_waypointsprite_fontsize

Definition at line 47 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_iconcolor

bool autocvar_g_waypointsprite_iconcolor

Definition at line 62 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite().

◆ autocvar_g_waypointsprite_iconsize

float autocvar_g_waypointsprite_iconsize = 32

Definition at line 61 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite().

◆ autocvar_g_waypointsprite_itemstime

int autocvar_g_waypointsprite_itemstime

Definition at line 48 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite().

◆ autocvar_g_waypointsprite_minalpha

float autocvar_g_waypointsprite_minalpha

Definition at line 49 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_minscale

float autocvar_g_waypointsprite_minscale

Definition at line 50 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_normdistance

float autocvar_g_waypointsprite_normdistance

Definition at line 51 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_scale

float autocvar_g_waypointsprite_scale

Definition at line 52 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_spam

int autocvar_g_waypointsprite_spam

Definition at line 53 of file waypointsprites.qh.

Referenced by spritelookuptext().

◆ autocvar_g_waypointsprite_text

bool autocvar_g_waypointsprite_text

Definition at line 60 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite().

◆ autocvar_g_waypointsprite_timealphaexponent

float autocvar_g_waypointsprite_timealphaexponent

Definition at line 54 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ autocvar_g_waypointsprite_turrets

bool autocvar_g_waypointsprite_turrets = true

Definition at line 55 of file waypointsprites.qh.

Referenced by turret_draw2d().

◆ autocvar_g_waypointsprite_turrets_maxdist

float autocvar_g_waypointsprite_turrets_maxdist = 5000

Definition at line 56 of file waypointsprites.qh.

Referenced by turret_construct().

◆ autocvar_g_waypointsprite_turrets_onlyhurt

bool autocvar_g_waypointsprite_turrets_onlyhurt = false

Definition at line 58 of file waypointsprites.qh.

Referenced by turret_draw2d().

◆ autocvar_g_waypointsprite_turrets_text

bool autocvar_g_waypointsprite_turrets_text = false

Definition at line 57 of file waypointsprites.qh.

Referenced by turret_draw2d().

◆ autocvar_g_waypointsprite_uppercase

bool autocvar_g_waypointsprite_uppercase

Definition at line 59 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ autocvar_sv_waypointsprite_deadlifetime

float autocvar_sv_waypointsprite_deadlifetime

Definition at line 133 of file waypointsprites.qh.

Referenced by WaypointSprite_Init().

◆ autocvar_sv_waypointsprite_deployed_lifetime

float autocvar_sv_waypointsprite_deployed_lifetime

Definition at line 134 of file waypointsprites.qh.

Referenced by WaypointSprite_Init().

◆ autocvar_sv_waypointsprite_limitedrange

float autocvar_sv_waypointsprite_limitedrange

Definition at line 135 of file waypointsprites.qh.

Referenced by WaypointSprite_Init().

◆ model1

string model1

Definition at line 139 of file waypointsprites.qh.

Referenced by WaypointSprite_SendEntity().

◆ model2

string model2

Definition at line 140 of file waypointsprites.qh.

Referenced by Gametype::ATTRIB(), and WaypointSprite_SendEntity().

◆ model3

string model3

Definition at line 141 of file waypointsprites.qh.

Referenced by WaypointSprite_SendEntity().

◆ owned_by_field

entity owned_by_field

Definition at line 137 of file waypointsprites.qh.

◆ rule

◆ sprite

entity sprite

Definition at line 131 of file waypointsprites.qh.

◆ SPRITE_ARROW_SCALE

const float SPRITE_ARROW_SCALE = 1.0

Definition at line 93 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_BORDER

const float SPRITE_HEALTHBAR_BORDER = 2

Definition at line 90 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_BORDERALPHA

const float SPRITE_HEALTHBAR_BORDERALPHA = 1

Definition at line 91 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_HEALTHALPHA

const float SPRITE_HEALTHBAR_HEALTHALPHA = 0.5

Definition at line 92 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_HEIGHT

const float SPRITE_HEALTHBAR_HEIGHT = 7

Definition at line 88 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_MARGIN

const float SPRITE_HEALTHBAR_MARGIN = 6

Definition at line 89 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HEALTHBAR_WIDTH

const float SPRITE_HEALTHBAR_WIDTH = 104

Definition at line 87 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITE_HELPME_BLINK

const float SPRITE_HELPME_BLINK = 2

Definition at line 94 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and turret_draw2d().

◆ SPRITERULE_DEFAULT

◆ SPRITERULE_SPECTATOR

const int SPRITERULE_SPECTATOR = 2

◆ SPRITERULE_TEAMPLAY

◆ waypointsprite_alpha

float waypointsprite_alpha

Definition at line 85 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_attached

◆ waypointsprite_attachedforcarrier

◆ waypointsprite_count

float waypointsprite_count

Definition at line 96 of file waypointsprites.qh.

Referenced by spritelookuptext(), and WaypointSprite_Load().

◆ waypointsprite_crosshairfadealpha

float waypointsprite_crosshairfadealpha

Definition at line 79 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_crosshairfadedistance

float waypointsprite_crosshairfadedistance

Definition at line 81 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_crosshairfadescale

float waypointsprite_crosshairfadescale

Definition at line 80 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_deadlifetime

◆ waypointsprite_deployed_fixed

entity waypointsprite_deployed_fixed

◆ waypointsprite_deployed_lifetime

◆ waypointsprite_deployed_personal

◆ waypointsprite_distancealphaexponent

float waypointsprite_distancealphaexponent

Definition at line 68 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_distancefadealpha

float waypointsprite_distancefadealpha

Definition at line 82 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_distancefadedistance

float waypointsprite_distancefadedistance

Definition at line 84 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_distancefadescale

float waypointsprite_distancefadescale

Definition at line 83 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgefadealpha

float waypointsprite_edgefadealpha

Definition at line 72 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgefadedistance

float waypointsprite_edgefadedistance

Definition at line 74 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgefadescale

float waypointsprite_edgefadescale

Definition at line 73 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgeoffset_bottom

float waypointsprite_edgeoffset_bottom

Definition at line 75 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgeoffset_left

float waypointsprite_edgeoffset_left

Definition at line 76 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgeoffset_right

float waypointsprite_edgeoffset_right

Definition at line 77 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_edgeoffset_top

float waypointsprite_edgeoffset_top

Definition at line 78 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_fadedistance

float waypointsprite_fadedistance

Definition at line 64 of file waypointsprites.qh.

Referenced by turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_fontsize

float waypointsprite_fontsize

Definition at line 71 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_helpmetime

float waypointsprite_helpmetime

Definition at line 160 of file waypointsprites.qh.

Referenced by WaypointSprite_SendEntity().

◆ waypointsprite_limitedrange

float waypointsprite_limitedrange

◆ waypointsprite_minalpha

float waypointsprite_minalpha

Definition at line 67 of file waypointsprites.qh.

Referenced by turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_minscale

float waypointsprite_minscale

Definition at line 66 of file waypointsprites.qh.

Referenced by WaypointSprite_Load().

◆ waypointsprite_newcount

float waypointsprite_newcount

Definition at line 96 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and WaypointSprite_Load().

◆ waypointsprite_normdistance

float waypointsprite_normdistance

Definition at line 65 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_pingtime

float waypointsprite_pingtime

Definition at line 159 of file waypointsprites.qh.

◆ waypointsprite_scale

float waypointsprite_scale

Definition at line 70 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), turret_draw2d(), and WaypointSprite_Load().

◆ waypointsprite_timealphaexponent

float waypointsprite_timealphaexponent

Definition at line 69 of file waypointsprites.qh.

Referenced by Draw_WaypointSprite(), and WaypointSprite_Load().

◆ wp_extra

int wp_extra

Additional networked waypoint state, used for items, weapons, buffs.

Definition at line 6 of file waypointsprites.qh.

Referenced by Ent_WaypointSprite(), MUTATOR_HOOKFUNCTION(), spritelookupblinkvalue(), spritelookupcolor(), spritelookupicon(), spritelookuptext(), and WaypointSprite_SendEntity().