/// <summary> /// Responds to user input, changing the selected entry and accepting /// or cancelling the menu. /// </summary> public override void HandleInput(InputManager input) { // Move to the previous menu entry? if (input.IsMenuUp()) { SoundManager.PlaySound(SoundManager.SOUND_MENU_UP); selectedEntry--; if (selectedEntry < 0) selectedEntry = menuEntries.Count - 1; } // Move to the next menu entry? if (input.IsMenuDown()) { SoundManager.PlaySound(SoundManager.SOUND_MENU_DOWN); selectedEntry++; if (selectedEntry >= menuEntries.Count) selectedEntry = 0; } // Accept or cancel the menu? We pass in our ControllingPlayer, which may // either be null (to accept input from any player) or a specific index. // If we pass a null controlling player, the InputState helper returns to // us which player actually provided the input. We pass that through to // OnSelectEntry and OnCancel, so they can tell which player triggered them. if (input.IsMenuSelect()) { if (selectedEntry == menuEntries.Count - 1 && lastOptionExit) SoundManager.PlaySound(SoundManager.SOUND_MENU_CANCEL); else SoundManager.PlaySound(SoundManager.SOUND_MENU_CONFIRM); OnSelectEntry(selectedEntry); } else if (input.IsMenuCancel()) { SoundManager.PlaySound(SoundManager.SOUND_MENU_CANCEL); OnCancel(); } }
/// <summary> /// Responds to user input, changing the selected entry and accepting /// or cancelling the menu. /// </summary> public override void HandleInput(InputManager input) { // Only if we are currently answering if (status == ChatStatus.PlayerAnswer) { // Move to the previous menu entry? if (input.IsMenuUp()) { selectedEntry--; if (selectedEntry < 0) selectedEntry = answers.Count - 1; } // Move to the next menu entry? if (input.IsMenuDown()) { selectedEntry++; if (selectedEntry >= answers.Count) selectedEntry = 0; } } if (input.IsMenuSelect()) OnSelectEntry(selectedEntry); }