1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-10-15 12:26:37 +00:00

Add menu click sounds to some menus when activated by the controller

This commit is contained in:
Andrew Lanzone 2025-06-03 21:57:43 -07:00
parent 2dfe1ef7b1
commit c35e0d7336
13 changed files with 39 additions and 4 deletions

View file

@ -557,15 +557,16 @@ namespace MWGui
if (isFilterListOpen)
{
// When the filter list combo box is open, send all inputs to it.
if (arg.button == SDL_CONTROLLER_BUTTON_A)
if (arg.button == SDL_CONTROLLER_BUTTON_A || arg.button == SDL_CONTROLLER_BUTTON_Y)
{
// Select the highlighted entry in the combo box and close it.
int index = mFilterValue->getIndexSelected();
mFilterValue->setIndexSelected(index);
onFilterChanged(mFilterValue, index);
MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mNameEdit); // Close list
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B || arg.button == SDL_CONTROLLER_BUTTON_Y)
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
{
// Close the list without selecting anything
mFilterValue->clearIndexSelected();
@ -610,6 +611,7 @@ namespace MWGui
MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mFilterValue);
MWBase::Environment::get().getWindowManager()->injectKeyPress(MyGUI::KeyCode::ArrowDown, 0, false);
}
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_LEFTSHOULDER)
onDecreaseButtonTriggered();

View file

@ -177,7 +177,10 @@ namespace MWGui
bool PersuasionDialog::onControllerButtonEvent(const SDL_ControllerButtonEvent& arg)
{
if (arg.button == SDL_CONTROLLER_BUTTON_A)
{
onPersuade(mButtons[mControllerFocus]);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancel(mCancelButton);
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
@ -960,6 +963,7 @@ namespace MWGui
onGoodbyeActivated();
else
onSelectListItem(mTopicsList->getItemNameAt(mControllerFocus), mControllerFocus);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
{

View file

@ -1001,6 +1001,7 @@ namespace MWGui
onFilterChanged(mFilterApparel);
else if (mFilterMisc->getStateSelected())
onFilterChanged(mFilterMagic);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
{
@ -1014,6 +1015,7 @@ namespace MWGui
onFilterChanged(mFilterMisc);
else if (mFilterMisc->getStateSelected())
onFilterChanged(mFilterAll);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else
{

View file

@ -388,6 +388,7 @@ namespace MWGui
{
if (mControllerFocus >= 0 && mControllerFocus < mAttributeButtons.size())
onAttributeClicked(mAttributeButtons[mControllerFocus]);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Item Gold Up"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_X)
{

View file

@ -144,7 +144,10 @@ namespace MWGui
{
if ((arg.button == SDL_CONTROLLER_BUTTON_A && !mGemBox->getVisible())
|| arg.button == SDL_CONTROLLER_BUTTON_Y)
{
onSelectItem(mGemIcon);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancel(mCancelButton);
else

View file

@ -158,7 +158,10 @@ namespace MWGui
{
if ((arg.button == SDL_CONTROLLER_BUTTON_A && !mToolBox->getVisible())
|| arg.button == SDL_CONTROLLER_BUTTON_Y)
{
onSelectItem(mToolIcon);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancel(mCancelButton);
else

View file

@ -535,6 +535,7 @@ namespace MWGui
onOkButtonClicked(mOkButton);
else
onCancelButtonClicked(mCancelButton);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
{
@ -546,6 +547,7 @@ namespace MWGui
index = wrap(index + 1, mCharacterSelection->getItemCount());
mCharacterSelection->setIndexSelected(index);
onCharacterSelected(mCharacterSelection, index);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
{

View file

@ -1146,7 +1146,7 @@ namespace MWGui
uint32_t index = mSettingsTab->getIndexSelected();
index = wrap(index - 1, mSettingsTab->getItemCount());
mSettingsTab->setIndexSelected(index);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
return true;
}
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
@ -1154,7 +1154,7 @@ namespace MWGui
uint32_t index = mSettingsTab->getIndexSelected();
index = wrap(index + 1, mSettingsTab->getItemCount());
mSettingsTab->setIndexSelected(index);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
return true;
}

View file

@ -401,11 +401,15 @@ namespace MWGui
onOkButtonClicked(mOkButton);
else if (button == mDeleteButton)
onDeleteButtonClicked(mDeleteButton);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancelButtonClicked(mCancelButton);
else if (arg.button == SDL_CONTROLLER_BUTTON_X)
{
onOkButtonClicked(mOkButton);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
{
if (mControllerFocus == 0)
@ -1036,10 +1040,12 @@ namespace MWGui
if (!mRightColumn && mAvailableFocus >= 0 && mAvailableFocus < mAvailableButtons.size())
{
onAvailableEffectClicked(mAvailableButtons[mAvailableFocus]);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (mRightColumn && mEffectFocus >= 0 && mEffectFocus < mEffectButtons.size())
{
onEditEffect(mEffectButtons[mEffectFocus].second);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)

View file

@ -90,6 +90,7 @@ namespace MWGui
if (arg.button == SDL_CONTROLLER_BUTTON_A)
{
onOkClicked(nullptr);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
return true;
}

View file

@ -717,6 +717,7 @@ namespace MWGui
onFilterChanged(mFilterApparel);
else if (mFilterMisc->getStateSelected())
onFilterChanged(mFilterMagic);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSHOULDER)
{
@ -730,6 +731,7 @@ namespace MWGui
onFilterChanged(mFilterMisc);
else if (mFilterMisc->getStateSelected())
onFilterChanged(mFilterAll);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSTICK ||
arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP ||

View file

@ -259,7 +259,10 @@ namespace MWGui
if (arg.button == SDL_CONTROLLER_BUTTON_A)
{
if (mControllerFocus >= 0 && mControllerFocus < mDestinationButtons.size())
{
onTravelButtonClick(mDestinationButtons[mControllerFocus]);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
{

View file

@ -339,11 +339,17 @@ namespace MWGui
bool WaitDialog::onControllerButtonEvent(const SDL_ControllerButtonEvent& arg)
{
if (arg.button == SDL_CONTROLLER_BUTTON_A)
{
onWaitButtonClicked(mWaitButton);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancelButtonClicked(mCancelButton);
else if (arg.button == SDL_CONTROLLER_BUTTON_X && mUntilHealedButton->getVisible())
{
onUntilHealedButtonClicked(mUntilHealedButton);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_LEFT)
MWBase::Environment::get().getWindowManager()->injectKeyPress(MyGUI::KeyCode::ArrowDown, 0, false);
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT)