From 28d9521db0dd0884269f26648e0f19ea56a92898 Mon Sep 17 00:00:00 2001 From: Freddy Date: Wed, 2 Nov 2016 18:57:18 +0100 Subject: [PATCH] Add .future_target field for func_train --- qcsrc/common/triggers/func/train.qc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/qcsrc/common/triggers/func/train.qc b/qcsrc/common/triggers/func/train.qc index 5de9d42a5..2e4356bab 100644 --- a/qcsrc/common/triggers/func/train.qc +++ b/qcsrc/common/triggers/func/train.qc @@ -1,5 +1,6 @@ #include "train.qh" .float train_wait_turning; +.entity future_target; void train_next(entity this); #ifdef SVQC void train_use(entity this, entity actor, entity trigger); @@ -14,7 +15,7 @@ void train_wait(entity this) { entity targ, cp; vector ang; - targ = find(NULL, targetname, this.target); + targ = this.future_target; if((this.spawnflags & 1) && targ.curvetarget) cp = find(NULL, targetname, targ.curvetarget); else @@ -41,7 +42,7 @@ void train_wait(entity this) #endif #ifdef SVQC - entity tg = find(NULL, targetname, this.target); + entity tg = this.future_target; if(tg.spawnflags & 4) { this.use = train_use; @@ -84,10 +85,11 @@ void train_next(entity this) entity targ = NULL, cp = NULL; vector cp_org = '0 0 0'; - targ = train_next_find(this); + targ = this.future_target; this.target = targ.target; this.target_random = targ.target_random; + this.future_target = train_next_find(targ); if (this.spawnflags & 1) { @@ -209,6 +211,8 @@ void func_train_find(entity this) entity targ = train_next_find(this); this.target = targ.target; this.target_random = targ.target_random; + // save the future target for later + this.future_target = train_next_find(targ); if (this.target == "") objerror(this, "func_train_find: no next target"); SUB_SETORIGIN(this, targ.origin - this.view_ofs); -- 2.39.2