X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftrigger%2Fmulti.qc;h=5e8c641be542735efe020f155f2d7ff556f7dcbc;hp=7aa13c13ebfc2aec22b8d7a7382607877cd0d5e2;hb=0071121b663dc3d841a2c28d27c1015899f0f402;hpb=268f9c69576b6bb929f66d19f0d077d19ba47edd diff --git a/qcsrc/common/triggers/trigger/multi.qc b/qcsrc/common/triggers/trigger/multi.qc index 7aa13c13eb..5e8c641be5 100644 --- a/qcsrc/common/triggers/trigger/multi.qc +++ b/qcsrc/common/triggers/trigger/multi.qc @@ -54,8 +54,8 @@ void multi_trigger(entity this) multi_wait(this); // waiting finished } else - { // we can't just remove (this) here, because this is a touch function - // called wheil C code is looping through area links... + { // we can't just delete(this) here, because this is a touch function + // called while C code is looping through area links... settouch(this, func_null); } } @@ -86,9 +86,8 @@ void multi_touch(entity this, entity toucher) } // if the trigger has pressed keys, check that the player is pressing those keys - if(this.pressedkeys) - if(IS_PLAYER(toucher)) // only for players - if(!(toucher.pressedkeys & this.pressedkeys)) + if(this.pressedkeys && IS_PLAYER(toucher)) // only for players + if(!(CS(toucher).pressedkeys & this.pressedkeys)) return; EXACTTRIGGER_TOUCH(this, toucher); @@ -164,6 +163,7 @@ spawnfunc(trigger_multiple) EXACTTRIGGER_INIT; this.team_saved = this.team; + IL_PUSH(g_saved_team, this); if (this.health) {