bool joystick_ButtonReleased(JoyStickEvent arg, int button) { if (button.Equals(KeyMap.Instance.JoystickEscape)) { CloseControlChangeWindow(); return(false); } String langKey = GetLanguageKeyById(currentKeyId); // check for conflicts bool noconflict = true; string property = null; // keys if (langKey.Equals(LanguageKey.Engine)) { property = "JoystickEngine"; } if (langKey.Equals(LanguageKey.Gear)) { property = "JoystickGear"; } if (langKey.Equals(LanguageKey.Gun)) { property = "JoystickGun"; } if (langKey.Equals(LanguageKey.Bombs)) { property = "JoystickRocket"; } if (langKey.Equals(LanguageKey.Spin)) { property = "JoystickSpin"; } if (langKey.Equals(LanguageKey.Camera)) { property = "JoystickCamera"; } if (langKey.Equals(LanguageKey.BulletTimeEffect)) { property = "JoystickBulletiTimeEffect"; } if (langKey.Equals(LanguageKey.Back)) { property = "JoystickEscape"; } if (langKey.Equals(LanguageKey.OK)) { property = "JoystickEnter"; } if (property == null) { return(false); } String[] exceptions; if (!langKey.Equals(LanguageKey.OK) && !langKey.Equals(LanguageKey.Back)) { exceptions = new String[] { "JoystickEscape", "JoystickEnter" }; } else { exceptions = new String[] { "JoystickEscape", "JoystickEnter" }; } if (!langKey.Equals(LanguageKey.Pitch) && !langKey.Equals(LanguageKey.AccelerateBreakTurn)) { KeyMap.ClearOtherControlsWithSameKey(property, button, TypeOfControl.Joystick, exceptions); KeyMap.UpdateProperty(property, button, TypeOfControl.Joystick); } CloseControlChangeWindow(); // notify parent to refresh if (onControlsChanged != null) { onControlsChanged(); } return(true); }