From a6e92a1ef0f0220d10c9aeeb3337dfad37106987 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 1 Jan 2016 23:06:04 +1000 Subject: [PATCH] Teleporter: support random teleportation sounds --- qcsrc/common/triggers/teleporters.qc | 14 +++++++++++++- qcsrc/common/triggers/trigger/teleport.qc | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/qcsrc/common/triggers/teleporters.qc b/qcsrc/common/triggers/teleporters.qc index d646a631c..c00a4de26 100644 --- a/qcsrc/common/triggers/teleporters.qc +++ b/qcsrc/common/triggers/teleporters.qc @@ -85,7 +85,19 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle if(self.pushltime < time) // only show one teleport effect per teleporter per 0.2 seconds, for better fps { if(tflags & TELEPORT_FLAG_SOUND) - _sound (player, CH_TRIGGER, ((teleporter.noise != "") ? teleporter.noise : SND(TELEPORT)), VOL_BASE, ATTEN_NORM); + { + string thesound = SND(TELEPORT); + if(teleporter.noise != "") + { + RandomSelection_Init(); + FOREACH_WORD(teleporter.noise, true, + { + RandomSelection_Add(NULL, 0, it, 1, 1); + }); + thesound = RandomSelection_chosen_string; + } + _sound (player, CH_TRIGGER, thesound, VOL_BASE, ATTEN_NORM); + } if(tflags & TELEPORT_FLAG_PARTICLES) { Send_Effect(EFFECT_TELEPORT, player.origin, '0 0 0', 1); diff --git a/qcsrc/common/triggers/trigger/teleport.qc b/qcsrc/common/triggers/trigger/teleport.qc index 37c4d1def..e289064c8 100644 --- a/qcsrc/common/triggers/trigger/teleport.qc +++ b/qcsrc/common/triggers/trigger/teleport.qc @@ -87,7 +87,7 @@ spawnfunc(trigger_teleport) self.use = trigger_teleport_use; if(self.noise != "") - precache_sound(self.noise); + FOREACH_WORD(self.noise, true, LAMBDA(precache_sound(it))); // this must be called to spawn the teleport waypoints for bots InitializeEntity(self, teleport_findtarget, INITPRIO_FINDTARGET); -- 2.39.2