- .float stat_sv_airaccel_qw;
- .float stat_sv_airspeedlimit_nonqw = _STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW);
- .float stat_sv_maxspeed;
- .float stat_movement_highspeed = _STAT(MOVEVARS_HIGHSPEED);
-
- .float stat_sv_friction_on_land = _STAT(MOVEVARS_FRICTION_ONLAND);
- .float stat_sv_friction_slick = _STAT(MOVEVARS_FRICTION_SLICK);
-
- .float stat_doublejump = _STAT(DOUBLEJUMP);
-
- .string stat_jumpspeedcap_min;
- .string stat_jumpspeedcap_max;
- .float stat_jumpspeedcap_disable_onramps = _STAT(MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS);
-
- .float stat_jetpack_accel_side = _STAT(JETPACK_ACCEL_SIDE);
- .float stat_jetpack_accel_up = _STAT(JETPACK_ACCEL_UP);
- .float stat_jetpack_antigravity = _STAT(JETPACK_ANTIGRAVITY);
- .float stat_jetpack_fuel = _STAT(JETPACK_FUEL);
- .float stat_jetpack_maxspeed_up = _STAT(JETPACK_MAXSPEED_UP);
- .float stat_jetpack_maxspeed_side = _STAT(JETPACK_MAXSPEED_SIDE);
- .float stat_gameplayfix_easierwaterjump = _STAT(GAMEPLAYFIX_EASIERWATERJUMP);
- .float stat_gameplayfix_downtracesupportsongroundflag = _STAT(GAMEPLAYFIX_DOWNTRACEONGROUND);
- .float stat_gameplayfix_stepmultipletimes = _STAT(GAMEPLAYFIX_STEPMULTIPLETIMES);
- .float stat_gameplayfix_unstickplayers = _STAT(GAMEPLAYFIX_UNSTICKPLAYERS);
- .float stat_gameplayfix_stepdown = _STAT(GAMEPLAYFIX_STEPDOWN);
-
- .float stat_bugrigs = _STAT(BUGRIGS);
- .float stat_bugrigs_angle_smoothing = _STAT(BUGRIGS_ANGLE_SMOOTHING);
- .float stat_bugrigs_planar_movement = _STAT(BUGRIGS_PLANAR_MOVEMENT);
- .float stat_bugrigs_reverse_speeding = _STAT(BUGRIGS_REVERSE_SPEEDING);
- .float stat_bugrigs_friction_floor = _STAT(BUGRIGS_FRICTION_FLOOR);
- .float stat_bugrigs_air_steering = _STAT(BUGRIGS_AIR_STEERING);
- .float stat_bugrigs_friction_brake = _STAT(BUGRIGS_FRICTION_BRAKE);
- .float stat_bugrigs_accel = _STAT(BUGRIGS_ACCEL);
- .float stat_bugrigs_speed_ref = _STAT(BUGRIGS_SPEED_REF);
- .float stat_bugrigs_speed_pow = _STAT(BUGRIGS_SPEED_POW);
- .float stat_bugrigs_steer = _STAT(BUGRIGS_STEER);
- .float stat_bugrigs_friction_air = _STAT(BUGRIGS_FRICTION_AIR);
- .float stat_bugrigs_car_jumping = _STAT(BUGRIGS_CAR_JUMPING);
- .float stat_bugrigs_reverse_spinning = _STAT(BUGRIGS_REVERSE_SPINNING);
- .float stat_bugrigs_reverse_stopping = _STAT(BUGRIGS_REVERSE_STOPPING);
-
- // new properties
- .float stat_sv_jumpvelocity;
- .float stat_sv_maxairstrafespeed;
- .float stat_sv_maxairspeed;
- .float stat_sv_airstrafeaccelerate;
- .float stat_sv_warsowbunny_turnaccel;
- .float stat_sv_airaccel_sideways_friction;
- .float stat_sv_aircontrol;
- .float stat_sv_warsowbunny_airforwardaccel;
- .float stat_sv_warsowbunny_topspeed;
- .float stat_sv_warsowbunny_accel;
- .float stat_sv_warsowbunny_backtosideratio;
- .float stat_sv_friction;
- .float stat_sv_accelerate;
- .float stat_sv_stopspeed;
- .float stat_sv_airaccelerate;
- .float stat_sv_airstopaccelerate;
-
- .float stat_nostep = _STAT(NOSTEP);
- .float stat_jumpstep = _STAT(MOVEVARS_JUMPSTEP);
-
- .bool stat_sv_track_canjump = _STAT(MOVEVARS_TRACK_CANJUMP);
-
- #define PHYS_INPUT_ANGLES(s) s.v_angle
- #define PHYS_WORLD_ANGLES(s) s.angles
-
- #define PHYS_INPUT_TIMELENGTH frametime
- #define PHYS_INPUT_FRAMETIME sys_frametime
-
- #define PHYS_INPUT_MOVEVALUES(s) s.movement
- // TODO: cache
- #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))
- #define PHYS_INPUT_BUTTON_ATCK(s) s.BUTTON_ATCK
- #define PHYS_INPUT_BUTTON_JUMP(s) s.BUTTON_JUMP
- #define PHYS_INPUT_BUTTON_ATCK2(s) s.BUTTON_ATCK2
- #define PHYS_INPUT_BUTTON_ZOOM(s) s.BUTTON_ZOOM
- #define PHYS_INPUT_BUTTON_CROUCH(s) s.BUTTON_CROUCH
- #define PHYS_INPUT_BUTTON_HOOK(s) s.BUTTON_HOOK
- #define PHYS_INPUT_BUTTON_USE(s) s.BUTTON_USE
- #define PHYS_INPUT_BUTTON_BACKWARD(s) (s.movement_x < 0)
- #define PHYS_INPUT_BUTTON_FORWARD(s) (s.movement_x > 0)
- #define PHYS_INPUT_BUTTON_LEFT(s) (s.movement_y < 0)
- #define PHYS_INPUT_BUTTON_RIGHT(s) (s.movement_y > 0)
- #define PHYS_INPUT_BUTTON_JETPACK(s) s.BUTTON_JETPACK
-
- #define PHYS_DEAD(s) s.deadflag != DEAD_NO
-
- #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE autocvar_sv_gameplayfix_gravityunaffectedbyticrate
- #define GAMEPLAYFIX_NOGRAVITYONGROUND cvar("sv_gameplayfix_nogravityonground")
- #define GAMEPLAYFIX_Q2AIRACCELERATE autocvar_sv_gameplayfix_q2airaccelerate
- #define GAMEPLAYFIX_EASIERWATERJUMP cvar("sv_gameplayfix_easierwaterjump")
- #define GAMEPLAYFIX_DOWNTRACEONGROUND cvar("sv_gameplayfix_downtracesupportsongroundflag")
- #define GAMEPLAYFIX_STEPMULTIPLETIMES cvar("sv_gameplayfix_stepmultipletimes")
- #define GAMEPLAYFIX_UNSTICKPLAYERS cvar("sv_gameplayfix_unstickplayers")
- #define GAMEPLAYFIX_STEPDOWN cvar("sv_gameplayfix_stepdown")
-
- #define IS_DUCKED(s) s.crouch
- #define SET_DUCKED(s) s.crouch = true
- #define UNSET_DUCKED(s) s.crouch = false
-
- #define IS_JUMP_HELD(s) !(s.flags & FL_JUMPRELEASED)
- #define SET_JUMP_HELD(s) s.flags &= ~FL_JUMPRELEASED
- #define UNSET_JUMP_HELD(s) s.flags |= FL_JUMPRELEASED
-
- #define IS_ONGROUND(s) !!(s.flags & FL_ONGROUND)
- #define SET_ONGROUND(s) s.flags |= FL_ONGROUND
- #define UNSET_ONGROUND(s) s.flags &= ~FL_ONGROUND
-
- #define WAS_ONGROUND(s) !!((s).lastflags & FL_ONGROUND)
-
- #define ITEMS_STAT(s) s.items
- #define BUFFS_STAT(s) (s).buffs
-
- #define PHYS_FROZEN(s) s.frozen
-
- #define PHYS_DOUBLEJUMP autocvar_sv_doublejump
-
- #define PHYS_BUGRIGS g_bugrigs
- #define PHYS_BUGRIGS_ANGLE_SMOOTHING g_bugrigs_angle_smoothing
- #define PHYS_BUGRIGS_PLANAR_MOVEMENT g_bugrigs_planar_movement
- #define PHYS_BUGRIGS_REVERSE_SPEEDING g_bugrigs_reverse_speeding
- #define PHYS_BUGRIGS_FRICTION_FLOOR g_bugrigs_friction_floor
- #define PHYS_BUGRIGS_AIR_STEERING g_bugrigs_air_steering
- #define PHYS_BUGRIGS_FRICTION_BRAKE g_bugrigs_friction_brake
- #define PHYS_BUGRIGS_ACCEL g_bugrigs_accel
- #define PHYS_BUGRIGS_SPEED_REF g_bugrigs_speed_ref
- #define PHYS_BUGRIGS_SPEED_POW g_bugrigs_speed_pow
- #define PHYS_BUGRIGS_STEER g_bugrigs_steer
- #define PHYS_BUGRIGS_FRICTION_AIR g_bugrigs_friction_air
- #define PHYS_BUGRIGS_CAR_JUMPING g_bugrigs_planar_movement_car_jumping
- #define PHYS_BUGRIGS_REVERSE_SPINNING g_bugrigs_reverse_spinning
- #define PHYS_BUGRIGS_REVERSE_STOPPING g_bugrigs_reverse_stopping
-
- #define PHYS_JUMPSPEEDCAP_MIN autocvar_sv_jumpspeedcap_min
- #define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max
- #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS autocvar_sv_jumpspeedcap_max_disable_on_ramps
-
- #define PHYS_CL_TRACK_CANJUMP(s) s.cvar_cl_movement_track_canjump
- #define PHYS_TRACK_CANJUMP(s) s.stat_sv_track_canjump
- #define PHYS_ACCELERATE self.stat_sv_accelerate
- #define PHYS_AIRACCEL_QW(s) s.stat_sv_airaccel_qw
- #define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) STAT(MOVEVARS_AIRACCEL_QW_STRETCHFACTOR, s)
- #define PHYS_AIRACCEL_SIDEWAYS_FRICTION self.stat_sv_airaccel_sideways_friction
- #define PHYS_AIRACCELERATE self.stat_sv_airaccelerate
- #define PHYS_AIRCONTROL self.stat_sv_aircontrol
- #define PHYS_AIRCONTROL_PENALTY STAT(MOVEVARS_AIRCONTROL_PENALTY, self)
- #define PHYS_AIRCONTROL_POWER STAT(MOVEVARS_AIRCONTROL_POWER, self)
- #define PHYS_AIRSPEEDLIMIT_NONQW(s) STAT(MOVEVARS_AIRSPEEDLIMIT_NONQW, s)
- #define PHYS_AIRSTOPACCELERATE self.stat_sv_airstopaccelerate
- #define PHYS_AIRSTRAFEACCEL_QW(s) STAT(MOVEVARS_AIRSTRAFEACCEL_QW, s)
- #define PHYS_AIRSTRAFEACCELERATE(s) s.stat_sv_airstrafeaccelerate
- #define PHYS_ENTGRAVITY(s) s.gravity
- #define PHYS_FRICTION self.stat_sv_friction
- #define PHYS_FRICTION_SLICK autocvar_sv_friction_slick
- #define PHYS_FRICTION_ONLAND autocvar_sv_friction_on_land
- #define PHYS_GRAVITY autocvar_sv_gravity
- #define PHYS_HIGHSPEED autocvar_g_movement_highspeed
- #define PHYS_JUMPVELOCITY self.stat_sv_jumpvelocity
- #define PHYS_MAXAIRSPEED(s) self.stat_sv_maxairspeed
- #define PHYS_MAXAIRSTRAFESPEED self.stat_sv_maxairstrafespeed
- #define PHYS_MAXSPEED(s) s.stat_sv_maxspeed
- #define PHYS_STEPHEIGHT autocvar_sv_stepheight
- #define PHYS_STOPSPEED self.stat_sv_stopspeed
- #define PHYS_WARSOWBUNNY_ACCEL self.stat_sv_warsowbunny_accel
- #define PHYS_WARSOWBUNNY_BACKTOSIDERATIO self.stat_sv_warsowbunny_backtosideratio
- #define PHYS_WARSOWBUNNY_AIRFORWARDACCEL self.stat_sv_warsowbunny_airforwardaccel
- #define PHYS_WARSOWBUNNY_TOPSPEED self.stat_sv_warsowbunny_topspeed
- #define PHYS_WARSOWBUNNY_TURNACCEL self.stat_sv_warsowbunny_turnaccel
-
- #define PHYS_WALLFRICTION cvar("sv_wallfriction")
-
- #define PHYS_JETPACK_ACCEL_UP autocvar_g_jetpack_acceleration_up
- #define PHYS_JETPACK_ACCEL_SIDE autocvar_g_jetpack_acceleration_side
- #define PHYS_JETPACK_ANTIGRAVITY autocvar_g_jetpack_antigravity
- #define PHYS_JETPACK_FUEL autocvar_g_jetpack_fuel
- #define PHYS_JETPACK_MAXSPEED_UP autocvar_g_jetpack_maxspeed_up
- #define PHYS_JETPACK_MAXSPEED_SIDE autocvar_g_jetpack_maxspeed_side
-
- #define PHYS_DODGING_FROZEN autocvar_sv_dodging_frozen
-
- #define PHYS_NOSTEP cvar("sv_nostep")
- #define PHYS_JUMPSTEP cvar("sv_jumpstep")
+ #define PHYS_GRAVITY(s) autocvar_sv_gravity
+
+ #define TICRATE sys_frametime
+
+ #define PHYS_INPUT_ANGLES(s) ((s).v_angle)
+ #define PHYS_WORLD_ANGLES(s) ((s).angles)
+
+ #define PHYS_INPUT_TIMELENGTH frametime
+ #define PHYS_INPUT_FRAMETIME sys_frametime
+
+ #define PHYS_INPUT_MOVEVALUES(s) ((s).movement)
+
+ #define PHYS_INPUT_BUTTON_BUTTON1(s) ((s).button0)
+ #define PHYS_INPUT_BUTTON_BUTTON2(s) ((s).button2)
+ #define PHYS_INPUT_BUTTON_BUTTON3(s) ((s).button3)
+ #define PHYS_INPUT_BUTTON_BUTTON4(s) ((s).button4)
+ #define PHYS_INPUT_BUTTON_BUTTON5(s) ((s).button5)
+ #define PHYS_INPUT_BUTTON_BUTTON6(s) ((s).button6)
+ #define PHYS_INPUT_BUTTON_BUTTON7(s) ((s).button7)
+ #define PHYS_INPUT_BUTTON_BUTTON8(s) ((s).button8)
+ #define PHYS_INPUT_BUTTON_BUTTON_USE(s) ((s).buttonuse)
+ #define PHYS_INPUT_BUTTON_BUTTON_CHAT(s) ((s).buttonchat)
+ #define PHYS_INPUT_BUTTON_BUTTON_PRYDON(s) ((s).cursor_active)
+ #define PHYS_INPUT_BUTTON_BUTTON9(s) ((s).button9)
+ #define PHYS_INPUT_BUTTON_BUTTON10(s) ((s).button10)
+ #define PHYS_INPUT_BUTTON_BUTTON11(s) ((s).button11)
+ #define PHYS_INPUT_BUTTON_BUTTON12(s) ((s).button12)
+ #define PHYS_INPUT_BUTTON_BUTTON13(s) ((s).button13)
+ #define PHYS_INPUT_BUTTON_BUTTON14(s) ((s).button14)
+ #define PHYS_INPUT_BUTTON_BUTTON15(s) ((s).button15)
+ #define PHYS_INPUT_BUTTON_BUTTON16(s) ((s).button16)
+
+ #define PHYS_DEAD(s) ((s).deadflag != DEAD_NO)
+
+ #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE autocvar_sv_gameplayfix_gravityunaffectedbyticrate
+ #define GAMEPLAYFIX_NOGRAVITYONGROUND autocvar_sv_gameplayfix_nogravityonground
+ #define GAMEPLAYFIX_Q2AIRACCELERATE autocvar_sv_gameplayfix_q2airaccelerate
+
+ #define IS_DUCKED(s) ((s).crouch)
+ #define SET_DUCKED(s) ((s).crouch = true)
+ #define UNSET_DUCKED(s) ((s).crouch = false)
+
+ #define PHYS_JUMPSPEEDCAP_MIN autocvar_sv_jumpspeedcap_min
+ #define PHYS_JUMPSPEEDCAP_MAX autocvar_sv_jumpspeedcap_max
+
+ #define PHYS_CL_TRACK_CANJUMP(s) ((s).cvar_cl_movement_track_canjump)
+ #define PHYS_ENTGRAVITY(s) ((s).gravity)