]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/walljump/walljump.qc
Merge branch 'master' into Mario/speed_var
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / walljump / walljump.qc
index e12755ca73c8080a4ec30a849747004397dd62ff..519159d917b386b9488261845caeed486f4f378c 100644 (file)
@@ -1,9 +1,10 @@
 #include "walljump.qh"
 
+#ifdef GAMEQC
 #ifdef CSQC
 REGISTER_MUTATOR(walljump, true);
 #elif defined(SVQC)
-REGISTER_MUTATOR(walljump, cvar("g_walljump"));
+REGISTER_MUTATOR(walljump, autocvar_g_walljump);
 #endif
 
 #define PHYS_WALLJUMP(s)                                               STAT(WALLJUMP, s)
@@ -22,10 +23,12 @@ vector PlayerTouchWall(entity this)
 
        float dist = 10, max_normal = 0.2, scaler = 100;
        vector start = this.origin;
-       TRACE(start + v_forward * scaler)
-       TRACE(start - v_forward * scaler)
-       TRACE(start + v_right * scaler)
-       TRACE(start - v_right * scaler)
+       vector forward, right, _up;
+       MAKE_VECTORS(this.angles, forward, right, _up);
+       TRACE(start + forward * scaler)
+       TRACE(start - forward * scaler)
+       TRACE(start + right * scaler)
+       TRACE(start - right * scaler)
 #undef TRACE
        return '0 0 0';
 }
@@ -43,10 +46,9 @@ MUTATOR_HOOKFUNCTION(walljump, PlayerJump)
        if(!IS_DEAD(player))
        {
                vector plane_normal = PlayerTouchWall(player);
-               
+
                if(plane_normal != '0 0 0')
                {
-                       STAT(LASTWJ, player) = time;
                        float wj_force = PHYS_WALLJUMP_FORCE(player);
                        float wj_xy_factor = PHYS_WALLJUMP_VELOCITY_XY_FACTOR(player);
                        float wj_z_factor = PHYS_WALLJUMP_VELOCITY_Z_FACTOR(player);
@@ -58,6 +60,7 @@ MUTATOR_HOOKFUNCTION(walljump, PlayerJump)
                        if(PHYS_INPUT_BUTTON_CROUCH(player)) player.velocity_z *= -1;
 
 #ifdef SVQC
+                       STAT(LASTWJ, player) = time;
                        player.oldvelocity = player.velocity;
                        Send_Effect(EFFECT_SMOKE_RING, trace_endpos, plane_normal, 5);
                        PlayerSound(player, playersound_jump, CH_PLAYER, VOL_BASE, VOICETYPE_PLAYERSOUND);
@@ -68,3 +71,5 @@ MUTATOR_HOOKFUNCTION(walljump, PlayerJump)
                }
        }
 }
+
+#endif