Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
cl_keepaway.qc
Go to the documentation of this file.
1#include "cl_keepaway.qh"
2
3#include <client/draw.qh>
5
6// Keepaway HUD mod icon
7int kaball_prevstatus; // last remembered status
8float kaball_statuschange_time; // time when the status changed
9
10// we don't need to reset for keepaway since it immediately
11// autocorrects prevstatus as to if the player has the ball or not
12
13void HUD_Mod_Keepaway(vector pos, vector mySize, bool should_draw)
14{
15 if (!should_draw)
16 return;
17
18 mod_active = 1; // keepaway should always show the mod HUD
19
20 float kaball_alpha = blink(0.85, 0.15, 5);
21
22 int kaball = (STAT(OBJECTIVE_STATUS) & KA_CARRYING);
23
24 if(kaball != kaball_prevstatus)
25 {
27 kaball_prevstatus = kaball;
28 }
29
30 vector kaball_pos, kaball_size;
31
32 if(mySize.x > mySize.y) {
33 kaball_pos = pos + eX * 0.25 * mySize.x;
34 kaball_size = vec2(0.5 * mySize.x, mySize.y);
35 } else {
36 kaball_pos = pos + eY * 0.25 * mySize.y;
37 kaball_size = vec2(mySize.x, 0.5 * mySize.y);
38 }
39
40 float kaball_statuschange_elapsedtime = time - kaball_statuschange_time;
41 float f = bound(0, kaball_statuschange_elapsedtime*2, 1);
42
43 if(kaball_prevstatus && f < 1)
44 drawpic_aspect_skin_expanding(kaball_pos, "keepawayball_carrying", kaball_size, '1 1 1', panel_fg_alpha * kaball_alpha, DRAWFLAG_NORMAL, f);
45
46 if(kaball)
47 drawpic_aspect_skin(pos, "keepawayball_carrying", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * kaball_alpha * f, DRAWFLAG_NORMAL);
48}
int kaball_prevstatus
Definition cl_keepaway.qc:7
void HUD_Mod_Keepaway(vector pos, vector mySize, bool should_draw)
float kaball_statuschange_time
Definition cl_keepaway.qc:8
void drawpic_aspect_skin_expanding(vector position, string pic, vector theScale, vector rgb, float theAlpha, float flag, float fadelerp)
Definition draw.qc:61
#define drawpic_aspect_skin(pos, pic, sz, color, theAlpha, drawflag)
Definition draw.qh:78
ERASEABLE float blink(float base, float range, float freq)
Definition util.qc:2274
const float DRAWFLAG_NORMAL
float time
float panel_fg_alpha
Definition hud.qh:169
const int KA_CARRYING
Definition keepaway.qh:29
#define STAT(...)
Definition stats.qh:82
float bound(float min, float value, float max)
bool mod_active
Definition modicons.qh:7
vector
Definition self.qh:92
const vector eY
Definition vector.qh:45
const vector eX
Definition vector.qh:44
#define vec2(...)
Definition vector.qh:90