public static void Update() { if (m_fadeSound != null) { m_fadeSound.Volume = MathUtils.Min(m_fadeSound.Volume - 0.33f * Volume * Time.FrameDuration, Volume); if (m_fadeSound.Volume <= 0f) { m_fadeSound.Dispose(); m_fadeSound = null; } } if (m_sound != null && Time.FrameStartTime >= m_fadeStartTime) { m_sound.Volume = MathUtils.Min(m_sound.Volume + 0.33f * Volume * Time.FrameDuration, Volume); } if (m_currentMix == Mix.None || Volume == 0f) { StopMusic(); } else if (m_currentMix == Mix.Menu && (Time.FrameStartTime >= m_nextSongTime || !IsPlaying)) { float startPercentage = IsPlaying ? m_random.Float(0f, 0.75f) : 0f; switch (m_random.Int(0, 5)) { case 0: PlayMusic("Music/NativeAmericanFluteSpirit", startPercentage); break; case 1: PlayMusic("Music/AloneForever", startPercentage); break; case 2: PlayMusic("Music/NativeAmerican", startPercentage); break; case 3: PlayMusic("Music/NativeAmericanHeart", startPercentage); break; case 4: PlayMusic("Music/NativeAmericanPeaceFlute", startPercentage); break; case 5: PlayMusic("Music/NativeIndianChant", startPercentage); break; } m_nextSongTime = Time.FrameStartTime + (double)m_random.Float(40f, 60f); } }
public override void Dispose() { base.Dispose(); if (streamingSound != null) { streamingSound.Dispose(); } }