-const float PUSH_ONCE = 1;
-const float PUSH_SILENT = 2;
-
-.float pushltime;
-.float istypefrag;
-.float height;
-
-void() SUB_UseTargets;
-
-float trigger_push_calculatevelocity_flighttime;
+#include "t_jumppads.qh"
void trigger_push_use()
{
solution = solve_quadratic(0.5 * grav, -vz, zdist); // equation "z(ti) = zdist"
// ALWAYS solvable because jumpheight >= zdist
if(!solution.z)
- solution_y = solution.x; // just in case it is not solvable due to roundoff errors, assume two equal solutions at their center (this is mainly for the usual case with ht == 0)
+ solution.y = solution.x; // just in case it is not solvable due to roundoff errors, assume two equal solutions at their center (this is mainly for the usual case with ht == 0)
if(zdist == 0)
- solution_x = solution.y; // solution_x is 0 in this case, so don't use it, but rather use solution_y (which will be sqrt(0.5 * jumpheight / grav), actually)
+ solution.x = solution.y; // solution_x is 0 in this case, so don't use it, but rather use solution_y (which will be sqrt(0.5 * jumpheight / grav), actually)
if(zdist < 0)
{
}
if(IS_REAL_CLIENT(other) || IS_BOT_CLIENT(other))
{
- float i;
- float found;
- found = FALSE;
- for(i = 0; i < other.jumppadcount && i < NUM_JUMPPADSUSED; ++i)
+ bool found = false;
+ for(int i = 0; i < other.jumppadcount && i < NUM_JUMPPADSUSED; ++i)
if(other.(jumppadsused[i]) == self)
- found = TRUE;
+ found = true;
if(!found)
{
other.(jumppadsused[other.jumppadcount % NUM_JUMPPADSUSED]) = self;
other.lastteleporttime = time;
if (other.deadflag == DEAD_NO)
- animdecide_setaction(other, ANIMACTION_JUMP, TRUE);
+ animdecide_setaction(other, ANIMACTION_JUMP, true);
}
else
- other.jumppadcount = TRUE;
+ other.jumppadcount = true;
// reset tracking of who pushed you into a hazard (for kill credit)
other.pushltime = 0;
}
}
-.vector dest;
void trigger_push_findtarget()
{
entity e, t;
// first calculate a typical start point for the jump
org = (self.absmin + self.absmax) * 0.5;
- org_z = self.absmax.z - PL_MIN_z;
+ org.z = self.absmax.z - PL_MIN_z;
if (self.target)
{