internal override void Load(InputMap savedMap) { if (savedMap is ButtonMap == false) { throw new Exception("ButtonMap attempting to load type other than ButtonMap"); } ButtonMap savedButtonMap = savedMap as ButtonMap; foreach (ButtonBinding saved in savedButtonMap.ButtonBindings.Values) { if (this.ButtonBindings.ContainsKey(saved.Alias)) { ButtonBinding binding = ButtonBindings[saved.Alias]; if (binding.GetType().Equals(saved) == false) { throw new Exception("Error loading Button Bindings: Saved binding is not a same type as default binding"); } if (binding is KeyBinding) { KeyBinding kb = binding as KeyBinding; KeyBinding other = saved as KeyBinding; kb.Key = other.Key; kb.Modifiers = other.Modifiers; } else if (binding is GamePadButtonBinding) { GamePadButtonBinding gb = binding as GamePadButtonBinding; GamePadButtonBinding other = saved as GamePadButtonBinding; gb.Button = other.Button; } else { throw new Exception("Unknown ButtonBinding type being loaded. Did you add a new type and forget to handle loading?"); } } } }
public void AddBinding(ButtonBinding bb) { ButtonBindings.Add(bb.Alias, bb); }