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) // Color should be 7+(rand()%8)
// not 8&~7+(rand()%8) // not 8&~7+(rand()%8)
break; break;
/*
case Q2TE_WIDOWBEAMOUT: 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; break;
case Q2TE_NUKEBLAST: 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; break;
*/
case Q2TE_WIDOWSPLASH: 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); 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")) if (P_RunParticleEffectTypeString(pos, NULL, 1, "te_widowsplash"))
P_RunParticleEffect(pos, NULL, 13*8, 256); P_RunParticleEffect(pos, NULL, 13*8, 256);
break; break;

View file

@ -96,15 +96,10 @@ typedef struct q2centity_s
void CLQ2_EntityEvent(entity_state_t *es){}; void CLQ2_EntityEvent(entity_state_t *es){};
void CLQ2_TeleporterParticles(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_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_TrapParticles(entity_t *ent){};
void CLQ2_BfgParticles(entity_t *ent){}; void CLQ2_BfgParticles(entity_t *ent){};
void CLQ2_FlyEffect(q2centity_t *ent, vec3_t org){}; 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){}; void CLQ2_BlasterTrail2(vec3_t oldorg, vec3_t neworg){};
@ -1779,19 +1774,22 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
} }
else if (effects & Q2EF_FLAG1) 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); V_AddLight (ent.origin, 225, 0.2, 0.05, 0.05);
} }
else if (effects & Q2EF_FLAG2) 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); V_AddLight (ent.origin, 225, 0.05, 0.05, 0.2);
} }
//====== //======
//ROGUE //ROGUE
else if (effects & Q2EF_TAGTRAIL) 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); V_AddLight (ent.origin, 225, 0.2, 0.2, 0.0);
} }
else if (effects & Q2EF_TRACKERTRAIL) else if (effects & Q2EF_TRACKERTRAIL)
@ -1801,12 +1799,10 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
float intensity; float intensity;
intensity = 50 + (500 * (sin(cl.time/500.0) + 1.0)); intensity = 50 + (500 * (sin(cl.time/500.0) + 1.0));
// FIXME - check out this effect in rendition // FIXME - check out this effect in rendition
// if(qrenderer == RQ_OPENGL) V_AddLight (ent.origin, intensity, -0.2, -0.2, -0.2);
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);
}
else else
{ {
CLQ2_Tracker_Shell (cent->lerp_origin); CLQ2_Tracker_Shell (cent->lerp_origin);
@ -1815,24 +1811,23 @@ void CLQ2_AddPacketEntities (q2frame_t *frame)
} }
else if (effects & Q2EF_TRACKER) else if (effects & Q2EF_TRACKER)
{ {
CLQ2_TrackerTrail (cent->lerp_origin, ent.origin, 0); if (P_ParticleTrail(cent->lerp_origin, ent.origin, P_FindParticleType("ef_tracker"), &cent->trailstate))
// FIXME - check out this effect in rendition P_ParticleTrailIndex(cent->lerp_origin, ent.origin, 0, 1, &cent->trailstate);
// if(qrenderer == QR_OPENGL) V_AddLight (ent.origin, 200, -0.2, -0.2, -0.2);
V_AddLight (ent.origin, 200, -0.2, -0.2, -0.2);
// else
// V_AddLight (ent.origin, -200, 0.2, 0.2, 0.2);
} }
//ROGUE //ROGUE
//====== //======
// RAFAEL // RAFAEL
else if (effects & Q2EF_GREENGIB) 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 // RAFAEL
else if (effects & Q2EF_IONRIPPER) 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); V_AddLight (ent.origin, 100, 0.2, 0.1, 0.1);
} }
// RAFAEL // RAFAEL