]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/crosshairbutton.c
Merge remote branch 'origin/fruitiex/gakarmor'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / crosshairbutton.c
index a36a5a28fcb956500ef5f43aaf05c6239089c237..058bfd7eb16638eb4722631ce48d2f022685050d 100644 (file)
@@ -8,6 +8,7 @@ CLASS(XonoticCrosshairButton) EXTENDS(RadioButton)
 
        ATTRIB(XonoticCrosshairButton, useDownAsChecked, float, 1)
        ATTRIB(XonoticCrosshairButton, src3, string, string_null)
+       ATTRIB(XonoticCrosshairButton, src4, string, string_null)
 
        ATTRIB(XonoticCrosshairButton, cvarName, string, string_null)
        ATTRIB(XonoticCrosshairButton, cvarValueFloat, float, 0)
@@ -25,7 +26,7 @@ entity makeXonoticCrosshairButton(float theGroup, float theCrosshair)
        me.configureXonoticCrosshairButton(me, theGroup, theCrosshair);
        return me;
 }
-void configureXonoticCrosshairButtonXonoticCrosshairButton(entity me, float theGroup, float theCrosshair)
+void XonoticCrosshairButton_configureXonoticCrosshairButton(entity me, float theGroup, float theCrosshair)
 {
        me.cvarName = "crosshair";
        me.cvarValueFloat = theCrosshair;
@@ -33,8 +34,9 @@ void configureXonoticCrosshairButtonXonoticCrosshairButton(entity me, float theG
        me.configureRadioButton(me, string_null, me.fontSize, me.image, theGroup, 0);
        me.srcMulti = 1;
        me.src3 = strzone(strcat("/gfx/crosshair", ftos(me.cvarValueFloat)));
+       me.src4 = "/gfx/crosshairdot";
 }
-void setCheckedXonoticCrosshairButton(entity me, float val)
+void XonoticCrosshairButton_setChecked(entity me, float val)
 {
        if(val != me.checked)
        {
@@ -42,14 +44,14 @@ void setCheckedXonoticCrosshairButton(entity me, float val)
                me.saveCvars(me);
        }
 }
-void loadCvarsXonoticCrosshairButton(entity me)
+void XonoticCrosshairButton_loadCvars(entity me)
 {
        if not(me.cvarName)
                return;
 
        me.checked = (cvar(me.cvarName) == me.cvarValueFloat);
 }
-void saveCvarsXonoticCrosshairButton(entity me)
+void XonoticCrosshairButton_saveCvars(entity me)
 {
        if not(me.cvarName)
                return;
@@ -58,7 +60,7 @@ void saveCvarsXonoticCrosshairButton(entity me)
                cvar_set(me.cvarName, ftos(me.cvarValueFloat));
        // TODO on an apply button, read _cl_color and execute the color command for it
 }
-void drawXonoticCrosshairButton(entity me)
+void XonoticCrosshairButton_draw(entity me)
 {
        vector sz, rgb;
        float a;
@@ -76,12 +78,14 @@ void drawXonoticCrosshairButton(entity me)
 
        sz = draw_PictureSize(me.src3);
        sz = globalToBoxSize(sz, draw_scale);
-       sz = sz * cvar("crosshair_size");
+       sz = (10 * '1 1 0' + sz * cvar("crosshair_size")) * 0.05; // (10 * '1 1 0' + ...) * 0.05 here to make visible size changes happen also at bigger sizes
        if(sz_x > 0.95)
                sz = sz * (0.95 / sz_x);
        if(sz_y > 0.95)
                sz = sz * (0.95 / sz_y);
 
        draw_Picture('0.5 0.5 0' - 0.5 * sz, me.src3, sz, rgb, a);
+       if(cvar("crosshair_dot"))
+               draw_Picture('0.5 0.5 0' - 0.5 * sz * cvar("crosshair_dot_size"), me.src4, sz * cvar("crosshair_dot_size"), rgb, a * cvar("crosshair_dot_alpha"));
 }
 #endif