//Huge method to handle the traffic stop questioning layout. public static void UpdateTrafficStopQuestioning() { if (Functions.IsPlayerPerformingPullover()) { CurrentEnhancedTrafficStop.UpdateTrafficStopQuestioning(); ToggleStandardQuestions(CurrentEnhancedTrafficStop.StandardQuestionsEnabled); if (CurrentEnhancedTrafficStop.StandardQuestionsEnabled) { IllegalInVehQuestionItem.Text = CurrentEnhancedTrafficStop.AnythingIllegalInVehQuestion; DrinkingQuestionItem.Text = CurrentEnhancedTrafficStop.DrinkingQuestion; DrugsQuestionItem.Text = CurrentEnhancedTrafficStop.DrugsQuestion; SearchPermissionItem.Text = CurrentEnhancedTrafficStop.SearchVehQuestion; } if (CustomQuestionsItems.Count > 0) { foreach (UIMenuItem item in QuestioningMenu.MenuItems.ToArray()) { if (CustomQuestionsItems.Contains(item)) { QuestioningMenu.RemoveItemAt(QuestioningMenu.MenuItems.IndexOf(item)); } } CustomQuestionsItems.Clear(); } foreach (Tuple <string, string> tuple in CurrentEnhancedTrafficStop.CustomQuestionsWithAnswers) { UIMenuItem customquestionitem = new UIMenuItem(tuple.Item1); QuestioningMenu.AddItem(customquestionitem); CustomQuestionsItems.Add(customquestionitem); } if (CustomQuestionsCallbacksAnswersItems.Count > 0) { foreach (UIMenuItem item in QuestioningMenu.MenuItems.ToArray()) { if (CustomQuestionsCallbacksAnswersItems.Contains(item)) { QuestioningMenu.RemoveItemAt(QuestioningMenu.MenuItems.IndexOf(item)); } } CustomQuestionsCallbacksAnswersItems.Clear(); } foreach (Tuple <string, Func <Ped, string> > tuple in CurrentEnhancedTrafficStop.CustomQuestionsWithCallbacksAnswers) { UIMenuItem customquestionitem = new UIMenuItem(tuple.Item1); QuestioningMenu.AddItem(customquestionitem); CustomQuestionsCallbacksAnswersItems.Add(customquestionitem); } if (CustomQuestionsAnswersCallbackItems.Count > 0) { foreach (UIMenuItem item in QuestioningMenu.MenuItems.ToArray()) { if (CustomQuestionsAnswersCallbackItems.Contains(item)) { QuestioningMenu.RemoveItemAt(QuestioningMenu.MenuItems.IndexOf(item)); } } CustomQuestionsAnswersCallbackItems.Clear(); } foreach (Tuple <string, string, Action <Ped, string> > tuple in CurrentEnhancedTrafficStop.CustomQuestionsAnswerWithCallbacks) { UIMenuItem customquestionitem = new UIMenuItem(tuple.Item1); QuestioningMenu.AddItem(customquestionitem); CustomQuestionsAnswersCallbackItems.Add(customquestionitem); } } }
private static void OnItemSelect(UIMenu sender, UIMenuItem selectedItem, int index) { //if (sender == ChecksMenu) //{ // if (selectedItem == CheckCourtResultsItem) // { // sender.Visible = false; // CourtsMenu.Visible = true; // } //} if (sender == TrafficStopMenu) { if (selectedItem == SpeechItem) { string speech = SpeechItem.Collection[SpeechItem.Index].Value.ToString(); CurrentEnhancedTrafficStop.PlaySpecificSpeech(speech); } else if (selectedItem == IDItem) { //Ask for ID CurrentEnhancedTrafficStop.AskForID((EnhancedTrafficStop.OccupantSelector)IDItem.Index); } else if (selectedItem == QuestionDriverItem) { sender.Visible = false; UpdateTrafficStopQuestioning(); QuestioningMenu.Visible = true; } else if (selectedItem == PenaltyItem) { //Issue ticket(bind menu to item)? sender.Visible = false; //Menus.UpdateTicketReasons(); updatePenaltyType(IssueTicketItem.Index); TicketMenu.Visible = true; } else if (selectedItem == WarningItem) { //Let driver go CurrentEnhancedTrafficStop.IssueWarning(); _MenuPool.CloseAllMenus(); } else if (selectedItem == OutOfVehicleItem) { //Order driver out CurrentEnhancedTrafficStop.OutOfVehicle((EnhancedTrafficStop.OccupantSelector)OutOfVehicleItem.Index); _MenuPool.CloseAllMenus(); } } else if (sender == TicketMenu) { if (selectedItem == IssueTicketItem) { //Issue TOR bool SeizeVehicle = SeizeVehicleTicketCheckboxItem.Checked; if (Functions.IsPlayerPerformingPullover()) { CurrentEnhancedTrafficStop.IssueTicket(SeizeVehicle); } else { GameFiber.StartNew(delegate { EnhancedTrafficStop.performTicketAnimation(); }); } _MenuPool.CloseAllMenus(); } else if (selectedItem == TicketOffenceSelectorItem) { sender.Visible = false; OpenOffencesMenu(sender, CurrentEnhancedTrafficStop.SelectedOffences); } } else if (sender == QuestioningMenu) { if (selectedItem == IllegalInVehQuestionItem) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.AnythingIllegalInVehAnswer); } else if (selectedItem == DrinkingQuestionItem) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.DrinkingAnswer); } else if (selectedItem == DrugsQuestionItem) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.DrugsAnswer); } else if (selectedItem == SearchPermissionItem) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.SearchVehAnswer); } else if (CustomQuestionsItems.Contains(selectedItem)) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.CustomQuestionsWithAnswers[CustomQuestionsItems.IndexOf(selectedItem)].Item2); } else if (CustomQuestionsCallbacksAnswersItems.Contains(selectedItem)) { Game.DisplaySubtitle("~h~" + CurrentEnhancedTrafficStop.CustomQuestionsWithCallbacksAnswers[CustomQuestionsCallbacksAnswersItems.IndexOf(selectedItem)].Item2(CurrentEnhancedTrafficStop.Suspect)); } else if (CustomQuestionsAnswersCallbackItems.Contains(selectedItem)) { string Text = CurrentEnhancedTrafficStop.CustomQuestionsAnswerWithCallbacks[CustomQuestionsAnswersCallbackItems.IndexOf(selectedItem)].Item2; Game.DisplaySubtitle("~h~" + Text); CurrentEnhancedTrafficStop.CustomQuestionsAnswerWithCallbacks[CustomQuestionsAnswersCallbackItems.IndexOf(selectedItem)].Item3(CurrentEnhancedTrafficStop.Suspect, Text); } } }