]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/menu/xonotic/crosshairpreview.qc
Header police
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / crosshairpreview.qc
1 #include "crosshairpreview.qh"
2 #ifndef CROSSHAIRPREVIEW_H
3 #define CROSSHAIRPREVIEW_H
4 #include "../item.qc"
5 CLASS(XonoticCrosshairPreview, Item)
6         METHOD(XonoticCrosshairPreview, configureXonoticCrosshairPreview, void(entity));
7         METHOD(XonoticCrosshairPreview, draw, void(entity));
8         ATTRIB(XonoticCrosshairPreview, src, string, string_null)
9         ATTRIB(XonoticCrosshairPreview, src2, string, string_null)
10         ATTRIB(XonoticCrosshairPreview, disabled, float, 0)
11         ATTRIB(XonoticCrosshairPreview, disabledAlpha, float, SKINALPHA_DISABLED)
12 ENDCLASS(XonoticCrosshairPreview)
13 entity makeXonoticCrosshairPreview();
14 #endif
15
16 #ifdef IMPLEMENTATION
17 entity makeXonoticCrosshairPreview()
18 {
19         entity me;
20         me = NEW(XonoticCrosshairPreview);
21         me.configureXonoticCrosshairPreview(me);
22         return me;
23 }
24
25 void XonoticCrosshairPreview_configureXonoticCrosshairPreview(entity me)
26 {
27         me.src = strzone(strcat("/gfx/crosshair", cvar_string("crosshair")));
28         me.src2 = "/gfx/crosshairdot";
29 }
30
31 void XonoticCrosshairPreview_draw(entity me)
32 {
33         float save;
34         save = draw_alpha;
35         if(me.disabled)
36                 draw_alpha *= me.disabledAlpha;
37
38         vector sz, rgb;
39         float a;
40         rgb = stov(cvar_string("crosshair_color"));
41         a = cvar("crosshair_alpha");
42         if(me.src)
43                 strunzone(me.src);
44         me.src = strzone(strcat("/gfx/crosshair", cvar_string("crosshair")));
45
46         sz = draw_PictureSize(me.src);
47         sz = globalToBoxSize(sz, me.size);
48         sz = sz * cvar("crosshair_size");
49
50         draw_Picture('0.5 0.5 0' - 0.5 * sz, me.src, sz, rgb, a);
51         if(cvar("crosshair_dot"))
52         {
53                 if(cvar("crosshair_dot_color_custom") && (cvar_string("crosshair_dot_color") != "0"))
54                         rgb = stov(cvar_string("crosshair_dot_color"));
55
56                 draw_Picture('0.5 0.5 0' - 0.5 * sz * cvar("crosshair_dot_size"), me.src2, sz * cvar("crosshair_dot_size"), rgb, a * cvar("crosshair_dot_alpha"));
57         }
58
59         draw_alpha = save;
60
61         SUPER(XonoticCrosshairPreview).draw(me);
62 }
63 #endif