]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/t_plats.qc
explicitly allow an instant kill after player finished a CTS run, add a comment
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / t_plats.qc
index fed2480dc3e2ccb5a9ccdf68b147b1932a2735c1..3089ab650a83b33f449bdea80375ae6cfc63692b 100644 (file)
@@ -501,11 +501,11 @@ void func_pendulum_controller_think()
 
        // calculate sinewave using makevectors
        makevectors((self.nextthink * self.owner.freq + self.owner.phase) * '0 360 0');
-       v = self.owner.speed * v_forward_y;
+       v = self.owner.speed * v_forward_y + self.cnt;
        if(self.owner.classname == "func_pendulum") // don't brake stuff if the func_bobbing was killtarget'ed
        {
                // * 10 so it will arrive in 0.1 sec
-               self.owner.avelocity_x = (remainder(v - self.owner.angles_x, 360)) * 10;
+               self.owner.avelocity_z = (remainder(v - self.owner.angles_z, 360)) * 10;
        }
 };
 
@@ -542,9 +542,12 @@ void spawnfunc_func_pendulum()
        if(!self.freq)
        {
                // find pendulum length (same formula as Q3A)
-               self.freq = 1 / (M_PI * 2) * sqrt(cvar("sv_gravity") / (3 * fabs(self.mins_z)));
+               self.freq = 1 / (M_PI * 2) * sqrt(autocvar_sv_gravity / (3 * max(8, fabs(self.mins_z))));
        }
 
+       // copy initial angle
+       self.cnt = self.angles_z;
+
        // wait for targets to spawn
        controller = spawn();
        controller.classname = "func_pendulum_controller";