1 #include "cl_keepaway.qh"
3 #include <client/hud/panel/modicons.qh>
5 // Keepaway HUD mod icon
6 int kaball_prevstatus; // last remembered status
7 float kaball_statuschange_time; // time when the status changed
9 // we don't need to reset for keepaway since it immediately
10 // autocorrects prevstatus as to if the player has the ball or not
12 void HUD_Mod_Keepaway(vector pos, vector mySize)
14 mod_active = 1; // keepaway should always show the mod HUD
16 float BLINK_FACTOR = 0.15;
17 float BLINK_BASE = 0.85;
19 float kaball_alpha = BLINK_BASE + BLINK_FACTOR * cos(time * BLINK_FREQ);
21 int stat_items = STAT(ITEMS);
22 int kaball = (stat_items/IT_KEY1) & 1;
24 if(kaball != kaball_prevstatus)
26 kaball_statuschange_time = time;
27 kaball_prevstatus = kaball;
30 vector kaball_pos, kaball_size;
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);
36 kaball_pos = pos + eY * 0.25 * mySize.y;
37 kaball_size = vec2(mySize.x, 0.5 * mySize.y);
40 float kaball_statuschange_elapsedtime = time - kaball_statuschange_time;
41 float f = bound(0, kaball_statuschange_elapsedtime*2, 1);
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);
47 drawpic_aspect_skin(pos, "keepawayball_carrying", vec2(mySize.x, mySize.y), '1 1 1', panel_fg_alpha * kaball_alpha * f, DRAWFLAG_NORMAL);