private void MouseClicked(MouseState mouseState) { Point MouseClick = new Point(mouseState.X, mouseState.Y); Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10)); switch (GState) { case NotebookState.SelectedTestimony: if (ConfirmContradictMenu.IsConfirming(MouseClickRect)) { GState = NotebookState.Returning; } if (ConfirmContradictMenu.IsCancelling(MouseClickRect)) { GState = NotebookState.Testimonies; } break; case NotebookState.ClickedQuitGame: if (ConfirmQuitMenu.IsConfirming(MouseClickRect)) { GState = NotebookState.ConfirmedQuitGame; } if (ConfirmQuitMenu.IsCancelling(MouseClickRect)) { GState = NotebookState.Options; // replace with whichever state exposes the quit button } break; default: if (MouseClickRect.Intersects(StatsTab.Rect)) { GState = NotebookState.Stats; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(PeopleTab.Rect)) { GState = NotebookState.Profiles; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(OptionsTab.Rect)) { GState = NotebookState.Options; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(TestimonyTab.Rect)) { GState = NotebookState.Testimonies; MainOptionsList = null; TopicOptionsList = null; } if (MouseClickRect.Intersects(ReturnIconRect)) { GState = NotebookState.Returning; } if (MainOptionsList?.SelectedOption == "savequit") { if (QuitButton != null && MouseClickRect.Intersects(QuitButton.Rect)) { GState = NotebookState.ClickedQuitGame; string Query = "Are you sure you want to quit the game?"; ConfirmQuitMenu = new ConfirmMenu(Query, Content, Arial); } if (SaveButton != null && MouseClickRect.Intersects(SaveButton.Rect)) { SaveGame(); } } if (SeekingTestimony && SelectTestimonyButton != null) { if (MouseClickRect.Intersects(SelectTestimonyButton.Rect)) { GState = NotebookState.SelectedTestimony; string Query = "Are you sure you want to contradict?"; ConfirmContradictMenu = new ConfirmMenu(Query, Content, Arial); } } break; } }
private void MouseClicked(MouseState mouseState) { Point MouseClick = new Point(mouseState.X, mouseState.Y); Rectangle MouseClickRect = new Rectangle(MouseClick, new Point(10, 10)); switch (GState) { // If nothing selected, check whether location was selected case LocationState.Normal: foreach (string CharName in CharPics.Keys) { if (MouseClickRect.Intersects(CharPics[CharName].Rect)) { GState = LocationState.ClickedPerson; SpeechMenu = new SpeechMenu(Greetings[CharName], CharPics[CharName].Rect, Content, Arial); SelectedPersonName = CharName; } } if (MouseClickRect.Intersects(NotebookRect)) { GState = LocationState.ToNotebook; } if (MouseClickRect.Intersects(MapIconRect)) { GState = LocationState.ClickedReturn; string query = "Are you sure you're done exploring for now?"; ConfirmMenu = new ConfirmMenu(query, Content, Arial); } break; case LocationState.ClickedPerson: if (SpeechMenu.IsCancelling(MouseClickRect)) { GState = LocationState.Normal; SpeechMenu = null; } else if (SpeechMenu.IsConfirming(MouseClickRect)) { GState = LocationState.ConfirmedPerson; Interviewees.Add(SelectedPersonName); SpeechMenu = null; } break; case LocationState.ClickedReturn: if (ConfirmMenu.IsCancelling(MouseClickRect)) { GState = LocationState.Normal; ConfirmMenu = null; } else if (ConfirmMenu.IsConfirming(MouseClickRect)) { GState = LocationState.ConfirmedReturn; ConfirmMenu = null; } break; default: break; } }