]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_tent.c
newline change?
[xonotic/darkplaces.git] / cl_tent.c
index d38ee2705302e708f7902778d315d78642c44c3b..971dc6ef28b3bd4c3ec97344c6849e2c2c7d7ccb 100644 (file)
--- a/cl_tent.c
+++ b/cl_tent.c
@@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 
-cvar_t cl_glowinglightning = {CVAR_SAVE, "cl_glowinglightning", "1"};
-
 int                    num_temp_entities;
 entity_t       cl_temp_entities[MAX_TEMP_ENTITIES];
 beam_t         cl_beams[MAX_BEAMS];
@@ -47,7 +45,6 @@ CL_ParseTEnt
 */
 void CL_InitTEnts (void)
 {
-       Cvar_RegisterVariable(&cl_glowinglightning);
        cl_sfx_wizhit = S_PrecacheSound ("wizard/hit.wav");
        cl_sfx_knighthit = S_PrecacheSound ("hknight/hit.wav");
        cl_sfx_tink1 = S_PrecacheSound ("weapons/tink1.wav");
@@ -117,25 +114,28 @@ void CL_ParseTEnt (void)
        int             rnd;
        int             colorStart, colorLength, count;
        float   velspeed, radius;
-       byte *tempcolor;
+       qbyte *tempcolor;
 
        type = MSG_ReadByte ();
        switch (type)
        {
        case TE_WIZSPIKE:                       // spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                CL_RunParticleEffect (pos, vec3_origin, 20, 30);
                S_StartSound (-1, 0, cl_sfx_wizhit, pos, 1, 1);
                break;
-               
+
        case TE_KNIGHTSPIKE:                    // spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                CL_RunParticleEffect (pos, vec3_origin, 226, 20);
                S_StartSound (-1, 0, cl_sfx_knighthit, pos, 1, 1);
                break;
-               
+
        case TE_SPIKE:                  // spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                // LordHavoc: changed to spark shower
                CL_SparkShower(pos, vec3_origin, 15);
                //CL_RunParticleEffect (pos, vec3_origin, 0, 10);
@@ -154,6 +154,7 @@ void CL_ParseTEnt (void)
                break;
        case TE_SPIKEQUAD:                      // quad spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                // LordHavoc: changed to spark shower
                CL_SparkShower(pos, vec3_origin, 15);
                //CL_RunParticleEffect (pos, vec3_origin, 0, 10);
@@ -174,6 +175,7 @@ void CL_ParseTEnt (void)
                break;
        case TE_SUPERSPIKE:                     // super spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                // LordHavoc: changed to dust shower
                CL_SparkShower(pos, vec3_origin, 30);
                //CL_RunParticleEffect (pos, vec3_origin, 0, 20);
@@ -192,6 +194,7 @@ void CL_ParseTEnt (void)
                break;
        case TE_SUPERSPIKEQUAD:                 // quad super spike hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                // LordHavoc: changed to dust shower
                CL_SparkShower(pos, vec3_origin, 30);
                //CL_RunParticleEffect (pos, vec3_origin, 0, 20);
@@ -228,8 +231,15 @@ void CL_ParseTEnt (void)
                dir[1] = MSG_ReadChar ();
                dir[2] = MSG_ReadChar ();
                count = MSG_ReadByte (); // amount of particles
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                CL_SparkShower(pos, dir, count);
                break;
+       case TE_PLASMABURN:
+               MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
+               CL_AllocDlight (NULL, pos, 200, 1, 1, 1, 1000, 0.2);
+               CL_PlasmaBurn(pos);
+               break;
                // LordHavoc: added for improved gore
        case TE_BLOODSHOWER:    // vaporized body
                MSG_ReadVector(pos); // mins
@@ -269,6 +279,7 @@ void CL_ParseTEnt (void)
 
        case TE_GUNSHOT:                        // bullet hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                // LordHavoc: changed to dust shower
                CL_SparkShower(pos, vec3_origin, 15);
                //CL_RunParticleEffect (pos, vec3_origin, 0, 20);
@@ -276,6 +287,7 @@ void CL_ParseTEnt (void)
 
        case TE_GUNSHOTQUAD:                    // quad bullet hitting wall
                MSG_ReadVector(pos);
+               Mod_FindNonSolidLocation(pos, cl.worldmodel);
                CL_SparkShower(pos, vec3_origin, 15);
                CL_AllocDlight (NULL, pos, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2);
                break;
@@ -285,7 +297,8 @@ void CL_ParseTEnt (void)
                Mod_FindNonSolidLocation(pos, cl.worldmodel);
                CL_ParticleExplosion (pos, false);
 //             CL_BlastParticles (pos, 120, 120);
-               CL_AllocDlight (NULL, pos, 350, 1.0f, 0.8f, 0.4f, 700, 0.5);
+               // LordHavoc: boosted color from 1.0, 0.8, 0.4 to 1.25, 1.0, 0.5
+               CL_AllocDlight (NULL, pos, 350, 1.25f, 1.0f, 0.5f, 700, 0.5);
                S_StartSound (-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
 
@@ -366,26 +379,26 @@ void CL_ParseTEnt (void)
 
        case TE_LIGHTNING1:                             // lightning bolts
                if (!cl_model_bolt)
-                       cl_model_bolt = Mod_ForName("progs/bolt.mdl", true, true, false);
+                       cl_model_bolt = Mod_ForName("progs/bolt.mdl", true, false, false);
                CL_ParseBeam (cl_model_bolt);
                break;
 
        case TE_LIGHTNING2:                             // lightning bolts
                if (!cl_model_bolt2)
-                       cl_model_bolt2 = Mod_ForName("progs/bolt2.mdl", true, true, false);
+                       cl_model_bolt2 = Mod_ForName("progs/bolt2.mdl", true, false, false);
                CL_ParseBeam (cl_model_bolt2);
                break;
 
        case TE_LIGHTNING3:                             // lightning bolts
                if (!cl_model_bolt3)
-                       cl_model_bolt3 = Mod_ForName("progs/bolt3.mdl", true, true, false);
+                       cl_model_bolt3 = Mod_ForName("progs/bolt3.mdl", true, false, false);
                CL_ParseBeam (cl_model_bolt3);
                break;
 
 // PGM 01/21/97
        case TE_BEAM:                           // grappling hook beam
                if (!cl_model_beam)
-                       cl_model_beam = Mod_ForName("progs/beam.mdl", true, true, false);
+                       cl_model_beam = Mod_ForName("progs/beam.mdl", true, false, false);
                CL_ParseBeam (cl_model_beam);
                break;
 // PGM 01/21/97
@@ -395,20 +408,20 @@ void CL_ParseTEnt (void)
                CL_ParseBeam (Mod_ForName(MSG_ReadString(), true, false, false));
                break;
 
-       case TE_LAVASPLASH:     
+       case TE_LAVASPLASH:
                pos[0] = MSG_ReadCoord ();
                pos[1] = MSG_ReadCoord ();
                pos[2] = MSG_ReadCoord ();
                CL_LavaSplash (pos);
                break;
-       
+
        case TE_TELEPORT:
                pos[0] = MSG_ReadCoord ();
                pos[1] = MSG_ReadCoord ();
                pos[2] = MSG_ReadCoord ();
                CL_TeleportSplash (pos);
                break;
-               
+
        case TE_EXPLOSION2:                             // color mapped explosion
                MSG_ReadVector(pos);
                Mod_FindNonSolidLocation(pos, cl.worldmodel);
@@ -416,11 +429,11 @@ void CL_ParseTEnt (void)
                colorLength = MSG_ReadByte ();
                CL_ParticleExplosion2 (pos, colorStart, colorLength);
 //             CL_BlastParticles (pos, 80, 80);
-               tempcolor = (byte *)&d_8to24table[(rand()%colorLength) + colorStart];
+               tempcolor = (qbyte *)&d_8to24table[(rand()%colorLength) + colorStart];
                CL_AllocDlight (NULL, pos, 350, tempcolor[0] * (1.0f / 255.0f), tempcolor[1] * (1.0f / 255.0f), tempcolor[2] * (1.0f / 255.0f), 700, 0.5);
                S_StartSound (-1, 0, cl_sfx_r_exp3, pos, 1, 1);
                break;
-               
+
        default:
                Host_Error ("CL_ParseTEnt: bad type %d", type);
        }
@@ -436,13 +449,13 @@ entity_t *CL_NewTempEntity (void)
 {
        entity_t        *ent;
 
-       if (cl_numvisedicts >= MAX_VISEDICTS)
+       if (r_refdef.numentities >= MAX_VISEDICTS)
                return NULL;
        if (num_temp_entities >= MAX_TEMP_ENTITIES)
                return NULL;
        ent = &cl_temp_entities[num_temp_entities++];
        memset (ent, 0, sizeof(*ent));
-       cl_visedicts[cl_numvisedicts++] = ent;
+       r_refdef.entities[r_refdef.numentities++] = &ent->render;
 
        ent->render.colormap = -1; // no special coloring
        ent->render.scale = 1;
@@ -515,10 +528,6 @@ void CL_UpdateTEnts (void)
                        ent->render.angles[0] = pitch;
                        ent->render.angles[1] = yaw;
                        ent->render.angles[2] = rand()%360;
-
-                       if (cl_glowinglightning.value > 0)
-                               CL_AllocDlight(&ent->render, ent->render.origin, lhrandom(200, 240), cl_glowinglightning.value * 0.25f, cl_glowinglightning.value * 0.25f, cl_glowinglightning.value * 0.25f, 0, 0);
-
                        VectorMA(org, 30, dist, org);
                        d -= 30;
                }