From: Mario Date: Fri, 1 Jan 2016 13:06:04 +0000 (+1000) Subject: Teleporter: support random teleportation sounds X-Git-Tag: xonotic-v0.8.2~1326 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=a6e92a1ef0f0220d10c9aeeb3337dfad37106987;p=xonotic%2Fxonotic-data.pk3dir.git Teleporter: support random teleportation sounds --- 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);