]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - physicsCPMA.cfg
Merge branch 'LegendaryGuard/fix_fireball_UVs' into 'master'
[xonotic/xonotic-data.pk3dir.git] / physicsCPMA.cfg
1 g_mod_physics CPMA
2 // these values match CPMA
3
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.
10
11 // Jump height:
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)
17
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).
24
25 sv_gravity 750
26
27 sv_maxspeed 320
28 sv_maxairspeed 320
29 sv_stopspeed 100
30 sv_accelerate 15 // from cpm1_dev_docs
31 sv_airaccelerate 1
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.
34 sv_friction 6
35 edgefriction 1
36 sv_stepheight 18
37 sv_jumpvelocity 270
38 sv_jumpvelocity_crouch 0
39 sv_wateraccelerate 4
40 sv_waterfriction 1
41 sv_airaccel_sideways_friction 0
42 sv_airaccel_qw 1
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
50 sv_aircontrol_power 2
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
58 sv_friction_on_land 0
59 sv_friction_slick 0
60 sv_doublejump 0
61 // match the downhill ramp jumping behaviour of CPMA
62 sv_jumpspeedcap_min 0
63 sv_jumpspeedcap_max ""
64 // CPMA has ramp jumping
65 sv_jumpspeedcap_max_disable_on_ramps 1
66 // FIXME: Q3 teleporters _set_ speed to 400, not cap it
67 g_teleport_maxspeed 400
68 sv_track_canjump 1
69 sv_gameplayfix_stepdown_maxspeed 0
70 g_movement_highspeed_q3_compat 1