summaryrefslogtreecommitdiff
path: root/src/cgame/cg_particles.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgame/cg_particles.c')
-rw-r--r--src/cgame/cg_particles.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/cgame/cg_particles.c b/src/cgame/cg_particles.c
index 52b9203e..fee11a04 100644
--- a/src/cgame/cg_particles.c
+++ b/src/cgame/cg_particles.c
@@ -805,6 +805,12 @@ static qboolean CG_ParseParticle( baseParticle_t *bp, char **text_p )
continue;
}
+ else if( !Q_stricmp( token, "cullOnStartSolid" ) )
+ {
+ bp->cullOnStartSolid = qtrue;
+
+ continue;
+ }
else if( !Q_stricmp( token, "radius" ) )
{
token = COM_Parse( text_p );
@@ -1624,8 +1630,12 @@ static void CG_EvaluateParticlePhysics( particle_t *p )
}
//remove particles that get into a CONTENTS_NODROP brush
- if( ( trap_CM_PointContents( trace.endpos, 0 ) & CONTENTS_NODROP ) || trace.startsolid )
+ if( ( trap_CM_PointContents( trace.endpos, 0 ) & CONTENTS_NODROP ) ||
+ ( bp->cullOnStartSolid && trace.startsolid ) )
{
+ if( cg_debugParticles.integer >= 1 )
+ CG_Printf( "Particle in CONTENTS_NODROP or trace.startsolid\n" );
+
p->valid = qfalse;
return;
}