#ifdef CSQC
- float pm_multijump;
+ float player_multijump;
+ float player_jumpheight;
#define PHYS_INPUT_ANGLES(s) input_angles
// TODO
#define PHYS_INPUT_MOVEVALUES(s) input_movevalues
#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))
- #define PHYS_INPUT_BUTTON_ATCK(s) (input_buttons & 1)
- #define PHYS_INPUT_BUTTON_JUMP(s) (input_buttons & 2)
- #define PHYS_INPUT_BUTTON_ATCK2(s) (input_buttons & 4)
- #define PHYS_INPUT_BUTTON_ZOOM(s) (input_buttons & 8)
- #define PHYS_INPUT_BUTTON_CROUCH(s) (input_buttons & 16)
- #define PHYS_INPUT_BUTTON_HOOK(s) (input_buttons & 32)
- #define PHYS_INPUT_BUTTON_USE(s) (input_buttons & 64)
- #define PHYS_INPUT_BUTTON_BACKWARD(s) (input_buttons & 128)
- #define PHYS_INPUT_BUTTON_FORWARD(s) (input_buttons & 256)
- #define PHYS_INPUT_BUTTON_LEFT(s) (input_buttons & 512)
- #define PHYS_INPUT_BUTTON_RIGHT(s) (input_buttons & 1024)
+ #define PHYS_INPUT_BUTTON_ATCK(s) !!(input_buttons & 1)
+ #define PHYS_INPUT_BUTTON_JUMP(s) !!(input_buttons & 2)
+ #define PHYS_INPUT_BUTTON_ATCK2(s) !!(input_buttons & 4)
+ #define PHYS_INPUT_BUTTON_ZOOM(s) !!(input_buttons & 8)
+ #define PHYS_INPUT_BUTTON_CROUCH(s) !!(input_buttons & 16)
+ #define PHYS_INPUT_BUTTON_HOOK(s) !!(input_buttons & 32)
+ #define PHYS_INPUT_BUTTON_USE(s) !!(input_buttons & 64)
+ #define PHYS_INPUT_BUTTON_BACKWARD(s) !!(input_buttons & 128)
+ #define PHYS_INPUT_BUTTON_FORWARD(s) !!(input_buttons & 256)
+ #define PHYS_INPUT_BUTTON_LEFT(s) !!(input_buttons & 512)
+ #define PHYS_INPUT_BUTTON_RIGHT(s) !!(input_buttons & 1024)
#define PHYS_DEAD(s) s.csqcmodel_isdead
- #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE moveflags & MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE
+ #define GAMEPLAYFIX_GRAVITYUNAFFECTEDBYTICRATE !!(moveflags & MOVEFLAG_GRAVITYUNAFFECTEDBYTICRATE)
#define GAMEPLAYFIX_NOGRAVITYONGROUND cvar("sv_gameplayfix_nogravityonground")
#define GAMEPLAYFIX_Q2AIRACCELERATE cvar("sv_gameplayfix_q2airaccelerate")
- #define IS_DUCKED(s) (s.pmove_flags & PMF_DUCKED)
+ #define IS_DUCKED(s) !!(s.pmove_flags & PMF_DUCKED)
#define SET_DUCKED(s) s.pmove_flags |= PMF_DUCKED
#define UNSET_DUCKED(s) s.pmove_flags &= ~PMF_DUCKED
- #define IS_JUMP_HELD(s) (s.pmove_flags & PMF_JUMP_HELD)
+ #define IS_JUMP_HELD(s) !!(s.pmove_flags & PMF_JUMP_HELD)
#define SET_JUMP_HELD(s) s.pmove_flags |= PMF_JUMP_HELD
#define UNSET_JUMP_HELD(s) s.pmove_flags &= ~PMF_JUMP_HELD
- #define IS_ONGROUND(s) (s.pmove_flags & PMF_ONGROUND)
+ #define IS_ONGROUND(s) !!(s.pmove_flags & PMF_ONGROUND)
#define SET_ONGROUND(s) s.pmove_flags |= PMF_ONGROUND
#define UNSET_ONGROUND(s) s.pmove_flags &= ~PMF_ONGROUND
#define PHYS_FROZEN(s) getstati(STAT_FROZEN)
+ #define PHYS_DOUBLEJUMP getstati(STAT_DOUBLEJUMP)
+
+ #define PHYS_JUMPSPEEDCAP_MIN getstatf(STAT_MOVEVARS_JUMPSPEEDCAP_MIN)
+ #define PHYS_JUMPSPEEDCAP_MAX getstatf(STAT_MOVEVARS_JUMPSPEEDCAP_MAX)
+ #define PHYS_JUMPSPEEDCAP_DISABLE_ONRAMPS getstati(STAT_MOVEVARS_JUMPSPEEDCAP_DISABLE_ONRAMPS)
+
+ #define PHYS_TRACK_CANJUMP(s) getstati(STAT_MOVEVARS_TRACK_CANJUMP)
#define PHYS_ACCELERATE getstatf(STAT_MOVEVARS_ACCELERATE)
#define PHYS_AIRACCEL_QW(s) getstatf(STAT_MOVEVARS_AIRACCEL_QW)
#define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) getstatf(STAT_MOVEVARS_AIRACCEL_QW_STRETCHFACTOR)
#define SET_DUCKED(s) s.crouch = TRUE
#define UNSET_DUCKED(s) s.crouch = FALSE
- #define IS_JUMP_HELD(s) (s.flags & FL_JUMPRELEASED == 0)
+ #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 IS_ONGROUND(s) !!(self.flags & FL_ONGROUND)
#define SET_ONGROUND(s) s.flags |= FL_ONGROUND
#define UNSET_ONGROUND(s) s.flags &= ~FL_ONGROUND
#define PHYS_FROZEN(s) s.frozen
+ #define PHYS_DOUBLEJUMP autocvar_sv_doublejump
+
+ #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_TRACK_CANJUMP(s) s.cvar_cl_movement_track_canjump
#define PHYS_ACCELERATE autocvar_sv_accelerate
#define PHYS_AIRACCEL_QW(s) s.stat_sv_airaccel_qw
#define PHYS_AIRACCEL_QW_STRETCHFACTOR(s) autocvar_sv_airaccel_qw_stretchfactor