예제 #1
0
        //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);
                }
            }
        }
예제 #2
0
        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);
                }
            }
        }