From 111e880bee11be3687bf4a06ed5c768c98bbc1a6 Mon Sep 17 00:00:00 2001
From: Tim Angus <tim@ngus.net>
Date: Thu, 11 Dec 2003 01:29:18 +0000
Subject: * Upped *.particle file size limit to 32kb   (never thought that
 would be an issue :) * Added "bounce cull" to particle syntax

---
 src/cgame/cg_local.h     |  1 +
 src/cgame/cg_particles.c | 20 +++++++++++++++-----
 src/cgame/cg_weapons.c   |  2 ++
 src/game/g_combat.c      |  4 ++--
 4 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h
index 45b802f2..72ed253f 100644
--- a/src/cgame/cg_local.h
+++ b/src/cgame/cg_local.h
@@ -211,6 +211,7 @@ typedef struct baseParticle_s
 
   float           bounceFrac;
   float           bounceFracRandFrac;
+  qboolean        bounceCull;
 
   pLerpValues_t   radius;
   pLerpValues_t   alpha;
diff --git a/src/cgame/cg_particles.c b/src/cgame/cg_particles.c
index 1e9ac1fe..a96ec8db 100644
--- a/src/cgame/cg_particles.c
+++ b/src/cgame/cg_particles.c
@@ -562,10 +562,20 @@ static qboolean CG_ParseParticle( baseParticle_t *bp, char **text_p )
       if( !token )
         break;
 
-      CG_ParseValueAndVariance( token, &number, &randFrac );
+      if( !Q_stricmp( token, "cull" ) )
+      {
+        bp->bounceCull = qtrue;
+        
+        bp->bounceFrac = -1.0f;
+        bp->bounceFracRandFrac = 0.0f;
+      }
+      else
+      {
+        CG_ParseValueAndVariance( token, &number, &randFrac );
 
-      bp->bounceFrac = number;
-      bp->bounceFracRandFrac = randFrac;
+        bp->bounceFrac = number;
+        bp->bounceFracRandFrac = randFrac;
+      }
 
       continue;
     }
@@ -1183,7 +1193,7 @@ static qboolean CG_ParseParticleFile( const char *fileName )
   int           i;
   int           len;
   char          *token;
-  char          text[ 20000 ];
+  char          text[ 32000 ];
   char          psName[ MAX_QPATH ];
   qboolean      psNameSet = qfalse;
   fileHandle_t  f;
@@ -1704,7 +1714,7 @@ 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 ) ||
-      ( bp->cullOnStartSolid && trace.startsolid ) )
+      ( bp->cullOnStartSolid && trace.startsolid ) || bp->bounceCull )
   {
     if( cg_debugParticles.integer >= 1 )
       CG_Printf( "Particle in CONTENTS_NODROP or trace.startsolid\n" );
diff --git a/src/cgame/cg_weapons.c b/src/cgame/cg_weapons.c
index 2b1edc06..4f5235b2 100644
--- a/src/cgame/cg_weapons.c
+++ b/src/cgame/cg_weapons.c
@@ -529,6 +529,8 @@ static qboolean CG_ParseWeaponModeSection( weaponInfoMode_t *wim, char **text_p
 
   return qfalse;
 }
+
+
 /*
 ======================
 CG_ParseWeaponFile
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index f820b2b0..eb17c7e2 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -737,7 +737,7 @@ void G_InitDamageLocations( void )
       continue;
     }
     
-    if ( len >= MAX_LOCDAMAGE_TEXT )
+    if( len >= MAX_LOCDAMAGE_TEXT )
     {
       G_Printf( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i", filename, len, MAX_LOCDAMAGE_TEXT ) );
       trap_FS_FCloseFile( fileHandle );
@@ -762,7 +762,7 @@ void G_InitDamageLocations( void )
     if ( !fileHandle )
       continue;
     
-    if ( len >= MAX_LOCDAMAGE_TEXT )
+    if( len >= MAX_LOCDAMAGE_TEXT )
     {
       G_Printf( va( S_COLOR_RED "file too large: %s is %i, max allowed is %i", filename, len, MAX_LOCDAMAGE_TEXT ) );
       trap_FS_FCloseFile( fileHandle );
-- 
cgit