#region ================== Namespaces using System; using System.Collections.Generic; #endregion namespace CodeImp.DoomBuilder.ZDoom { public class SoundInfo { #region ================== Enums public enum RolloffType { NONE, INVALID, CUSTOM, LINEAR, LOG } public enum SoundInfoType { SOUND, GROUP_RANDOM, } #endregion #region ================== Variables private string name; private List children; private SoundInfoType type; #endregion #region ================== Properties public string Name { get { return name; } } public List Children { get { return children; } } public SoundInfoType Type { get { return type; } internal set { type = value; } } // Sound settings public string LumpName; public float Volume; public float Attenuation; public int MinimumDistance; public int MaximumDistance; public RolloffType Rolloff; public float RolloffFactor; #endregion #region ================== Constructor public SoundInfo(string name) { this.name = name; children = new List(); type = SoundInfoType.SOUND; // Set non-existent settings Volume = float.MinValue; Attenuation = float.MinValue; MinimumDistance = int.MinValue; MaximumDistance = int.MinValue; Rolloff = RolloffType.INVALID; RolloffFactor = float.MinValue; } // Default props constructor internal SoundInfo() { this.name = "#GLOBAL_PROPERTIES#"; children = new List(); type = SoundInfoType.SOUND; // Set non-existent settings Volume = 1.0f; Attenuation = 1.0f; MinimumDistance = 200; MaximumDistance = 1200; Rolloff = RolloffType.NONE; RolloffFactor = 1.0f; // Is this the default value? } #endregion } }