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); }
private void refresh(bool preserveIndex = false) { if (ItemNodes == null) { preserveIndex = false; } int index = 0; if (preserveIndex) { index = this.index; } Items1 = actor1.num_items; Items2 = actor2.num_items; int column = this.column; if (Items1 == 0) { column = 1; } Item_Imgs1.Clear(); Item_Imgs2.Clear(); List <CommandUINode> nodes = new List <CommandUINode>(); bool add_empty_slot = Mode != 0 && !this.is_help_active; for (int i = 0; i < Num; i++) { if (i < Items1) { item_node(0, i, nodes); Item_Imgs1.Add(nodes.Last()); } else if (add_empty_slot && Selected[0] == 1 && i == Items1) { empty_slot_node(0, i, nodes); Item_Imgs1.Add(nodes.Last()); } if (i < Items2) { item_node(1, i, nodes); Item_Imgs2.Add(nodes.Last()); } else if (add_empty_slot && Selected[0] == 0 && i == Items2) { empty_slot_node(1, i, nodes); Item_Imgs2.Add(nodes.Last()); } } ItemNodes = new UINodeSet <CommandUINode>(nodes); ItemNodes.WrapVerticalSameColumn = true; ItemNodes.CursorMoveSound = System_Sounds.Menu_Move1; ItemNodes.HorizontalCursorMoveSound = System_Sounds.Menu_Move2; ItemNodes.AngleMultiplier = 2f; ItemNodes.TangentDirections = new List <CardinalDirections> { CardinalDirections.Left, CardinalDirections.Right }; ItemNodes.refresh_destinations(); if (column == 0) { this.index1 = Math.Min(index, Items1 - 1); } else { this.index2 = Math.Min(index, Items2 - 1); } var old_cursor = UICursor; UICursor = new UICursor <CommandUINode>(ItemNodes); UICursor.draw_offset = new Vector2(-12, 0); UICursor.ratio = new int[] { 1, 1 }; if (preserveIndex) { UICursor.force_loc(old_cursor.loc); UICursor.offset = old_cursor.offset; } Equipped_Tag1.loc = loc + new Vector2(SPACING - 16, actor1.equipped * 16 - 8); Equipped_Tag2.loc = loc + new Vector2(SPACING * 2 - 16, actor2.equipped * 16 - 8); }
internal void activate(Vector2 cursorLoc) { UICursor.force_loc((cursorLoc - UICursor.draw_offset) - Loc); UICursor.set_loc(Items.ActiveNode.loc); }