]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_particles.c
made r_shownormals value control the length of the vectors shown, rather
[xonotic/darkplaces.git] / cl_particles.c
index ccbfce3400a721b5027923e4b3dd7a2cee70b975..a12e6844ab841ac60716182de6b58074b5d1e9c7 100644 (file)
@@ -178,7 +178,6 @@ cvar_t cl_particles_blood = {CVAR_SAVE, "cl_particles_blood", "1", "enables bloo
 cvar_t cl_particles_blood_alpha = {CVAR_SAVE, "cl_particles_blood_alpha", "1", "opacity of blood"};
 cvar_t cl_particles_blood_bloodhack = {CVAR_SAVE, "cl_particles_blood_bloodhack", "1", "make certain quake particle() calls create blood effects instead"};
 cvar_t cl_particles_bulletimpacts = {CVAR_SAVE, "cl_particles_bulletimpacts", "1", "enables bulletimpact effects"};
-cvar_t cl_particles_explosions_smoke = {CVAR_SAVE, "cl_particles_explosions_smokes", "0", "enables smoke from explosions"};
 cvar_t cl_particles_explosions_sparks = {CVAR_SAVE, "cl_particles_explosions_sparks", "1", "enables sparks from explosions"};
 cvar_t cl_particles_explosions_shell = {CVAR_SAVE, "cl_particles_explosions_shell", "0", "enables polygonal shell from explosions"};
 cvar_t cl_particles_rain = {CVAR_SAVE, "cl_particles_rain", "1", "enables rain effects"};
@@ -425,7 +424,6 @@ void CL_Particles_Init (void)
        Cvar_RegisterVariable (&cl_particles_blood);
        Cvar_RegisterVariable (&cl_particles_blood_alpha);
        Cvar_RegisterVariable (&cl_particles_blood_bloodhack);
-       Cvar_RegisterVariable (&cl_particles_explosions_smoke);
        Cvar_RegisterVariable (&cl_particles_explosions_sparks);
        Cvar_RegisterVariable (&cl_particles_explosions_shell);
        Cvar_RegisterVariable (&cl_particles_bulletimpacts);
@@ -1407,29 +1405,6 @@ void CL_ParticleExplosion (const vec3_t org)
                }
                else
                {
-                       // LordHavoc: smoke effect similar to UT2003, chews fillrate too badly up close
-                       // smoke puff
-                       if (cl_particles.integer && cl_particles_smoke.integer && cl_particles_explosions_smoke.integer)
-                       {
-                               for (i = 0;i < 32;i++)
-                               {
-                                       int k;
-                                       vec3_t v, v2;
-                                       for (k = 0;k < 16;k++)
-                                       {
-                                               v[0] = org[0] + lhrandom(-48, 48);
-                                               v[1] = org[1] + lhrandom(-48, 48);
-                                               v[2] = org[2] + lhrandom(-48, 48);
-                                               trace = CL_Move(org, vec3_origin, vec3_origin, v, MOVE_NOMONSTERS, NULL, SUPERCONTENTS_SOLID, true, false, NULL, false);
-                                               if (trace.fraction >= 0.1)
-                                                       break;
-                                       }
-                                       VectorSubtract(trace.endpos, org, v2);
-                                       VectorScale(v2, 2.0f, v2);
-                                       CL_NewParticle(pt_smoke, 0x202020, 0x404040, tex_smoke[rand()&7], 12, 0, 32, 64, 0, 0, org[0], org[1], org[2], v2[0], v2[1], v2[2], 0, 0, 0, 0);
-                               }
-                       }
-
                        if (cl_particles.integer && cl_particles_sparks.integer && cl_particles_explosions_sparks.integer)
                        {
                                for (i = 0;i < 512 * cl_particles_quality.value;i++)
@@ -1929,9 +1904,9 @@ void particletextureblotch(unsigned char *data, float radius, float red, float g
                                if (f > 1)
                                        f = 1;
                                d = data + (y * PARTICLETEXTURESIZE + x) * 4;
-                               d[0] += (int)(f * (red   - d[0]));
+                               d[0] += (int)(f * (blue  - d[0]));
                                d[1] += (int)(f * (green - d[1]));
-                               d[2] += (int)(f * (blue  - d[2]));
+                               d[2] += (int)(f * (red   - d[2]));
                        }
                }
        }
