X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fjumppads.qc;h=7e25751bba7a70309abd64279fdfad7a6437f388;hb=26e4227521bef3540881c326dd68b546bef62bcd;hp=6c6675e113f14b6ca5645f4d3e34a094f482a4ee;hpb=153e558088db2813f7f7dd5367244b5470f4d425;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/trigger/jumppads.qc b/qcsrc/common/triggers/trigger/jumppads.qc index 6c6675e11..7e25751bb 100644 --- a/qcsrc/common/triggers/trigger/jumppads.qc +++ b/qcsrc/common/triggers/trigger/jumppads.qc @@ -1,11 +1,10 @@ // TODO: split target_push and put it in the target folder #ifdef SVQC -#include "../../../server/_all.qh" #include "jumppads.qh" #include "../../movetypes/movetypes.qh" void trigger_push_use() -{ +{SELFPARAM(); if(teamplay) { self.team = activator.team; @@ -128,7 +127,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht) } void trigger_push_touch() -{ +{SELFPARAM(); if (self.active == ACTIVE_NOT) return; @@ -181,8 +180,8 @@ void trigger_push_touch() if(self.pushltime < time) // prevent "snorring" sound when a player hits the jumppad more than once { // flash when activated - pointparticles(particleeffectnum("jumppad_activate"), other.origin, other.velocity, 1); - sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM); + Send_Effect(EFFECT_JUMPPAD, other.origin, other.velocity, 1); + _sound (other, CH_TRIGGER, self.noise, VOL_BASE, ATTEN_NORM); self.pushltime = time + 0.2; } if(IS_REAL_CLIENT(other) || IS_BOT_CLIENT(other)) @@ -218,12 +217,8 @@ void trigger_push_touch() if(self.enemy.target) { - entity oldself; - oldself = self; activator = other; - self = self.enemy; - SUB_UseTargets(); - self = oldself; + WITH(entity, self, self.enemy, SUB_UseTargets()); } if (other.flags & FL_PROJECTILE) @@ -257,7 +252,7 @@ void trigger_push_link(); void trigger_push_updatelink(); #endif void trigger_push_findtarget() -{ +{SELFPARAM(); entity t; vector org; @@ -321,7 +316,7 @@ void trigger_push_findtarget() #ifdef SVQC float trigger_push_send(entity to, float sf) -{ +{SELFPARAM(); WriteByte(MSG_ENTITY, ENT_CLIENT_TRIGGER_PUSH); WriteByte(MSG_ENTITY, sf); @@ -345,7 +340,7 @@ float trigger_push_send(entity to, float sf) } void trigger_push_updatelink() -{ +{SELFPARAM(); self.SendFlags |= 1; } @@ -367,9 +362,9 @@ void trigger_push_link() * values to target a point on the ceiling. * movedir: if target is not set, this * speed * 10 is the velocity to be reached. */ -void spawnfunc_trigger_push() +spawnfunc(trigger_push) { - SetMovedir (); + SetMovedir(self); EXACTTRIGGER_INIT; @@ -391,7 +386,7 @@ void spawnfunc_trigger_push() } -float target_push_send(entity to, float sf) +bool target_push_send(entity this, entity to, float sf) { WriteByte(MSG_ENTITY, ENT_CLIENT_TARGET_PUSH); @@ -405,21 +400,21 @@ float target_push_send(entity to, float sf) } void target_push_link() -{ +{SELFPARAM(); Net_LinkEntity(self, false, 0, target_push_send); self.SendFlags |= 1; // update } -void spawnfunc_target_push() { target_push_link(); } -void spawnfunc_info_notnull() { target_push_link(); } -void spawnfunc_target_position() { target_push_link(); } +spawnfunc(target_push) { target_push_link(); } +spawnfunc(info_notnull) { target_push_link(); } +spawnfunc(target_position) { target_push_link(); } #endif #ifdef CSQC void ent_trigger_push() -{ +{SELFPARAM(); float sf = ReadByte(); if(sf & 1) @@ -449,7 +444,7 @@ void ent_trigger_push() } void target_push_remove() -{ +{SELFPARAM(); if(self.classname) strunzone(self.classname); self.classname = string_null; @@ -460,7 +455,7 @@ void target_push_remove() } void ent_target_push() -{ +{SELFPARAM(); self.classname = "push_target"; self.cnt = ReadByte(); self.targetname = strzone(ReadString());