summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cgame/cg_local.h1
-rw-r--r--src/cgame/cg_main.c2
-rw-r--r--src/cgame/cg_particles.c6
-rw-r--r--src/ui/ui_local.h2
-rw-r--r--src/ui/ui_main.c4
-rw-r--r--src/ui/ui_shared.h2
-rw-r--r--ui/ingame_options.menu23
7 files changed, 37 insertions, 3 deletions
diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h
index 66aea83e..b0ce4b6d 100644
--- a/src/cgame/cg_local.h
+++ b/src/cgame/cg_local.h
@@ -1476,6 +1476,7 @@ extern vmCvar_t cg_wwSmoothTime;
extern vmCvar_t cg_wwFollow;
extern vmCvar_t cg_wwToggle;
extern vmCvar_t cg_depthSortParticles;
+extern vmCvar_t cg_bounceParticles;
extern vmCvar_t cg_consoleLatency;
extern vmCvar_t cg_lightFlare;
extern vmCvar_t cg_debugParticles;
diff --git a/src/cgame/cg_main.c b/src/cgame/cg_main.c
index 7c868b56..f5402537 100644
--- a/src/cgame/cg_main.c
+++ b/src/cgame/cg_main.c
@@ -209,6 +209,7 @@ vmCvar_t cg_wwSmoothTime;
vmCvar_t cg_wwFollow;
vmCvar_t cg_wwToggle;
vmCvar_t cg_depthSortParticles;
+vmCvar_t cg_bounceParticles;
vmCvar_t cg_consoleLatency;
vmCvar_t cg_lightFlare;
vmCvar_t cg_debugParticles;
@@ -325,6 +326,7 @@ static cvarTable_t cvarTable[ ] =
{ &cg_wwFollow, "cg_wwFollow", "1", CVAR_ARCHIVE|CVAR_USERINFO },
{ &cg_wwToggle, "cg_wwToggle", "1", CVAR_ARCHIVE|CVAR_USERINFO },
{ &cg_depthSortParticles, "cg_depthSortParticles", "1", CVAR_ARCHIVE },
+ { &cg_bounceParticles, "cg_bounceParticles", "0", CVAR_ARCHIVE },
{ &cg_consoleLatency, "cg_consoleLatency", "3000", CVAR_ARCHIVE },
{ &cg_lightFlare, "cg_lightFlare", "3", CVAR_ARCHIVE },
{ &cg_debugParticles, "cg_debugParticles", "0", CVAR_CHEAT },
diff --git a/src/cgame/cg_particles.c b/src/cgame/cg_particles.c
index ce407549..9be34bd9 100644
--- a/src/cgame/cg_particles.c
+++ b/src/cgame/cg_particles.c
@@ -2101,6 +2101,12 @@ static void CG_EvaluateParticlePhysics( particle_t *p )
VectorMA( p->velocity, deltaTime, acceleration, p->velocity );
VectorMA( p->origin, deltaTime, p->velocity, newOrigin );
p->lastEvalTime = cg.time;
+
+ if( !cg_bounceParticles.integer )
+ {
+ VectorCopy( newOrigin, p->origin );
+ return;
+ }
CG_Trace( &trace, p->origin, mins, maxs, newOrigin,
CG_AttachmentCentNum( &ps->attachment ), CONTENTS_SOLID );
diff --git a/src/ui/ui_local.h b/src/ui/ui_local.h
index c2604af3..654cda4e 100644
--- a/src/ui/ui_local.h
+++ b/src/ui/ui_local.h
@@ -144,7 +144,7 @@ extern vmCvar_t ui_bank;
#define MAX_EDIT_LINE 256
#define MAX_MENUDEPTH 8
-#define MAX_MENUITEMS 96
+#define MAX_MENUITEMS 128
#define MTYPE_NULL 0
#define MTYPE_SLIDER 1
diff --git a/src/ui/ui_main.c b/src/ui/ui_main.c
index aadad4fa..a4016388 100644
--- a/src/ui/ui_main.c
+++ b/src/ui/ui_main.c
@@ -3769,6 +3769,7 @@ static void UI_Update(const char *name) {
trap_Cvar_SetValue( "r_inGameVideo", 1 );
trap_Cvar_SetValue( "cg_shadows", 1 );
trap_Cvar_SetValue( "cg_brassTime", 2500 );
+ trap_Cvar_SetValue( "cg_bounceParticles", 1 );
trap_Cvar_Set( "r_texturemode", "GL_LINEAR_MIPMAP_LINEAR" );
break;
case 1: // normal
@@ -3786,6 +3787,7 @@ static void UI_Update(const char *name) {
trap_Cvar_SetValue( "cg_brassTime", 2500 );
trap_Cvar_Set( "r_texturemode", "GL_LINEAR_MIPMAP_LINEAR" );
trap_Cvar_SetValue( "cg_shadows", 0 );
+ trap_Cvar_SetValue( "cg_bounceParticles", 0 );
break;
case 2: // fast
trap_Cvar_SetValue( "r_fullScreen", 1 );
@@ -3801,6 +3803,7 @@ static void UI_Update(const char *name) {
trap_Cvar_SetValue( "r_fastSky", 1 );
trap_Cvar_SetValue( "r_inGameVideo", 0 );
trap_Cvar_SetValue( "cg_brassTime", 0 );
+ trap_Cvar_SetValue( "cg_bounceParticles", 0 );
trap_Cvar_Set( "r_texturemode", "GL_LINEAR_MIPMAP_NEAREST" );
break;
case 3: // fastest
@@ -3817,6 +3820,7 @@ static void UI_Update(const char *name) {
trap_Cvar_SetValue( "cg_brassTime", 0 );
trap_Cvar_SetValue( "r_fastSky", 1 );
trap_Cvar_SetValue( "r_inGameVideo", 0 );
+ trap_Cvar_SetValue( "cg_bounceParticles", 0 );
trap_Cvar_Set( "r_texturemode", "GL_LINEAR_MIPMAP_NEAREST" );
break;
}
diff --git a/src/ui/ui_shared.h b/src/ui/ui_shared.h
index 202cda52..81d629b5 100644
--- a/src/ui/ui_shared.h
+++ b/src/ui/ui_shared.h
@@ -37,7 +37,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define MAX_MENUDEFFILE 4096
#define MAX_MENUFILE 32768
#define MAX_MENUS 256
-#define MAX_MENUITEMS 96
+#define MAX_MENUITEMS 128
#define MAX_COLOR_RANGES 10
#define MAX_OPEN_MENUS 16
diff --git a/ui/ingame_options.menu b/ui/ingame_options.menu
index 7bbcbb83..324114b0 100644
--- a/ui/ingame_options.menu
+++ b/ui/ingame_options.menu
@@ -1792,10 +1792,31 @@
name gsoftware
group optionsGrp
type ITEM_TYPE_MULTI
+ text "Particle Physics:"
+ cvar "cg_bounceParticles"
+ cvarFloatList { "Low Quality" 0 "High Quality" 1 }
+ rect 96 235 192 15
+ textalign ITEM_ALIGN_RIGHT
+ textalignx 100
+ textaligny 12
+ textscale .25
+ forecolor 1 1 1 1
+ visible 1
+ action
+ {
+ play "sound/misc/menu1.wav";
+ }
+ }
+
+ itemDef
+ {
+ name gsoftware
+ group optionsGrp
+ type ITEM_TYPE_MULTI
text "Light Flares:"
cvar "cg_lightFlare"
cvarFloatList { "Off" 0 "No Fade" 1 "Timed Fade" 2 "Real Fade" 3 }
- rect 96 235 192 15
+ rect 96 250 192 15
textalign ITEM_ALIGN_RIGHT
textalignx 100
textaligny 12