public void AddSoundStage(FXSoundStage stageDesc, FXEvent fxEvent, bool looped) { if (!stageDesc.Enabled) { return; } stages.Add(new SoundStage(this, stageDesc, fxEvent, looped)); }
/// <summary> /// /// </summary> /// <param name="instance"></param> /// <param name="position"></param> /// <param name="soundPath"></param> public SoundStage(FXInstance instance, FXSoundStage stageDesc, FXEvent fxEvent, bool looped) : base(instance) { var sound = instance.fxPlayback.LoadSound(stageDesc.Sound); if (sound == null) { return; } emitter = instance.sw.AllocEmitter(); emitter.Position = fxEvent.Origin; emitter.DistanceScale = FXFactory.GetRadius(stageDesc.Attenuation); emitter.DopplerScale = 1; emitter.VolumeCurve = null; emitter.LocalSound = false; emitter.PlaySound(sound, looped ? PlayOptions.Looped : PlayOptions.None); }