X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=cl_tent.c;h=971dc6ef28b3bd4c3ec97344c6849e2c2c7d7ccb;hb=6f9bbc7b822c9d1553c278e14268c37eb4a3a7d8;hp=1cdc8e049a7bc08a37728dca26b410197b050d6d;hpb=b91033966317d4d6a2a6bdf2952291fc88e3f7c4;p=xonotic%2Fdarkplaces.git diff --git a/cl_tent.c b/cl_tent.c index 1cdc8e04..971dc6ef 100644 --- 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; @@ -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); } @@ -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; }