]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/physics.qh
Fix button mask
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / physics.qh
index 0afd9aeddb25ceaa4a90bf1b30a36d102d13a78e..bea2bd9c471432a1799a8117d468bd44d1504259 100644 (file)
@@ -2,7 +2,8 @@
 
 #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