[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