public override void Update() { if (active) { if (firstOpen) { //Create widgets and such CreateWidgets(); firstOpen = false; } if (Game1.priorityGui == this) { GuiWidgetDialogue widgetDialogue = null; GuiWidgetButton widgetButton = null; for (int i = widgets.Count - 1; i >= 0; i--) { if (widgets[i].id.Item1 == WidgetType.Dialogue) { widgetDialogue = (GuiWidgetDialogue)widgets[i]; widgetDialogue.Update(); //Can only be 1 dialogue widget, always index of 0 if (widgets[i].id.Item2 == 0) { if (widgets[i].currentState == GuiWidget.State.Done) { if (widgetDialogue.ChangeText(-1)) { dialogueOpen = false; widgetDialogue.active = false; } } } } if (widgets[i].id.Item1 == WidgetType.Button) { widgetButton = (GuiWidgetButton)widgets[i]; widgetButton.Update(); } if (!widgets[i].active) { widgets.RemoveAt(i--); } } } } }