using System; using System.Collections.Generic; namespace BizHawk { // doesn't do what is desired // http://connect.microsoft.com/VisualStudio/feedback/details/459307/extension-add-methods-are-not-considered-in-c-collection-initializers /* public static class UltimateMagic { public static void Add(this List /// default position /// public readonly float Mid; public FloatRange(float Min, float Mid, float Max) { this.Min = Min; this.Mid = Mid; this.Max = Max; } // for terse construction public static implicit operator FloatRange(float[] f) { if (f.Length != 3) throw new ArgumentException(); return new FloatRange(f[0], f[1], f[2]); } } public string Name; public List BoolButtons = new List(); public List FloatControls = new List(); public List FloatRanges = new List(); /// /// copy /// /// public ControllerDefinition(ControllerDefinition source) { this.Name = source.Name; foreach (var s in source.BoolButtons) this.BoolButtons.Add(s); foreach (var s in source.FloatControls) this.FloatControls.Add(s); } public ControllerDefinition() { } } public interface IController { ControllerDefinition Type { get; } //TODO - it is obnoxious for this to be here. must be removed. bool this[string button] { get; } //TODO - this can stay but it needs to be changed to go through the float bool IsPressed(string button); float GetFloat(string name); //TODO - why does this have a frame argument. must be removed. void UpdateControls(int frame); } }