X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fjumppads.qc;h=0b3be0056de03bb8dafd15683d77eb73b919d38d;hb=43eba8ca70f00458db385630f86009f6d7fa849a;hp=b14078fb41a970b3eb176002ff189e5e149b4d3d;hpb=221325d0a55851348e3397354225f04cd472d42f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/trigger/jumppads.qc b/qcsrc/common/triggers/trigger/jumppads.qc index b14078fb4..0b3be0056 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; @@ -14,6 +13,9 @@ void trigger_push_use() } #endif +REGISTER_NET_LINKED(ENT_CLIENT_TRIGGER_PUSH) +REGISTER_NET_LINKED(ENT_CLIENT_TARGET_PUSH) + /* trigger_push_calculatevelocity @@ -128,7 +130,7 @@ vector trigger_push_calculatevelocity(vector org, entity tgt, float ht) } void trigger_push_touch() -{ +{SELFPARAM(); if (self.active == ACTIVE_NOT) return; @@ -181,8 +183,8 @@ void trigger_push_touch() if(self.pushltime < time) // prevent "snorring" sound when a player hits the jumppad more than once { // flash when activated - Send_Effect("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 +220,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 +255,7 @@ void trigger_push_link(); void trigger_push_updatelink(); #endif void trigger_push_findtarget() -{ +{SELFPARAM(); entity t; vector org; @@ -321,8 +319,8 @@ void trigger_push_findtarget() #ifdef SVQC float trigger_push_send(entity to, float sf) -{ - WriteByte(MSG_ENTITY, ENT_CLIENT_TRIGGER_PUSH); +{SELFPARAM(); + WriteHeader(MSG_ENTITY, ENT_CLIENT_TRIGGER_PUSH); WriteByte(MSG_ENTITY, sf); if(sf & 1) @@ -345,7 +343,7 @@ float trigger_push_send(entity to, float sf) } void trigger_push_updatelink() -{ +{SELFPARAM(); self.SendFlags |= 1; } @@ -367,9 +365,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,9 +389,9 @@ 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); + WriteHeader(MSG_ENTITY, ENT_CLIENT_TARGET_PUSH); WriteByte(MSG_ENTITY, self.cnt); WriteString(MSG_ENTITY, self.targetname); @@ -405,20 +403,20 @@ float target_push_send(entity to, float sf) } void target_push_link() -{ - Net_LinkEntity(self, false, 0, target_push_send); - self.SendFlags |= 1; // update +{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) { make_pure(this); target_push_link(); } #endif #ifdef CSQC -void ent_trigger_push() +NET_HANDLE(ENT_CLIENT_TRIGGER_PUSH, bool isnew) { float sf = ReadByte(); @@ -446,10 +444,11 @@ void ent_trigger_push() self.team = ReadByte(); self.active = ReadByte(); } + return true; } void target_push_remove() -{ +{SELFPARAM(); if(self.classname) strunzone(self.classname); self.classname = string_null; @@ -459,7 +458,7 @@ void target_push_remove() self.targetname = string_null; } -void ent_target_push() +NET_HANDLE(ENT_CLIENT_TARGET_PUSH, bool isnew) { self.classname = "push_target"; self.cnt = ReadByte(); @@ -467,6 +466,9 @@ void ent_target_push() self.origin_x = ReadCoord(); self.origin_y = ReadCoord(); self.origin_z = ReadCoord(); + + return = true; + setorigin(self, self.origin); self.drawmask = MASK_NORMAL;