@@ -1942,9 +1917,9 @@ void particletextureclamp(unsigned char *data, int minr, int ming, int minb, int
        int i;
        for (i = 0;i < PARTICLETEXTURESIZE*PARTICLETEXTURESIZE;i++, data += 4)
        {
-               data[0] = bound(minr, data[0], maxr);
+               data[0] = bound(minb, data[0], maxb);
                data[1] = bound(ming, data[1], maxg);
-               data[2] = bound(minb, data[2], maxb);
+               data[2] = bound(minr, data[2], maxr);
        }
 }
 
@@ -2010,7 +1985,7 @@ static void R_InitParticleTexture (void)
        // we invert it again during the blendfunc to make it work...
 
 #ifndef DUMPPARTICLEFONT
-       particlefonttexture = loadtextureimage(particletexturepool, "particles/particlefont.tga", 0, 0, false, TEXF_ALPHA | TEXF_PRECACHE, true);
+       particlefonttexture = loadtextureimage(particletexturepool, "particles/particlefont.tga", false, TEXF_ALPHA | TEXF_PRECACHE, true);
        if (!particlefonttexture)
 #endif
        {
@@ -2134,10 +2109,10 @@ static void R_InitParticleTexture (void)
                }
 
 #ifdef DUMPPARTICLEFONT
-               Image_WriteTGARGBA ("particles/particlefont.tga", PARTICLEFONTSIZE, PARTICLEFONTSIZE, particletexturedata);
+               Image_WriteTGABGRA ("particles/particlefont.tga", PARTICLEFONTSIZE, PARTICLEFONTSIZE, particletexturedata);
 #endif
 
-               particlefonttexture = R_LoadTexture2D(particletexturepool, "particlefont", PARTICLEFONTSIZE, PARTICLEFONTSIZE, particletexturedata, TEXTYPE_RGBA, TEXF_ALPHA | TEXF_PRECACHE, NULL);
+               particlefonttexture = R_LoadTexture2D(particletexturepool, "particlefont", PARTICLEFONTSIZE, PARTICLEFONTSIZE, particletexturedata, TEXTYPE_BGRA, TEXF_ALPHA | TEXF_PRECACHE, NULL);
 
                Mem_Free(particletexturedata);
        }
@@ -2153,7 +2128,7 @@ static void R_InitParticleTexture (void)
        }
 
 #ifndef DUMPPARTICLEFONT
-       particletexture[tex_beam].texture = loadtextureimage(particletexturepool, "particles/nexbeam.tga", 0, 0, false, TEXF_ALPHA | TEXF_PRECACHE, true);
+       particletexture[tex_beam].texture = loadtextureimage(particletexturepool, "particles/nexbeam.tga", false, TEXF_ALPHA | TEXF_PRECACHE, true);
        if (!particletexture[tex_beam].texture)
 #endif
        {
@@ -2174,9 +2149,9 @@ static void R_InitParticleTexture (void)
                }
 
 #ifdef DUMPPARTICLEFONT
-               Image_WriteTGARGBA ("particles/nexbeam.tga", 64, 64, &data2[0][0][0]);
+               Image_WriteTGABGRA ("particles/nexbeam.tga", 64, 64, &data2[0][0][0]);
 #endif
-               particletexture[tex_beam].texture = R_LoadTexture2D(particletexturepool, "nexbeam", 16, 64, &data2[0][0][0], TEXTYPE_RGBA, TEXF_PRECACHE, NULL);
+               particletexture[tex_beam].texture = R_LoadTexture2D(particletexturepool, "nexbeam", 16, 64, &data2[0][0][0], TEXTYPE_BGRA, TEXF_PRECACHE, NULL);
        }
        particletexture[tex_beam].s1 = 0;
        particletexture[tex_beam].t1 = 0;