Add keyboard queue length to generic hud
[jpcrr.git] / lua / generichud.lua
blob27b322ad28667ef9c919f7359f24190dc562cd4c
1 dofile("textrender.lua");
3 keys = {}
4 keys.LEFT = 128 + 75;
5 keys.RIGHT = 128 + 77;
6 keys.UP = 128 + 72;
7 keys.DOWN = 128 + 80;
8 keys.SPACE = 57;
9 keys.LCTRL = 29;
10 keys.LALT = 56;
11 keys.LSHIFT = 42;
12 keys.RCTRL = 128 + 29;
13 keys.RALT = 128 + 56;
14 keys.RSHIFT = 54;
15 keys.ENTER = 28;
16 keys.ESC = 1;
18 print("Loading font...");
19 font, err = io.open_arch_read("unifont.jrsr");
20 if not font then
21 error("Can't open font: " .. err);
22 end
23 set_font_file(font);
24 print("Font loaded.");
26 while true do
27 jpcrr.next_frame();
28 jpcrr.hud.top_gap(3, 60);
29 clocktime = jpcrr.clock_time();
30 frame = tostring(math.ceil(3 * clocktime / 50000000));
32 render_text(3, 0, 0, "Timestamp: " .. tostring(clocktime) .. "(" .. frame .. ")", false, 255, 255, 0);
34 nextchar = jpcrr.read_word(0x41A) - 30;
35 lastchar = jpcrr.read_word(0x41C) - 30;
36 if lastchar < nextchar then
37 lastchar = lastchar + 32;
38 end
39 render_text(3, 320, 0, "KEYQ: " .. tostring((lastchar-nextchar)/2), false, 255, 255, 0);
41 index = 0;
42 for k, v in pairs(keys) do
43 if jpcrr.keypressed(v) then
44 render_text(3, index * 8, 20, k, false, 255, 255, 0);
45 end
46 index = index + #k + 1;
47 end
48 if jpcrr.joystick_state then
49 hA, hB, hC, hD, bA, bB, bC, bD = jpcrr.joystick_state();
50 else
51 render_text(3, 0 * 8, 40, false, "<Joystick status not available>", false, 255, 255, 0);
52 end
54 if bA then
55 render_text(3, 0 * 8, 40, "X", false, 255, 255, 0);
56 end
57 if hA then
58 render_text(3, 2 * 8, 40, tostring(hA), false, 255, 255, 0);
59 end
61 if bB then
62 render_text(3, 16 * 8, 40, "X", false, 255, 255, 0);
63 end
64 if hB then
65 render_text(3, 18 * 8, 40, tostring(hB), false, 255, 255, 0);
66 end
68 if bC then
69 render_text(3, 32 * 8, 40, "X", false, 255, 255, 0);
70 end
71 if hC then
72 render_text(3, 34 * 8, 40, tostring(hC), false, 255, 255, 0);
73 end
75 if bD then
76 render_text(3, 48 * 8, 40, "X", false, 255, 255, 0);
77 end
78 if hD then
79 render_text(3, 50 * 8, 40, tostring(hD), false, 255, 255, 0);
80 end
81 end