]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
Make the sideways bobbing speed-based. Not ready but should be safe to use and test.
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 12 Jul 2010 18:05:47 +0000 (18:05 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 12 Jul 2010 18:05:47 +0000 (18:05 +0000)
From: MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10295 d7cf8633-e32d-0410-b094-e92efae38249

view.c

diff --git a/view.c b/view.c
index 087279362c8b6334875c03664128903e14b4105b..384c3e54e45f8503ebf9a9d428afccc6a16e4929 100644 (file)
--- a/view.c
+++ b/view.c
@@ -40,7 +40,7 @@ cvar_t cl_bob = {CVAR_SAVE, "cl_bob","0.02", "view bobbing amount"};
 cvar_t cl_bobcycle = {CVAR_SAVE, "cl_bobcycle","0.6", "view bobbing speed"};
 cvar_t cl_bobup = {CVAR_SAVE, "cl_bobup","0.5", "view bobbing adjustment that makes the up or down swing of the bob last longer"};
 
-cvar_t cl_bob_side = {CVAR_SAVE, "cl_bob_side","0.002", "view bobbing amount"};
+cvar_t cl_bob_side = {CVAR_SAVE, "cl_bob_side","0.02", "view bobbing amount"};
 cvar_t cl_bobcycle_side = {CVAR_SAVE, "cl_bobcycle_side","0.6", "view bobbing speed"};
 cvar_t cl_bobup_side = {CVAR_SAVE, "cl_bobup_side","0.5", "view bobbing adjustment that makes the sideways swing of the bob last longer"};
 
@@ -675,6 +675,7 @@ void V_CalcRefdef (void)
                                        {
                                                vec3_t bobvel;
                                                vec3_t forward, right, up;
+                                               float side, front;
                                                // LordHavoc: this code is *weird*, but not replacable (I think it
                                                // should be done in QC on the server, but oh well, quake is quake)
                                                // LordHavoc: figured out bobup: the time at which the sin is at 180
@@ -692,13 +693,16 @@ void V_CalcRefdef (void)
 
                                                // now we calculate the side and front of the player, between the X and Y axis
                                                AngleVectors(viewangles, forward, right, up);
+                                               // now the speed based on these angles. The division is for mathing vertical bobbing intensity
+                                               side = DotProduct (cl.velocity, right) / 1000;
+                                               front = DotProduct (cl.velocity, forward) / 1000;
                                                forward[0] *= bob;
                                                forward[1] *= bob;
                                                right[0] *= bob;
                                                right[1] *= bob;
-                                               // we use cl.cmd.sidemove with forward and cl.cmd.forwardmove with right so the side bobbing
-                                               // goes to the side when we walk forward and to the front when we strafe
-                                               VectorMAMAM(cl.cmd.sidemove, forward, cl.cmd.forwardmove, right, cl.cmd.upmove, up, bobvel);
+                                               // we use side with forward and front with right so the side bobbing goes
+                                               // to the side when we walk forward and to the front when we strafe.
+                                               VectorMAMAM(side, forward, front, right, 0, up, bobvel);
                                                vieworg[0] += bobvel[0];
                                                vieworg[1] += bobvel[1];
                                                // we also need to adjust gunorg, or this appears like pushing the gun!