public bool SelectSetting(bool selected) { switch (Settings.SettingType(this.index)) { case ConfigTypes.Button: // Simply execute the button's operation if (selected) { Settings.ConfirmSetting(this.index, null); RefreshItemValues(); SelectedSettingCursor.force_loc(UICursor.loc); selected = false; } break; case ConfigTypes.SubSettings: if (selected) { OpenSubMenu = true; SelectedSettingCursor.force_loc(UICursor.loc); selected = false; } break; case ConfigTypes.Keyboard: case ConfigTypes.Gamepad: break; default: Items[this.index].set_text_color(selected ? "Green" : "White"); break; } SettingSelected = selected; Greyed_Cursor = SettingSelected; if (SettingSelected) { TempSelectedSettings = (ISettings)Settings.Clone(); TempOriginalSettings = (ISettings)Settings.Clone(); SelectedSettingCursor.force_loc(UICursor.loc); SelectedSettingCursor.set_loc(UICursor.target_loc + new Vector2(VALUE_OFFSET, 0)); SelectedSettingCursor.update(); } else { TempSelectedSettings = null; TempOriginalSettings = null; RefreshCurrentValue(Settings); UICursor.force_loc(SelectedSettingCursor.loc); UICursor.update(); } active = !SettingSelected; return(SettingSelected); }