1 #include "pressedkeys.qh"
3 #include <client/draw.qh>
7 void HUD_PressedKeys_Export(int fh)
9 // allow saving cvars that aesthetically change the panel into hud skin files
10 HUD_Write_Cvar("hud_panel_pressedkeys_aspect");
11 HUD_Write_Cvar("hud_panel_pressedkeys_attack");
14 void HUD_PressedKeys()
16 if(!autocvar__hud_configure)
18 if(!autocvar_hud_panel_pressedkeys || spectatee_status < 0) return;
19 if(spectatee_status <= 0 && autocvar_hud_panel_pressedkeys < 2) return;
22 HUD_Panel_LoadCvars();
27 if (autocvar_hud_panel_pressedkeys_dynamichud)
34 pos += '1 1 0' * panel_bg_padding;
35 mySize -= '2 2 0' * panel_bg_padding;
38 // force custom aspect
39 float aspect = autocvar_hud_panel_pressedkeys_aspect;
42 vector newSize = '0 0 0';
43 if(mySize.x/mySize.y > aspect)
45 newSize.x = aspect * mySize.y;
48 pos.x = pos.x + (mySize.x - newSize.x) / 2;
52 newSize.y = 1/aspect * mySize.x;
55 pos.y = pos.y + (mySize.y - newSize.y) / 2;
60 vector keysize = vec2(mySize.x / (14/4), mySize.y / (3 - !autocvar_hud_panel_pressedkeys_attack));
61 int pressedkeys = STAT(PRESSED_KEYS);
63 if(autocvar_hud_panel_pressedkeys_attack)
65 drawpic_aspect_skin(pos + eX * (3/4 * keysize.x), ((pressedkeys & KEY_ATCK) ? "key_atck_inv" : "key_atck"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
66 drawpic_aspect_skin(pos + eX * (7/4 * keysize.x), ((pressedkeys & KEY_ATCK2) ? "key_atck2_inv" : "key_atck2"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
70 drawpic_aspect_skin(pos, ((pressedkeys & KEY_CROUCH) ? "key_crouch_inv" : "key_crouch"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
71 drawpic_aspect_skin(pos + eX * (5/4 * keysize.x), ((pressedkeys & KEY_FORWARD) ? "key_forward_inv" : "key_forward"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
72 drawpic_aspect_skin(pos + eX * (10/4 * keysize.x), ((pressedkeys & KEY_JUMP) ? "key_jump_inv" : "key_jump"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
74 drawpic_aspect_skin(pos + eX * (1/4 * keysize.x), ((pressedkeys & KEY_LEFT) ? "key_left_inv" : "key_left"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
75 drawpic_aspect_skin(pos + eX * (5/4 * keysize.x), ((pressedkeys & KEY_BACKWARD) ? "key_backward_inv" : "key_backward"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);
76 drawpic_aspect_skin(pos + eX * (9/4 * keysize.x), ((pressedkeys & KEY_RIGHT) ? "key_right_inv" : "key_right"), keysize, '1 1 1', panel_fg_alpha, DRAWFLAG_NORMAL);