X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Ft_jumppads.qc;h=0efb77df276ae2154a8127458e5695b2ecb0b53d;hb=bf4db4c8c9303a20f08fa2a25db1dad5686fb92b;hp=8923c19f18300e1f742acd0586e61539744c3c15;hpb=c5121d69899c57253362a5a8d98d6a1435a5fb47;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/t_jumppads.qc b/qcsrc/server/t_jumppads.qc index 8923c19f1..0efb77df2 100644 --- a/qcsrc/server/t_jumppads.qc +++ b/qcsrc/server/t_jumppads.qc @@ -37,6 +37,8 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht) torg = tgt.origin + (tgt.mins + tgt.maxs) * 0.5; grav = autocvar_sv_gravity; + if(other.gravity) + grav *= other.gravity; zdist = torg_z - org_z; sdist = vlen(torg - org - zdist * '0 0 1'); @@ -69,7 +71,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht) */ // push him so high... - vz = sqrt(2 * grav * jumpheight); // NOTE: sqrt(positive)! + vz = sqrt(fabs(2 * grav * jumpheight)); // NOTE: sqrt(positive)! // we start with downwards velocity only if it's a downjump and the jump apex should be outside the jump! if(ht < 0) @@ -164,7 +166,7 @@ void trigger_push_touch() other.flags &~= FL_ONGROUND; - if (other.classname == "player") + if (IS_PLAYER(other)) { // reset tracking of oldvelocity for impact damage (sudden velocity changes) other.oldvelocity = other.velocity; @@ -176,9 +178,7 @@ void trigger_push_touch() sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTN_NORM); self.pushltime = time + 0.2; } - float ct; - ct = clienttype(other); - if( ct == CLIENTTYPE_REAL || ct == CLIENTTYPE_BOT) + if(IS_REAL_CLIENT(other) || IS_BOT_CLIENT(other)) { float i; float found; @@ -192,7 +192,7 @@ void trigger_push_touch() other.jumppadcount = other.jumppadcount + 1; } - if(ct == CLIENTTYPE_REAL) + if(IS_REAL_CLIENT(other)) { if(self.message) centerprint(other, self.message); @@ -200,14 +200,8 @@ void trigger_push_touch() else other.lastteleporttime = time; - if (!other.animstate_override) if (other.deadflag == DEAD_NO) - { - if (other.crouch) - setanim(other, other.anim_duckjump, FALSE, TRUE, TRUE); - else - setanim(other, other.anim_jump, FALSE, TRUE, TRUE); - } + animdecide_setaction(other, ANIMACTION_JUMP, TRUE); } else other.jumppadcount = TRUE; @@ -246,7 +240,7 @@ void trigger_push_touch() if (self.spawnflags & PUSH_ONCE) { - self.touch = SUB_Null; + self.touch = func_null; self.think = SUB_Remove; self.nextthink = time; }