]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/mutators/mutator_dodging.qc
Merge branch 'master' into Mario/vaporizer_damage
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / mutators / mutator_dodging.qc
index 39ecc2fdeef4fce5238335a2b80da13d5c9d9da2..ab70fb217da5829ae99d1df98c8dd7c9e5dfb007 100644 (file)
 #endif
 
 #ifdef SVQC
+#include "mutator_dodging.qh"
+#include "../_all.qh"
+
+#include "mutator.qh"
+
+#include "../../common/animdecide.qh"
 
 .float cvar_cl_dodging_timeout;
 
@@ -72,7 +78,7 @@
 .float dodging_velocity_gain;
 
 #ifdef CSQC
-.float pressedkeys;
+.int pressedkeys;
 
 #elif defined(SVQC)
 
@@ -109,7 +115,7 @@ void dodging_Initialize()
 #endif
 
 // returns 1 if the player is close to a wall
-float check_close_to_wall(float threshold)
+bool check_close_to_wall(float threshold)
 {
        if (PHYS_DODGING_WALL == 0) { return false; }
 
@@ -126,7 +132,7 @@ float check_close_to_wall(float threshold)
        return false;
 }
 
-float check_close_to_ground(float threshold)
+bool check_close_to_ground(float threshold)
 {
        return IS_ONGROUND(self) ? true : false;
 }
@@ -143,7 +149,7 @@ float PM_dodging_checkpressedkeys()
        if ((time - self.last_dodging_time) < PHYS_DODGING_DELAY)
                return false;
 
-       makevectors(PHYS_WORLD_ANGLES(self));
+       makevectors(self.angles);
 
        if (check_close_to_ground(PHYS_DODGING_HEIGHT_THRESHOLD) != 1
                && check_close_to_wall(PHYS_DODGING_DISTANCE_THRESHOLD) != 1)
@@ -154,7 +160,7 @@ float PM_dodging_checkpressedkeys()
        float dodge_detected = 0;
 
        #define X(COND,BTN,RESULT)                                                                                                                      \
-       if (PHYS_INPUT_MOVEVALUES(self)_##COND)                                                                                         \
+       if (self.movement_##COND)                                                                                               \
                /* is this a state change? */                                                                                                   \
                if(!(PHYS_DODGING_PRESSED_KEYS(self) & KEY_##BTN) || frozen_no_doubletap) {             \
                                tap_direction_##RESULT;                                                                                                 \
@@ -214,7 +220,7 @@ void PM_dodging()
        }
 
        // make sure v_up, v_right and v_forward are sane
-       makevectors(PHYS_WORLD_ANGLES(self));
+       makevectors(self.angles);
 
        // if we have e.g. 0.5 sec ramptime and a frametime of 0.25, then the ramp code
        // will be called ramp_time/frametime times = 2 times. so, we need to
@@ -234,7 +240,7 @@ void PM_dodging()
        if (self.dodging_action == 1)
        {
                //disable jump key during dodge accel phase
-               if(PHYS_INPUT_MOVEVALUES(self)_z > 0) { PHYS_INPUT_MOVEVALUES(self)_z = 0; }
+               if(self.movement_z > 0) { self.movement_z = 0; }
 
                self.velocity += ((self.dodging_direction_y * velocity_difference) * v_right)
                                        + ((self.dodging_direction_x * velocity_difference) * v_forward);
@@ -250,7 +256,7 @@ void PM_dodging()
                self.velocity += PHYS_DODGING_UP_SPEED * v_up;
 
 #ifdef SVQC
-               if (autocvar_sv_dodging_sound == 1)
+               if (autocvar_sv_dodging_sound)
                        PlayerSound(playersound_jump, CH_PLAYER, VOICETYPE_PLAYERSOUND);
 
                animdecide_setaction(self, ANIMACTION_JUMP, true);