]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - palette.c
Fix engine not starting on Windows if linked against SDL > 2.0.5
[xonotic/darkplaces.git] / palette.c
index 7b6fb8d6bbc0b9bfb86e5b59bed5d7288731a5e6..f9d68bf5eeac36becb16ade92747602aff0e8e81 100644 (file)
--- a/palette.c
+++ b/palette.c
@@ -16,7 +16,9 @@ unsigned int palette_bgra_alpha[256];
 unsigned int palette_bgra_nocolormap[256];
 unsigned int palette_bgra_nocolormapnofullbrights[256];
 unsigned int palette_bgra_nofullbrights[256];
+unsigned int palette_bgra_nofullbrights_transparent[256];
 unsigned int palette_bgra_onlyfullbrights[256];
+unsigned int palette_bgra_onlyfullbrights_transparent[256];
 unsigned int palette_bgra_pantsaswhite[256];
 unsigned int palette_bgra_shirtaswhite[256];
 unsigned int palette_bgra_transparent[256];
@@ -133,11 +135,17 @@ static void Palette_SetupSpecialPalettes(void)
                palette_bgra_nofullbrights[i] = palette_bgra_complete[i];
        for (i = fullbright_start;i < fullbright_end;i++)
                palette_bgra_nofullbrights[i] = palette_bgra_complete[0];
+       for (i = 0;i < 256;i++)
+               palette_bgra_nofullbrights_transparent[i] = palette_bgra_nofullbrights[i];
+       palette_bgra_nofullbrights_transparent[transparentcolor] = 0;
 
        for (i = 0;i < 256;i++)
                palette_bgra_onlyfullbrights[i] = 0;
        for (i = fullbright_start;i < fullbright_end;i++)
                palette_bgra_onlyfullbrights[i] = palette_bgra_complete[i];
+       for (i = 0;i < 256;i++)
+               palette_bgra_onlyfullbrights_transparent[i] = palette_bgra_onlyfullbrights[i];
+       palette_bgra_onlyfullbrights_transparent[transparentcolor] = 0;
 
        for (i = 0;i < 256;i++)
                palette_bgra_nocolormapnofullbrights[i] = palette_bgra_complete[i];
@@ -196,7 +204,8 @@ static void Palette_LoadQ2Colormap(void)
                unsigned char *out = (unsigned char *) q2palette_bgra_complete; // palette is accessed as 32bit for speed reasons, but is created as 8bit bytes
                int i;
                LoadPCX_PaletteOnly(q2colormapfile, filesize, q2palette_rgb[0]);
-               for (i = 0;i < 256;i++)
+               // this stops at color 255 because it is a pink transparent color that we don't actually want to preserve color on.
+               for (i = 0;i < 255;i++)
                {
                        out[i*4+2] = q2palette_rgb[i][0];
                        out[i*4+1] = q2palette_rgb[i][1];