]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/physics.qh
Finish off the last of the stats
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / physics.qh
1 #ifndef COMMON_PHYSICS_H
2 #define COMMON_PHYSICS_H
3
4 // Client/server mappings
5
6 .entity conveyor;
7
8 .float race_penalty;
9
10 .float gravity;
11 .float swamp_slowdown;
12 .float lastflags;
13 .float lastground;
14 .float wasFlying;
15 .float spectatorspeed;
16
17 .vector movement_old;
18 .float buttons_old;
19 .vector v_angle_old;
20 .string lastclassname;
21
22 .float() PlayerPhysplug;
23 float AdjustAirAccelQW(float accelqw, float factor);
24
25 bool IsFlying(entity a);
26
27 #define PHYS_AMMO_FUEL(s) STAT(FUEL, s)
28
29 #ifdef CSQC
30
31         const int FL_WATERJUMP = 2048;  // player jumping out of water
32         const int FL_JUMPRELEASED = 4096;       // for jump debouncing
33
34         float PM_multijump_checkjump();
35         void PM_multijump();
36
37         .float watertype;
38         .float waterlevel;
39         .int items;
40
41         .vector movement;
42         .vector v_angle;
43
44 // TODO
45         #define IS_CLIENT(s)                                            (s).isplayermodel
46         #define IS_PLAYER(s)                                            (s).isplayermodel
47         #define isPushable(s)                                           (s).isplayermodel
48
49         //float player_multijump;
50         //float player_jumpheight;
51
52         #define PHYS_INPUT_ANGLES(s)                            input_angles
53 // TODO
54         #define PHYS_WORLD_ANGLES(s)                            input_angles
55
56         #define PHYS_INPUT_TIMELENGTH                           input_timelength
57         #define PHYS_INPUT_FRAMETIME                            serverdeltatime
58
59         #define PHYS_INPUT_MOVEVALUES(s)                        input_movevalues
60
61         #define PHYS_INPUT_BUTTON_MASK(s)               (input_buttons | 128 * (input_movevalues_x < 0) | 256 * (input_movevalues_x > 0) | 512 * (input_movevalues_y < 0) | 1024 * (input_movevalues_y > 0))
62         #define PHYS_INPUT_BUTTON_ATCK(s)                       !!(input_buttons & 1)
63         #define PHYS_INPUT_BUTTON_JUMP(s)                       !!(input_buttons & 2)
64         #define PHYS_INPUT_BUTTON_ATCK2(s)                      !!(input_buttons & 4)
65         #define PHYS_INPUT_BUTTON_ZOOM(s)                       !!(input_buttons & 8)
66         #define PHYS_INPUT_BUTTON_CROUCH(s)                     !!(input_buttons & 16)
67         #define PHYS_INPUT_BUTTON_HOOK(s)                       !!(input_buttons & 32)
68         #define PHYS_INPUT_BUTTON_USE(s)                        !!(input_buttons & 64)
69         #define PHYS_INPUT_BUTTON_BACKWARD(s)           !!(input_buttons & 128)
70         #define PHYS_INPUT_BUTTON_FORWARD(s)            !!(input_buttons & 256)
71         #define PHYS_INPUT_BUTTON_LEFT(s)                       !!(input_buttons & 512)
72         #define PHYS_INPUT_BUTTON_RIGHT(s)                      !!(input_buttons & 1024)
73         #define PHYS_INPUT_BUTTON_JETPACK(s)            !!(input_buttons & 4096)
74
75         #define PHYS_DEAD(s)                                            s.csqcmodel_isdead
76
77         #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE  !!(moveflags & MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE)
78         #define GAMEPLAYFIX_NOGRAVITYONGROUND                   cvar("sv_gameplayfix_nogravityonground")
79         #define GAMEPLAYFIX_Q2AIRACCELERATE                             cvar("sv_gameplayfix_q2airaccelerate")
80         #define GAMEPLAYFIX_EASIERWATERJUMP                     STAT(GAMEPLAYFIX_EASIERWATERJUMP)
81         #define GAMEPLAYFIX_DOWNTRACEONGROUND                   STAT(GAMEPLAYFIX_DOWNTRACEONGROUND)
82         #define GAMEPLAYFIX_STEPMULTIPLETIMES                   STAT(GAMEPLAYFIX_STEPMULTIPLETIMES)
83         #define GAMEPLAYFIX_UNSTICKPLAYERS                              STAT(GAMEPLAYFIX_UNSTICKPLAYERS)
84         #define GAMEPLAYFIX_STEPDOWN                                    STAT(GAMEPLAYFIX_STEPDOWN)
85
86         #define IS_DUCKED(s)                                            !!(s.flags & FL_DUCKED)
87         #define SET_DUCKED(s)                                           s.flags |= FL_DUCKED
88         #define UNSET_DUCKED(s)                                         s.flags &= ~FL_DUCKED
89
90         #define IS_JUMP_HELD(s)                                         !(s.flags & FL_JUMPRELEASED)
91         #define SET_JUMP_HELD(s)                                        s.flags &= ~FL_JUMPRELEASED
92         #define UNSET_JUMP_HELD(s)                                      s.flags |= FL_JUMPRELEASED
93
94         #define IS_ONGROUND(s)                                          !!(s.flags & FL_ONGROUND)
95         #define SET_ONGROUND(s)                                         s.flags |= FL_ONGROUND
96         #define UNSET_ONGROUND(s)                                       s.flags &= ~FL_ONGROUND
97
98         #define WAS_ONGROUND(s)                                         !!(s.lastflags & FL_ONGROUND)
99
100         #define ITEMS_STAT(s)                                           (s).items
101         #define BUFFS_STAT(s)                                           STAT(BUFFS)
102
103         #define PHYS_FROZEN(s)                                          STAT(FROZEN)
104
105         #define PHYS_DOUBLEJUMP                                         STAT(DOUBLEJUMP)
106
107         #define PHYS_BUGRIGS                                            STAT(BUGRIGS)
108         #define PHYS_BUGRIGS_ANGLE_SMOOTHING            STAT(BUGRIGS_ANGLE_SMOOTHING)
109         #define PHYS_BUGRIGS_PLANAR_MOVEMENT            STAT(BUGRIGS_PLANAR_MOVEMENT)
110         #define PHYS_BUGRIGS_REVERSE_SPEEDING           STAT(BUGRIGS_REVERSE_SPEEDING)
111         #define PHYS_BUGRIGS_FRICTION_FLOOR             STAT(BUGRIGS_FRICTION_FLOOR)
112         #define PHYS_BUGRIGS_AIR_STEERING                       STAT(BUGRIGS_AIR_STEERING)
113         #define PHYS_BUGRIGS_FRICTION_BRAKE             STAT(BUGRIGS_FRICTION_BRAKE)
114         #define PHYS_BUGRIGS_ACCEL                                      STAT(BUGRIGS_ACCEL)
115         #define PHYS_BUGRIGS_SPEED_REF                          STAT(BUGRIGS_SPEED_REF)
116         #define PHYS_BUGRIGS_SPEED_POW                          STAT(BUGRIGS_SPEED_POW)
117         #define PHYS_BUGRIGS_STEER                                      STAT(BUGRIGS_STEER)
118         #define PHYS_BUGRIGS_FRICTION_AIR                       STAT(BUGRIGS_FRICTION_AIR)
119         #define PHYS_BUGRIGS_CAR_JUMPING                        STAT(BUGRIGS_CAR_JUMPING)
120         #define PHYS_BUGRIGS_REVERSE_SPINNING           STAT(BUGRIGS_REVERSE_SPINNING)
121         #define PHYS_BUGRIGS_REVERSE_STOPPING           STAT(BUGRIGS_REVERSE_STOPPING)
122
123         #define PHYS_JUMPSPEEDCAP_MIN                           cvar_string("cl_jumpspeedcap_min")
124         #define PHYS_JUMPSPEEDCAP_MAX                           cvar_string("cl_jumpspeedcap_max")
125         #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS       STAT(MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS)
126
127         #define PHYS_CL_TRACK_CANJUMP(s)                        STAT(MOVEVARS_CL_TRACK_CANJUMP)
128         #define PHYS_TRACK_CANJUMP(s)                           STAT(MOVEVARS_TRACK_CANJUMP)
129         #define PHYS_ACCELERATE                                         getstatf(STAT_MOVEVARS_ACCELERATE)
130         #define PHYS_AIRACCEL_QW(s)                                     getstatf(STAT_MOVEVARS_AIRACCEL_QW)
131         #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s)       STAT(MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, s)
132         #define PHYS_AIRACCEL_SIDEWAYS_FRICTION         getstatf(STAT_MOVEVARS_AIRACCEL_SIDEWAYS_FRICTION)
133         #define PHYS_AIRACCELERATE                                      getstatf(STAT_MOVEVARS_AIRACCELERATE)
134         #define PHYS_AIRCONTROL                                         getstatf(STAT_MOVEVARS_AIRCONTROL)
135         #define PHYS_AIRCONTROL_PENALTY                         STAT(MOVEVARS_AIRCONTROL_PENALTY)
136         #define PHYS_AIRCONTROL_POWER                           STAT(MOVEVARS_AIRCONTROL_POWER)
137         #define PHYS_AIRSPEEDLIMIT_NONQW(s)                     STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW, s)
138         #define PHYS_AIRSTOPACCELERATE                          getstatf(STAT_MOVEVARS_AIRSTOPACCELERATE)
139         #define PHYS_AIRSTRAFEACCEL_QW(s)                       STAT(MOVEVARS_AIRSTRAFEACCEL_QW, s)
140         #define PHYS_AIRSTRAFEACCELERATE(s)                     getstatf(STAT_MOVEVARS_AIRSTRAFEACCELERATE)
141         #define PHYS_ENTGRAVITY(s)                                      STAT(MOVEVARS_ENTGRAVITY)
142         #define PHYS_FRICTION                                           getstatf(STAT_MOVEVARS_FRICTION)
143         #define PHYS_FRICTION_SLICK                                     STAT(MOVEVARS_FRICTION_SLICK)
144         #define PHYS_FRICTION_ONLAND                            STAT(MOVEVARS_FRICTION_ONLAND)
145         #define PHYS_GRAVITY                                            STAT(MOVEVARS_GRAVITY)
146         #define PHYS_HIGHSPEED                                          STAT(MOVEVARS_HIGHSPEED)
147         #define PHYS_JUMPVELOCITY                                       getstatf(STAT_MOVEVARS_JUMPVELOCITY)
148         #define PHYS_MAXAIRSPEED(s)                                     getstatf(STAT_MOVEVARS_MAXAIRSPEED)
149         #define PHYS_MAXAIRSTRAFESPEED                          getstatf(STAT_MOVEVARS_MAXAIRSTRAFESPEED)
150         #define PHYS_MAXSPEED(s)                                        getstatf(STAT_MOVEVARS_MAXSPEED)
151         #define PHYS_STEPHEIGHT                                         STAT(MOVEVARS_STEPHEIGHT)
152         #define PHYS_STOPSPEED                                          getstatf(STAT_MOVEVARS_STOPSPEED)
153         #define PHYS_WARSOWBUNNY_ACCEL                          getstatf(STAT_MOVEVARS_WARSOWBUNNY_ACCEL)
154         #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO        getstatf(STAT_MOVEVARS_WARSOWBUNNY_BACKTOSIDERATIO)
155         #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL        getstatf(STAT_MOVEVARS_WARSOWBUNNY_AIRFORWARDACCEL)
156         #define PHYS_WARSOWBUNNY_TOPSPEED                       getstatf(STAT_MOVEVARS_WARSOWBUNNY_TOPSPEED)
157         #define PHYS_WARSOWBUNNY_TURNACCEL                      getstatf(STAT_MOVEVARS_WARSOWBUNNY_TURNACCEL)
158
159         #define PHYS_WALLFRICTION                                       STAT(MOVEVARS_WALLFRICTION)
160
161         #define PHYS_JETPACK_ACCEL_UP                           STAT(JETPACK_ACCEL_UP)
162         #define PHYS_JETPACK_ACCEL_SIDE                         STAT(JETPACK_ACCEL_SIDE)
163         #define PHYS_JETPACK_ANTIGRAVITY                        STAT(JETPACK_ANTIGRAVITY)
164         #define PHYS_JETPACK_FUEL                                       STAT(JETPACK_FUEL)
165         #define PHYS_JETPACK_MAXSPEED_UP                        STAT(JETPACK_MAXSPEED_UP)
166         #define PHYS_JETPACK_MAXSPEED_SIDE                      STAT(JETPACK_MAXSPEED_SIDE)
167
168         #define PHYS_DODGING_FROZEN                                     STAT(DODGING_FROZEN)
169
170         #define PHYS_NOSTEP                                                     STAT(NOSTEP)
171         #define PHYS_JUMPSTEP                                           STAT(MOVEVARS_JUMPSTEP)
172
173 #elif defined(SVQC)
174
175         bool Physics_Valid(string thecvar);
176
177         .vector stat_pl_view_ofs;
178         .vector stat_pl_crouch_view_ofs;
179
180         .vector stat_pl_min;
181         .vector stat_pl_max;
182         .vector stat_pl_crouch_min;
183         .vector stat_pl_crouch_max;
184
185         .float stat_sv_airaccel_qw;
186         .float stat_sv_airspeedlimit_nonqw = _STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW);
187         .float stat_sv_maxspeed;
188         .float stat_movement_highspeed = _STAT(MOVEVARS_HIGHSPEED);
189
190         .float stat_sv_friction_on_land = _STAT(MOVEVARS_FRICTION_ONLAND);
191         .float stat_sv_friction_slick = _STAT(MOVEVARS_FRICTION_SLICK);
192
193         .float stat_doublejump = _STAT(DOUBLEJUMP);
194
195         .string stat_jumpspeedcap_min;
196         .string stat_jumpspeedcap_max;
197         .float stat_jumpspeedcap_disable_onramps = _STAT(MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS);
198
199         .float stat_jetpack_accel_side = _STAT(JETPACK_ACCEL_SIDE);
200         .float stat_jetpack_accel_up = _STAT(JETPACK_ACCEL_UP);
201         .float stat_jetpack_antigravity = _STAT(JETPACK_ANTIGRAVITY);
202         .float stat_jetpack_fuel = _STAT(JETPACK_FUEL);
203         .float stat_jetpack_maxspeed_up = _STAT(JETPACK_MAXSPEED_UP);
204         .float stat_jetpack_maxspeed_side = _STAT(JETPACK_MAXSPEED_SIDE);
205         .float stat_gameplayfix_easierwaterjump = _STAT(GAMEPLAYFIX_EASIERWATERJUMP);
206         .float stat_gameplayfix_downtracesupportsongroundflag = _STAT(GAMEPLAYFIX_DOWNTRACEONGROUND);
207         .float stat_gameplayfix_stepmultipletimes = _STAT(GAMEPLAYFIX_STEPMULTIPLETIMES);
208         .float stat_gameplayfix_unstickplayers = _STAT(GAMEPLAYFIX_UNSTICKPLAYERS);
209         .float stat_gameplayfix_stepdown = _STAT(GAMEPLAYFIX_STEPDOWN);
210
211         .float stat_bugrigs = _STAT(BUGRIGS);
212         .float stat_bugrigs_angle_smoothing = _STAT(BUGRIGS_ANGLE_SMOOTHING);
213         .float stat_bugrigs_planar_movement = _STAT(BUGRIGS_PLANAR_MOVEMENT);
214         .float stat_bugrigs_reverse_speeding = _STAT(BUGRIGS_REVERSE_SPEEDING);
215         .float stat_bugrigs_friction_floor = _STAT(BUGRIGS_FRICTION_FLOOR);
216         .float stat_bugrigs_air_steering = _STAT(BUGRIGS_AIR_STEERING);
217         .float stat_bugrigs_friction_brake = _STAT(BUGRIGS_FRICTION_BRAKE);
218         .float stat_bugrigs_accel = _STAT(BUGRIGS_ACCEL);
219         .float stat_bugrigs_speed_ref = _STAT(BUGRIGS_SPEED_REF);
220         .float stat_bugrigs_speed_pow = _STAT(BUGRIGS_SPEED_POW);
221         .float stat_bugrigs_steer = _STAT(BUGRIGS_STEER);
222         .float stat_bugrigs_friction_air = _STAT(BUGRIGS_FRICTION_AIR);
223         .float stat_bugrigs_car_jumping = _STAT(BUGRIGS_CAR_JUMPING);
224         .float stat_bugrigs_reverse_spinning = _STAT(BUGRIGS_REVERSE_SPINNING);
225         .float stat_bugrigs_reverse_stopping = _STAT(BUGRIGS_REVERSE_STOPPING);
226
227         // new properties
228         .float stat_sv_jumpvelocity;
229         .float stat_sv_maxairstrafespeed;
230         .float stat_sv_maxairspeed;
231         .float stat_sv_airstrafeaccelerate;
232         .float stat_sv_warsowbunny_turnaccel;
233         .float stat_sv_airaccel_sideways_friction;
234         .float stat_sv_aircontrol;
235         .float stat_sv_warsowbunny_airforwardaccel;
236         .float stat_sv_warsowbunny_topspeed;
237         .float stat_sv_warsowbunny_accel;
238         .float stat_sv_warsowbunny_backtosideratio;
239         .float stat_sv_friction;
240         .float stat_sv_accelerate;
241         .float stat_sv_stopspeed;
242         .float stat_sv_airaccelerate;
243         .float stat_sv_airstopaccelerate;
244
245         .float stat_nostep = _STAT(NOSTEP);
246         .float stat_jumpstep = _STAT(MOVEVARS_JUMPSTEP);
247
248         .bool stat_sv_track_canjump = _STAT(MOVEVARS_TRACK_CANJUMP);
249
250         #define PHYS_INPUT_ANGLES(s)                            s.v_angle
251         #define PHYS_WORLD_ANGLES(s)                            s.angles
252
253         #define PHYS_INPUT_TIMELENGTH                           frametime
254         #define PHYS_INPUT_FRAMETIME                            sys_frametime
255
256         #define PHYS_INPUT_MOVEVALUES(s)                        s.movement
257         // TODO: cache
258         #define PHYS_INPUT_BUTTON_MASK(s)               (s.BUTTON_ATCK | 2 * s.BUTTON_JUMP | 4 * s.BUTTON_ATCK2 | 8 * s.BUTTON_ZOOM | 16 * s.BUTTON_CROUCH | 32 * s.BUTTON_HOOK | 64 * s.BUTTON_USE | 128 * (s.movement_x < 0) | 256 * (s.movement_x > 0) | 512 * (s.movement_y < 0) | 1024 * (s.movement_y > 0))
259         #define PHYS_INPUT_BUTTON_ATCK(s)                       s.BUTTON_ATCK
260         #define PHYS_INPUT_BUTTON_JUMP(s)                       s.BUTTON_JUMP
261         #define PHYS_INPUT_BUTTON_ATCK2(s)                      s.BUTTON_ATCK2
262         #define PHYS_INPUT_BUTTON_ZOOM(s)                       s.BUTTON_ZOOM
263         #define PHYS_INPUT_BUTTON_CROUCH(s)                     s.BUTTON_CROUCH
264         #define PHYS_INPUT_BUTTON_HOOK(s)                       s.BUTTON_HOOK
265         #define PHYS_INPUT_BUTTON_USE(s)                        s.BUTTON_USE
266         #define PHYS_INPUT_BUTTON_BACKWARD(s)           (s.movement_x < 0)
267         #define PHYS_INPUT_BUTTON_FORWARD(s)            (s.movement_x > 0)
268         #define PHYS_INPUT_BUTTON_LEFT(s)                       (s.movement_y < 0)
269         #define PHYS_INPUT_BUTTON_RIGHT(s)                      (s.movement_y > 0)
270         #define PHYS_INPUT_BUTTON_JETPACK(s)            s.BUTTON_JETPACK
271
272         #define PHYS_DEAD(s)                                            s.deadflag != DEAD_NO
273
274         #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE  autocvar_sv_gameplayfix_gravityunaffectedbyticrate
275         #define GAMEPLAYFIX_NOGRAVITYONGROUND                   cvar("sv_gameplayfix_nogravityonground")
276         #define GAMEPLAYFIX_Q2AIRACCELERATE                             autocvar_sv_gameplayfix_q2airaccelerate
277         #define GAMEPLAYFIX_EASIERWATERJUMP                             cvar("sv_gameplayfix_easierwaterjump")
278         #define GAMEPLAYFIX_DOWNTRACEONGROUND                   cvar("sv_gameplayfix_downtracesupportsongroundflag")
279         #define GAMEPLAYFIX_STEPMULTIPLETIMES                   cvar("sv_gameplayfix_stepmultipletimes")
280         #define GAMEPLAYFIX_UNSTICKPLAYERS                              cvar("sv_gameplayfix_unstickplayers")
281         #define GAMEPLAYFIX_STEPDOWN                                    cvar("sv_gameplayfix_stepdown")
282
283         #define IS_DUCKED(s)                                            s.crouch
284         #define SET_DUCKED(s)                                           s.crouch = true
285         #define UNSET_DUCKED(s)                                         s.crouch = false
286
287         #define IS_JUMP_HELD(s)                                         !(s.flags & FL_JUMPRELEASED)
288         #define SET_JUMP_HELD(s)                                        s.flags &= ~FL_JUMPRELEASED
289         #define UNSET_JUMP_HELD(s)                                      s.flags |= FL_JUMPRELEASED
290
291         #define IS_ONGROUND(s)                                          !!(s.flags & FL_ONGROUND)
292         #define SET_ONGROUND(s)                                         s.flags |= FL_ONGROUND
293         #define UNSET_ONGROUND(s)                                       s.flags &= ~FL_ONGROUND
294
295         #define WAS_ONGROUND(s)                                         !!((s).lastflags & FL_ONGROUND)
296
297         #define ITEMS_STAT(s)                                           s.items
298         #define BUFFS_STAT(s)                                           (s).buffs
299
300         #define PHYS_FROZEN(s)                                          s.frozen
301
302         #define PHYS_DOUBLEJUMP                                         autocvar_sv_doublejump
303
304         #define PHYS_BUGRIGS                                            g_bugrigs
305         #define PHYS_BUGRIGS_ANGLE_SMOOTHING            g_bugrigs_angle_smoothing
306         #define PHYS_BUGRIGS_PLANAR_MOVEMENT            g_bugrigs_planar_movement
307         #define PHYS_BUGRIGS_REVERSE_SPEEDING           g_bugrigs_reverse_speeding
308         #define PHYS_BUGRIGS_FRICTION_FLOOR                     g_bugrigs_friction_floor
309         #define PHYS_BUGRIGS_AIR_STEERING                       g_bugrigs_air_steering
310         #define PHYS_BUGRIGS_FRICTION_BRAKE                     g_bugrigs_friction_brake
311         #define PHYS_BUGRIGS_ACCEL                                      g_bugrigs_accel
312         #define PHYS_BUGRIGS_SPEED_REF                          g_bugrigs_speed_ref
313         #define PHYS_BUGRIGS_SPEED_POW                          g_bugrigs_speed_pow
314         #define PHYS_BUGRIGS_STEER                                      g_bugrigs_steer
315         #define PHYS_BUGRIGS_FRICTION_AIR                       g_bugrigs_friction_air
316         #define PHYS_BUGRIGS_CAR_JUMPING                        g_bugrigs_planar_movement_car_jumping
317         #define PHYS_BUGRIGS_REVERSE_SPINNING           g_bugrigs_reverse_spinning
318         #define PHYS_BUGRIGS_REVERSE_STOPPING           g_bugrigs_reverse_stopping
319
320         #define PHYS_JUMPSPEEDCAP_MIN                           autocvar_sv_jumpspeedcap_min
321         #define PHYS_JUMPSPEEDCAP_MAX                           autocvar_sv_jumpspeedcap_max
322         #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS       autocvar_sv_jumpspeedcap_max_disable_on_ramps
323
324         #define PHYS_CL_TRACK_CANJUMP(s)                        s.cvar_cl_movement_track_canjump
325         #define PHYS_TRACK_CANJUMP(s)                           s.stat_sv_track_canjump
326         #define PHYS_ACCELERATE                                         self.stat_sv_accelerate
327         #define PHYS_AIRACCEL_QW(s)                                     s.stat_sv_airaccel_qw
328         #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s)       STAT(MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, s)
329         #define PHYS_AIRACCEL_SIDEWAYS_FRICTION         self.stat_sv_airaccel_sideways_friction
330         #define PHYS_AIRACCELERATE                                      self.stat_sv_airaccelerate
331         #define PHYS_AIRCONTROL                                         self.stat_sv_aircontrol
332         #define PHYS_AIRCONTROL_PENALTY                         STAT(MOVEVARS_AIRCONTROL_PENALTY, self)
333         #define PHYS_AIRCONTROL_POWER                           STAT(MOVEVARS_AIRCONTROL_POWER, self)
334         #define PHYS_AIRSPEEDLIMIT_NONQW(s)                     STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW, s)
335         #define PHYS_AIRSTOPACCELERATE                          self.stat_sv_airstopaccelerate
336         #define PHYS_AIRSTRAFEACCEL_QW(s)                       STAT(MOVEVARS_AIRSTRAFEACCEL_QW, s)
337         #define PHYS_AIRSTRAFEACCELERATE(s)                     s.stat_sv_airstrafeaccelerate
338         #define PHYS_ENTGRAVITY(s)                                      s.gravity
339         #define PHYS_FRICTION                                           self.stat_sv_friction
340         #define PHYS_FRICTION_SLICK                                     autocvar_sv_friction_slick
341         #define PHYS_FRICTION_ONLAND                            autocvar_sv_friction_on_land
342         #define PHYS_GRAVITY                                            autocvar_sv_gravity
343         #define PHYS_HIGHSPEED                                          autocvar_g_movement_highspeed
344         #define PHYS_JUMPVELOCITY                                       self.stat_sv_jumpvelocity
345         #define PHYS_MAXAIRSPEED(s)                                     self.stat_sv_maxairspeed
346         #define PHYS_MAXAIRSTRAFESPEED                          self.stat_sv_maxairstrafespeed
347         #define PHYS_MAXSPEED(s)                                        s.stat_sv_maxspeed
348         #define PHYS_STEPHEIGHT                                         autocvar_sv_stepheight
349         #define PHYS_STOPSPEED                                          self.stat_sv_stopspeed
350         #define PHYS_WARSOWBUNNY_ACCEL                          self.stat_sv_warsowbunny_accel
351         #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO        self.stat_sv_warsowbunny_backtosideratio
352         #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL        self.stat_sv_warsowbunny_airforwardaccel
353         #define PHYS_WARSOWBUNNY_TOPSPEED                       self.stat_sv_warsowbunny_topspeed
354         #define PHYS_WARSOWBUNNY_TURNACCEL                      self.stat_sv_warsowbunny_turnaccel
355
356         #define PHYS_WALLFRICTION                                       cvar("sv_wallfriction")
357
358         #define PHYS_JETPACK_ACCEL_UP                           autocvar_g_jetpack_acceleration_up
359         #define PHYS_JETPACK_ACCEL_SIDE                         autocvar_g_jetpack_acceleration_side
360         #define PHYS_JETPACK_ANTIGRAVITY                        autocvar_g_jetpack_antigravity
361         #define PHYS_JETPACK_FUEL                                       autocvar_g_jetpack_fuel
362         #define PHYS_JETPACK_MAXSPEED_UP                        autocvar_g_jetpack_maxspeed_up
363         #define PHYS_JETPACK_MAXSPEED_SIDE                      autocvar_g_jetpack_maxspeed_side
364
365         #define PHYS_DODGING_FROZEN                                     autocvar_sv_dodging_frozen
366
367         #define PHYS_NOSTEP                                                     cvar("sv_nostep")
368         #define PHYS_JUMPSTEP                                           cvar("sv_jumpstep")
369
370 #endif
371 #endif