public SoundTrackPrsNode(Resource.InfoSection section, Resource.ResourceManager content) : base(section, content) { }
public SoundTrackSoundNode(Resource.InfoSection soundSection, Resource.ResourceManager content) { foreach (Resource.InfoLine line in soundSection.Lines) { // TODO: this code is messy and could be more efficient string sdummy; int idummy; float fdummy; if (line.TryGetAttribute("Name", out sdummy)) { _name = sdummy; } else if (line.TryGetIntAttribute("Volume", out idummy)) { _volume = idummy / 100.0f; } else if (line.TryGetIntAttribute("Repeat", out idummy)) { _repeat = idummy; } else if (line.TryGetIntAttribute("Random", out idummy)) { _random = idummy / 100.0f; } else if (line.TryGetIntAttribute("Loop", out idummy)) { _loop = idummy != 0; } else if (line.TryGetIntAttribute("FadeInMS", out idummy)) { _fadeIn = idummy; } else if (line.TryGetIntAttribute("FadeOutMS", out idummy)) { _fadeOut = idummy; } else if (line.TryGetIntAttribute("StopMethod", out idummy)) { _stopMethod = (SoundStopMethod)idummy; } else if (line.TryGetIntAttribute("3D", out idummy)) { _3d = idummy != 0; } else if (line.TryGetIntAttribute("MinDist", out idummy)) { _minDist = idummy; } else if (line.TryGetIntAttribute("MaxDist", out idummy)) { _maxDist = idummy; } else if (line.TryGetFloatAttribute("X", out fdummy)) { _x = fdummy; } else if (line.TryGetFloatAttribute("Y", out fdummy)) { _y = fdummy; } else if (line.TryGetFloatAttribute("Z", out fdummy)) { _z = fdummy; } else if (line.TryGetAttribute("Follow", out sdummy)) { _follow = sdummy; } } // load the sound if (string.IsNullOrEmpty(_name) == false) { // make sure it ends in ".wav" string fileToLoad = _name; if (fileToLoad.EndsWith(".wav", StringComparison.OrdinalIgnoreCase) == false) { fileToLoad = fileToLoad + ".wav"; } try { _sound = content.Load <AudioEngine.SoundEffect>(fileToLoad); // _sound.DefaultMinDistance = _minDist; // _sound.DefaultMaxDistance = _maxDist; // _sound.DefaultVolume = _volume; } catch { // for some reason it seems like it's possible for requested sounds // not to exist! Console.CurrentConsole.WriteLine(ConsoleSeverity.Warning, "Unable to load sound referenced in STK: {0}", fileToLoad); } } if (_repeat > 0) { _repeatEnabled = true; } }