]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/color.qh
Merge branch 'master' into 'master'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / color.qh
index 7de70e8314e9dbe47cc6a9472257a415c1230f1d..3a3a61fe33731b1ad0116acce5ba5ac2982d826c 100644 (file)
@@ -3,11 +3,17 @@
 #include "string.qh"
 
 #define colormapPaletteColor(c, isPants) colormapPaletteColor_(c, isPants, time)
-[[eraseable]]
+ERASEABLE
 vector colormapPaletteColor_(int c, bool isPants, float t)
 {
+       // these colors are defined in gfx/colormap_palette.pl
+       // to generate them run: perl gfx/colormap_palette.pl > gfx/colormap_palette.lmp
+       // it will save them to gfx/colormap_palette.lmp (in the lmp format)
+       // and prints the cases of the following switch so they can be copy-pasted here
+
        switch (c)
        {
+               // generated by gfx/colormap_palette.pl
                case  0: return '1.000000 1.000000 1.000000';
                case  1: return '1.000000 0.333333 0.000000';
                case  2: return '0.000000 1.000000 0.501961';
@@ -25,18 +31,18 @@ vector colormapPaletteColor_(int c, bool isPants, float t)
                case 14: return '1.000000 0.666667 0.000000';
                case 15:
                        if (isPants)
-                               return '1 0 0' * (0.502 + 0.498 * sin(t / 2.7182818285 + 0.0000000000))
-                                      + '0 1 0' * (0.502 + 0.498 * sin(t / 2.7182818285 + 2.0943951024))
-                                      + '0 0 1' * (0.502 + 0.498 * sin(t / 2.7182818285 + 4.1887902048));
+                               return '1 0 0' * (0.502 + 0.498 * sin(t / M_E + 0))
+                                       + '0 1 0' * (0.502 + 0.498 * sin(t / M_E + M_PI * 2 / 3))
+                                       + '0 0 1' * (0.502 + 0.498 * sin(t / M_E + M_PI * 4 / 3));
                        else
-                               return '1 0 0' * (0.502 + 0.498 * sin(t / 3.1415926536 + 5.2359877560))
-                                      + '0 1 0' * (0.502 + 0.498 * sin(t / 3.1415926536 + 3.1415926536))
-                                      + '0 0 1' * (0.502 + 0.498 * sin(t / 3.1415926536 + 1.0471975512));
+                               return '1 0 0' * (0.502 + 0.498 * sin(t / M_PI + M_PI * 5 / 3))
+                                       + '0 1 0' * (0.502 + 0.498 * sin(t / M_PI + M_PI))
+                                       + '0 0 1' * (0.502 + 0.498 * sin(t / M_PI + M_PI * 1 / 3));
                default: return '0.000 0.000 0.000';
        }
 }
 
-[[eraseable]]
+ERASEABLE
 float rgb_mi_ma_to_hue(vector rgb, float mi, float ma)
 {
        if (mi == ma)
@@ -58,7 +64,7 @@ float rgb_mi_ma_to_hue(vector rgb, float mi, float ma)
        }
 }
 
-[[eraseable]]
+ERASEABLE
 vector hue_mi_ma_to_rgb(float hue, float mi, float ma)
 {
        vector rgb;
@@ -113,7 +119,7 @@ vector hue_mi_ma_to_rgb(float hue, float mi, float ma)
        return rgb;
 }
 
-[[eraseable]]
+ERASEABLE
 vector rgb_to_hsv(vector rgb)
 {
        float mi, ma;
@@ -131,13 +137,13 @@ vector rgb_to_hsv(vector rgb)
        return hsv;
 }
 
-[[eraseable]]
+ERASEABLE
 vector hsv_to_rgb(vector hsv)
 {
        return hue_mi_ma_to_rgb(hsv.x, hsv.z * (1 - hsv.y), hsv.z);
 }
 
-[[eraseable]]
+ERASEABLE
 vector rgb_to_hsl(vector rgb)
 {
        float mi, ma;
@@ -157,7 +163,7 @@ vector rgb_to_hsl(vector rgb)
        return hsl;
 }
 
-[[eraseable]]
+ERASEABLE
 vector hsl_to_rgb(vector hsl)
 {
        float mi, ma, maminusmi;
@@ -173,7 +179,7 @@ vector hsl_to_rgb(vector hsl)
        return hue_mi_ma_to_rgb(hsl.x, mi, ma);
 }
 
-[[eraseable]]
+ERASEABLE
 string rgb_to_hexcolor(vector rgb)
 {
        return strcat(