]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_sky.c
The gcc 2.95 problem was in fact OP_STORE_V doing nasty things to numbers that were...
[xonotic/darkplaces.git] / r_sky.c
diff --git a/r_sky.c b/r_sky.c
index 6f1cb06ac2074c853c5f36b7420b15cad15a1a43..d5b21c0d0ef348660dbdb8674b292a5c4975d3d0 100644 (file)
--- a/r_sky.c
+++ b/r_sky.c
@@ -1,6 +1,8 @@
 
 #include "quakedef.h"
+#include "image.h"
 
+// FIXME: fix skybox after vid_restart
 cvar_t r_sky = {CVAR_SAVE, "r_sky", "1"};
 qboolean skyavailable_quake;
 qboolean skyavailable_box;
@@ -73,7 +75,7 @@ int R_SetSkyBox(const char *sky)
                                continue;
                        }
                }
-               skyboxside[i] = R_LoadTexture(skytexturepool, va("skyboxside%d", i), image_width, image_height, image_rgba, TEXTYPE_RGBA, TEXF_PRECACHE);
+               skyboxside[i] = R_LoadTexture2D(skytexturepool, va("skyboxside%d", i), image_width, image_height, image_rgba, TEXTYPE_RGBA, TEXF_CLAMP | TEXF_PRECACHE, NULL);
                Mem_Free(image_rgba);
        }
 
@@ -122,8 +124,8 @@ static void R_SkyBox(void)
        varray_vertex[i * 4 + 0] = (x) * 16.0f;\
        varray_vertex[i * 4 + 1] = (y) * 16.0f;\
        varray_vertex[i * 4 + 2] = (z) * 16.0f;\
-       varray_texcoord[0][i * 4 + 0] = (s) * (254.0f/256.0f) + (1.0f/256.0f);\
-       varray_texcoord[0][i * 4 + 1] = (t) * (254.0f/256.0f) + (1.0f/256.0f);
+       varray_texcoord[0][i * 4 + 0] = (s);\
+       varray_texcoord[0][i * 4 + 1] = (t);
 
        memset(&m, 0, sizeof(m));
        m.blendfunc1 = GL_ONE;
@@ -206,10 +208,10 @@ static void skyspherecalc(void)
                for (i = 0;i <= skygridx;i++)
                {
                        b = i * skygridxrecip;
-                       x = cos(b * M_PI * 2);
+                       x = cos((b + 0.5) * M_PI);
                        v[0] = ax*x * dx;
                        v[1] = ay*x * dy;
-                       v[2] = -sin(b * M_PI * 2) * dz;
+                       v[2] = -sin((b + 0.5) * M_PI) * dz;
                        length = 3.0f / sqrt(v[0]*v[0]+v[1]*v[1]+(v[2]*v[2]*9));
                        *texcoord++ = v[0] * length;
                        *texcoord++ = v[1] * length;
@@ -357,7 +359,7 @@ void R_InitSky (qbyte *src, int bytesperpixel)
                        for (j=0 ; j<128 ; j++)
                        {
                                p = src[i*256 + j + 128];
-                               rgba = &d_8to24table[p];
+                               rgba = &palette_complete[p];
                                trans[(i*128) + j] = *rgba;
                                r += ((qbyte *)rgba)[0];
                                g += ((qbyte *)rgba)[1];
@@ -373,7 +375,7 @@ void R_InitSky (qbyte *src, int bytesperpixel)
 
        memcpy(skyupperlayerpixels, trans, 128*128*4);
 
-       solidskytexture = R_LoadTexture (skytexturepool, "sky_solidtexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_PRECACHE);
+       solidskytexture = R_LoadTexture2D(skytexturepool, "sky_solidtexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_PRECACHE, NULL);
 
        if (bytesperpixel == 4)
        {
@@ -391,14 +393,14 @@ void R_InitSky (qbyte *src, int bytesperpixel)
                                if (p == 0)
                                        trans[(i*128) + j] = transpix;
                                else
-                                       trans[(i*128) + j] = d_8to24table[p];
+                                       trans[(i*128) + j] = palette_complete[p];
                        }
                }
        }
 
        memcpy(skylowerlayerpixels, trans, 128*128*4);
 
-       alphaskytexture = R_LoadTexture (skytexturepool, "sky_alphatexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_ALPHA | TEXF_PRECACHE);
+       alphaskytexture = R_LoadTexture2D(skytexturepool, "sky_alphatexture", 128, 128, (qbyte *) trans, TEXTYPE_RGBA, TEXF_ALPHA | TEXF_PRECACHE, NULL);
 }
 
 void R_ResetQuakeSky(void)