]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/xonotic/colorpicker.c
Merge branch 'master' into terencehill/music_player
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / xonotic / colorpicker.c
index df9620696808337bf5e915f9bc8aa1f78e84fd7e..e0727373c14b3a4795db1cde2f3caadaec45bfbc 100644 (file)
@@ -53,7 +53,7 @@ vector hslimage_color(vector v, vector margin)
 
 vector color_hslimage(vector v, vector margin)
 {
-       vector pos;
+       vector pos = '0 0 0';
        v = rgb_to_hsl(v);
        if (v_y)
        {
@@ -83,7 +83,7 @@ float XonoticColorpicker_mouseDrag(entity me, vector coords)
                                carets = 1;
                                while (i - 2 - carets >= 0 && substring(me.controlledTextbox.text, i - 2 - carets, 1) == "^")
                                        ++carets;
-                               if (carets == 1 || mod(carets, 2) == 1) // first check is just an optimization
+                               if (carets & 1)
                                        if(strstrofs("0123456789", substring(me.controlledTextbox.text, i-1, 1), 0) >= 0)
                                        {
                                                me.controlledTextbox.keyDown(me.controlledTextbox, K_BACKSPACE, 8, 0);
@@ -100,7 +100,7 @@ float XonoticColorpicker_mouseDrag(entity me, vector coords)
                                carets = 1;
                                while (i - 5 - carets >= 0 && substring(me.controlledTextbox.text, i - 5 - carets, 1) == "^")
                                        ++carets;
-                               if (carets == 1 || mod(carets, 2) == 1) // first check is just an optimization
+                               if (carets & 1)
                                        if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-3, 1), 0) >= 0)
                                                if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-2, 1), 0) >= 0)
                                                        if(strstrofs("0123456789abcdefABCDEF", substring(me.controlledTextbox.text, i-1, 1), 0) >= 0)
@@ -117,6 +117,15 @@ float XonoticColorpicker_mouseDrag(entity me, vector coords)
                break;
        }
 
+       if(substring(me.controlledTextbox.text, i-1, 1) == "^")
+       {
+               carets = 1;
+               while (i - 1 - carets >= 0 && substring(me.controlledTextbox.text, i - 1 - carets, 1) == "^")
+                       ++carets;
+               if (carets & 1)
+                       me.controlledTextbox.enterText(me.controlledTextbox, "^"); // escape previous caret
+       }
+
        vector margin;
        margin = me.imagemargin;
        if(coords_x >= margin_x)