1
0
Fork 0
forked from fte/fteqw

fixes to several Q2 trails/tempents

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2178 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
TimeServ 2006-04-08 06:43:42 +00:00
parent e40c7f8a87
commit b85e3c46ca
2 changed files with 35 additions and 27 deletions

View file

@ -2284,20 +2284,33 @@ void CLQ2_ParseTEnt (void)
// Color should be 7+(rand()%8)
// not 8&~7+(rand()%8)
break;
/*
case Q2TE_WIDOWBEAMOUT:
CL_ParseWidow ();
// this one is really annoying, it's supposed to be a random choice
// between 2*8, 13*8, 21*8, 18*8, and it respreads every frame
// into a circle but it could be faked well enough, well except for
// the fact that these effects have ids associated with them
// sort of how beams have ents associated
{
int id = MSG_ReadShort();
}
if (P_RunParticleEffectTypeString(pos, NULL, 1, "te_widowbeamout"))
P_RunParticleEffect(pos, NULL, 13*8, 300);
break;
case Q2TE_NUKEBLAST:
CL_ParseNuke ();
// same problem as te_widowbeamout, but colors are a bit easier to manage
// and there's no id to read in
MSG_ReadPos (pos);
if (P_RunParticleEffectTypeString(pos, NULL, 1, "te_nukeblast"))
P_RunParticleEffect(pos, NULL, 110, 700);
break;
*/
case Q2TE_WIDOWSPLASH:
// there's the color issue like with te_widowbeamout, but the particles
// are spawned in an immediate circle and not substained, so it's much
// easier to manage
MSG_ReadPos (pos);
// this one is really annoying, it's supposed to be a random choice
// between 2*8, 13*8, 21*8, 18*8
if (P_RunParticleEffectTypeString(pos, NULL, 1, "te_widowsplash"))
P_RunParticleEffect(pos, NULL, 13*8, 256);
break;

View file

@ -96,15 +96,10 @@ typedef struct q2centity_s
void CLQ2_EntityEvent(entity_state_t *es){};
void CLQ2_TeleporterParticles(entity_state_t *es){};
void CLQ2_IonripperTrail(vec3_t oldorg, vec3_t neworg){};
void CLQ2_TrackerTrail(vec3_t oldorg, vec3_t neworg, int flags){};
void CLQ2_Tracker_Shell(vec3_t org){};
void CLQ2_TagTrail(vec3_t oldorg, vec3_t neworg, int flags){};
void CLQ2_FlagTrail(vec3_t oldorg, vec3_t neworg, int flags){};
void CLQ2_TrapParticles(entity_t *ent){};
void CLQ2_BfgParticles(entity_t *ent){};
void CLQ2_FlyEffect(q2centity_t *ent, vec3_t org){};
void CLQ2_DiminishingTrail(vec3_t oldorg, vec3_t neworg, q2centity_t *ent, unsigned int effects){};
void CLQ2_BlasterTrail2(vec3_t oldorg, vec3_t neworg){};
@ -1779,19 +1774,22 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
}
else if (effects & Q2EF_FLAG1)
{
CLQ2_FlagTrail (cent->lerp_origin, ent.origin, 242);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_flag1"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 242, 1, &cent->trailstate);
V_AddLight (ent.origin, 225, 0.2, 0.05, 0.05);
}
else if (effects & Q2EF_FLAG2)
{
CLQ2_FlagTrail (cent->lerp_origin, ent.origin, 115);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_flag2"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 115, 1, &cent->trailstate);
V_AddLight (ent.origin, 225, 0.05, 0.05, 0.2);
}
//======
//ROGUE
else if (effects & Q2EF_TAGTRAIL)
{
CLQ2_TagTrail (cent->lerp_origin, ent.origin, 220);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_tagtrail"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 220, 1, &cent->trailstate);
V_AddLight (ent.origin, 225, 0.2, 0.2, 0.0);
}
else if (effects & Q2EF_TRACKERTRAIL)
@ -1801,12 +1799,10 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
float intensity;
intensity = 50 + (500 * (sin(cl.time/500.0) + 1.0));
// FIXME - check out this effect in rendition
// if(qrenderer == RQ_OPENGL)
V_AddLight (ent.origin, intensity, -0.2, -0.2, -0.2);
// else
// V_AddLight (ent.origin, -1.0 * intensity, 0.2, 0.2, 0.2);
}
V_AddLight (ent.origin, intensity, -0.2, -0.2, -0.2);
}
else
{
CLQ2_Tracker_Shell (cent->lerp_origin);
@ -1815,24 +1811,23 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
}
else if (effects & Q2EF_TRACKER)
{
CLQ2_TrackerTrail (cent->lerp_origin, ent.origin, 0);
// FIXME - check out this effect in rendition
// if(qrenderer == QR_OPENGL)
V_AddLight (ent.origin, 200, -0.2, -0.2, -0.2);
// else
// V_AddLight (ent.origin, -200, 0.2, 0.2, 0.2);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_tracker"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 0, 1, &cent->trailstate);
V_AddLight (ent.origin, 200, -0.2, -0.2, -0.2);
}
//ROGUE
//======
// RAFAEL
else if (effects & Q2EF_GREENGIB)
{
CLQ2_DiminishingTrail (cent->lerp_origin, ent.origin, cent, effects);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_greengib"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 219, 8, &cent->trailstate);
}
// RAFAEL
else if (effects & Q2EF_IONRIPPER)
{
CLQ2_IonripperTrail (cent->lerp_origin, ent.origin);
if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_ionripper"), &cent->trailstate))
P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 228, 4, &cent->trailstate);
V_AddLight (ent.origin, 100, 0.2, 0.1, 0.1);
}
// RAFAEL