[nexuiz-commits] r6664 - in trunk/data: . qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue May 5 03:13:19 EDT 2009


Author: div0
Date: 2009-05-05 03:13:14 -0400 (Tue, 05 May 2009)
New Revision: 6664

Modified:
   trunk/data/physics15.cfg
   trunk/data/physics151.cfg
   trunk/data/physics151b.cfg
   trunk/data/physics16rc1.cfg
   trunk/data/physics25.cfg
   trunk/data/physicsHavoc.cfg
   trunk/data/physicsQ.cfg
   trunk/data/physicsQ3.cfg
   trunk/data/physicsQBF.cfg
   trunk/data/physicsQBFplus.cfg
   trunk/data/physicsQBR.cfg
   trunk/data/qcsrc/server/cl_physics.qc
Log:
experimental CPMA-style physics mode (only server side atm, won't work until the engine is updated for it)


Modified: trunk/data/physics15.cfg
===================================================================
--- trunk/data/physics15.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physics15.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 0
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0.25
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 0

Modified: trunk/data/physics151.cfg
===================================================================
--- trunk/data/physics151.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physics151.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
-set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 0
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 0
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
+sv_friction_on_land 0

Modified: trunk/data/physics151b.cfg
===================================================================
--- trunk/data/physics151b.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physics151b.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 0
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 0

Modified: trunk/data/physics16rc1.cfg
===================================================================
--- trunk/data/physics16rc1.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physics16rc1.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
-set sv_friction_on_land 0.2
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 0
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 0
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
+sv_friction_on_land 0.2

Modified: trunk/data/physics25.cfg
===================================================================
--- trunk/data/physics25.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physics25.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 7
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0.35
+sv_airaccel_qw 0.95
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0.35
-set sv_airaccel_qw 0.95

Modified: trunk/data/physicsHavoc.cfg
===================================================================
--- trunk/data/physicsHavoc.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsHavoc.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 7
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0.65
+sv_airaccel_qw 0.95
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0.65
-set sv_airaccel_qw 0.95

Modified: trunk/data/physicsQ.cfg
===================================================================
--- trunk/data/physicsQ.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsQ.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 1
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 1

Modified: trunk/data/physicsQ3.cfg
===================================================================
--- trunk/data/physicsQ3.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsQ3.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -6,7 +6,11 @@
 sv_friction 6
 edgefriction 1
 sv_stepheight 18
-set sv_jumpvelocity 270
+sv_jumpvelocity 270
+sv_airaccel_sideways_friction 0
+sv_airaccel_qw 1
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0
-set sv_airaccel_qw 1

Modified: trunk/data/physicsQBF.cfg
===================================================================
--- trunk/data/physicsQBF.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsQBF.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0.8
+sv_airaccel_qw 1
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0.8
-set sv_airaccel_qw 1

Modified: trunk/data/physicsQBFplus.cfg
===================================================================
--- trunk/data/physicsQBFplus.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsQBFplus.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0.5
+sv_airaccel_qw 0.93
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0.5
-set sv_airaccel_qw 0.93

Modified: trunk/data/physicsQBR.cfg
===================================================================
--- trunk/data/physicsQBR.cfg	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/physicsQBR.cfg	2009-05-05 07:13:14 UTC (rev 6664)
@@ -5,7 +5,11 @@
 sv_friction 5
 edgefriction 1
 sv_stepheight 34
-set sv_jumpvelocity 300
+sv_jumpvelocity 300
+sv_airaccel_sideways_friction 0.3
+sv_airaccel_qw 0.93
+sv_airstopaccelerate 0
+sv_airstrafeaccelerate 0
+sv_maxairstrafespeed 0
+sv_aircontrol 0
 set sv_friction_on_land 0
-set sv_airaccel_sideways_friction 0.3
-set sv_airaccel_qw 0.93

Modified: trunk/data/qcsrc/server/cl_physics.qc
===================================================================
--- trunk/data/qcsrc/server/cl_physics.qc	2009-05-04 18:49:32 UTC (rev 6663)
+++ trunk/data/qcsrc/server/cl_physics.qc	2009-05-05 07:13:14 UTC (rev 6664)
@@ -7,6 +7,10 @@
 float sv_gravity;
 float sv_airaccel_sideways_friction;
 float sv_airaccel_qw;
+float sv_airstopaccelerate;
+float sv_airstrafeaccelerate;
+float sv_maxairstrafespeed;
+float sv_aircontrol;
 .float ladder_time;
 .entity ladder_entity;
 .float gravity;
@@ -346,6 +350,29 @@
 	self.angles_z =  smoothangles_z;
 }
 
+void CPM_PM_Aircontrol(vector wishdir, float wishspeed)
+{
+	float zspeed, xyspeed, dot, k;
+
+	if(self.movement_x == 0 || self.movement_y != 0)
+		return;
+	
+	zspeed = self.velocity_z;
+	self.velocity_z = 0;
+	xyspeed = vlen(self.velocity);
+	self.velocity = normalize(self.velocity);
+
+	dot = self.velocity * wishdir;
+	k = 32;
+	k *= sv_aircontrol*dot*dot*frametime;
+
+	if(dot > 0) // we can't change direction while slowing down
+		self.velocity = normalize(self.velocity * xyspeed + wishdir * k);
+
+	self.velocity = self.velocity * xyspeed;
+	self.velocity_z = zspeed;
+}
+
 .vector movement_old;
 .float buttons_old;
 .vector v_angle_old;
@@ -837,10 +864,22 @@
 			wishspeed = wishspeed * 0.5;
 		if (time >= self.teleport_time)
 		{
+			// CPM: air control
+			float wishspeed2;
+			wishspeed2 = wishspeed;
+			if(self.velocity * wishdir < 0)
+				airaccel = sv_airstopaccelerate;
+			if(self.movement_x == 0 && self.movement_y != 0)
+			{
+				wishspeed = min(wishspeed, sv_maxairstrafespeed);
+				airaccel = sv_airstrafeaccelerate;
+			}
+			// !CPM
+			
 			// NOTE: this does the same as the commented out old code if:
 			//   sv_airaccel_qw 0
 			//   sv_airaccel_sideways_friction 0
-			
+
 			float vel_straight;
 			float vel_z;
 			vector vel_perpend;
@@ -858,6 +897,9 @@
 			vel_perpend = vel_perpend * (1 - frametime * (wishspeed / maxairspd) * sv_airaccel_sideways_friction);
 
 			self.velocity = vel_straight * wishdir + vel_z * '0 0 1' + vel_perpend;
+			
+			if(sv_aircontrol)
+				CPM_PM_Aircontrol(wishdir, wishspeed2);
 
 			/*
 			f = wishspeed;// - (self.velocity * wishdir);



More information about the nexuiz-commits mailing list