2 // these values match CPMA
4 // CPMA uses gravity 800 but the strength of Q3 gravity is frametime-dependent.
5 // It also differs slightly between ascending and descending, which we don't attempt to replicate.
6 // Modern CPMA has frametime-independent physics that ~match 125fps frametime-dependent.
7 // DeFRaG still has frametime-dependent physics and DFWC rules mandate 125fps.
8 // 125 * round(800/125) = 750 simulates 125fps Q3 gravity in Xonotic,
9 // tested mathematically by k9 and ingame with printf by bones_was_here.
12 // Taking into account the effect of velocity snapping, a general formula for origin.z k frames after jumping can be derived:
13 // kT(270 + (round(gT) - GT)/2) - 1/2 k^2 T round(gT)
14 // Inputting g=750, T=1/125 and solving on the 45th frame, we find that the jump height in Quake 3 is 48.528 units.
15 // Q3 test results: 48.527999872 in every test (at end of frame).
16 // Xonotic test results: 48.6 as expected by (270^2)/(2*750) (see: physicsX.cfg)
18 // Jump distance/duration:
19 // The above formula can also be used to calculate that landing in Q3 occurs after 89.93333... 8ms frames,
20 // for a duration of 720ms at end of frame, as predicted by (2*270)/750 (see: physicsX.cfg),
21 // so the expected distance is 230.4 units at 320ups.
22 // Q3 test results: 230.405274 230.405274 230.404723 230.404969 (at end of frame when ONGROUND is set).
23 // Xonotic test results: 230.39637 in every test (Xonotic can set ONGROUND earlier in the frame, when the collision occurs).
30 sv_accelerate 15 // from cpm1_dev_docs
32 // The cpm1_dev_docs.zip (only CPMA source code release) used friction 8,
33 // but friction is 6 in all ~modern CPMA releases, and in DeFRaG CPM.
38 sv_jumpvelocity_crouch 0
41 sv_airaccel_sideways_friction 0
43 sv_airaccel_qw_stretchfactor 0
44 sv_airstopaccelerate 2.5 // from cpm1_dev_docs
45 sv_airstrafeaccelerate 70 // from cpm1_dev_docs strafeaccelerate
46 sv_maxairstrafespeed 30 // from cpm1_dev_docs wishspeed
47 sv_airstrafeaccel_qw 0
48 sv_aircontrol 150 // from cpm1_dev_docs
49 sv_aircontrol_penalty 0
51 sv_aircontrol_backwards 0
52 sv_aircontrol_sidewards 0
53 sv_airspeedlimit_nonqw 0
54 sv_warsowbunny_turnaccel 0
55 sv_warsowbunny_accel 0.1593
56 sv_warsowbunny_topspeed 925
57 sv_warsowbunny_backtosideratio 0.8
61 // match the downhill ramp jumping behaviour of CPMA
63 sv_jumpspeedcap_max ""
64 // CPMA has ramp jumping
65 sv_jumpspeedcap_max_disable_on_ramps 1
66 g_teleport_maxspeed 400
67 g_teleport_minspeed 400
69 sv_gameplayfix_stepdown_maxspeed 0
70 g_movement_highspeed_q3_compat 1