mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-30 15:41:30 +00:00
92 lines
1.8 KiB
C#
92 lines
1.8 KiB
C#
|
#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<SoundInfo> children;
|
|||
|
private SoundInfoType type;
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region ================== Properties
|
|||
|
|
|||
|
public string Name { get { return name; } }
|
|||
|
public List<SoundInfo> 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<SoundInfo>();
|
|||
|
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<SoundInfo>();
|
|||
|
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
|
|||
|
}
|
|||
|
}
|