X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ffunc%2Ftrain.qc;h=45480686a5164358d5b04ba2645443b117cbe085;hb=1d70346809dd33b32864b3832662878077588e4b;hp=60c8730eb68bb258c378eba2a9230eb18680dc9d;hpb=7a85bc59ba3d8d35a90d20b364f53669430eb229;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/func/train.qc b/qcsrc/common/triggers/func/train.qc index 60c8730eb..45480686a 100644 --- a/qcsrc/common/triggers/func/train.qc +++ b/qcsrc/common/triggers/func/train.qc @@ -98,13 +98,13 @@ void train_next() } if(self.noise != "") - sound(self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_IDLE); + _sound(self, CH_TRIGGER_SINGLE, self.noise, VOL_BASE, ATTEN_IDLE); } #ifdef SVQC float train_send(entity to, float sf) {SELFPARAM(); - WriteByte(MSG_ENTITY, ENT_CLIENT_TRAIN); + WriteHeader(MSG_ENTITY, ENT_CLIENT_TRAIN); WriteByte(MSG_ENTITY, sf); if(sf & SF_TRIGGER_INIT) @@ -161,6 +161,13 @@ void train_link() //Net_LinkEntity(self, 0, false, train_send); } +void train_use() +{ + self.SUB_NEXTTHINK = self.SUB_LTIME + 1; + self.SUB_THINK = train_next; + self.use = func_null; // not again +} + void func_train_find() {SELFPARAM(); entity targ; @@ -169,8 +176,12 @@ void func_train_find() if (self.target == "") objerror("func_train_find: no next target"); SUB_SETORIGIN(self, targ.origin - self.view_ofs); - self.SUB_NEXTTHINK = self.SUB_LTIME + 1; - self.SUB_THINK = train_next; + + if(!(self.spawnflags & 4)) + { + self.SUB_NEXTTHINK = self.SUB_LTIME + 1; + self.SUB_THINK = train_next; + } train_link(); } @@ -197,6 +208,9 @@ spawnfunc(func_train) return; self.effects |= EF_LOWPRECISION; + if(self.spawnflags & 4) + self.use = train_use; + if (self.spawnflags & 2) { self.platmovetype_turn = true; @@ -225,7 +239,7 @@ spawnfunc(func_train) // TODO make a reset function for this one } #elif defined(CSQC) -void train_draw() +void train_draw(entity this) { //Movetype_Physics_NoMatchServer(); Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);