1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-12-02 05:04:30 +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) if (isFilterListOpen)
{ {
// When the filter list combo box is open, send all inputs to it. // 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. // Select the highlighted entry in the combo box and close it.
int index = mFilterValue->getIndexSelected(); int index = mFilterValue->getIndexSelected();
mFilterValue->setIndexSelected(index); mFilterValue->setIndexSelected(index);
onFilterChanged(mFilterValue, index); onFilterChanged(mFilterValue, index);
MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mNameEdit); // Close list 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 // Close the list without selecting anything
mFilterValue->clearIndexSelected(); mFilterValue->clearIndexSelected();
@ -610,6 +611,7 @@ namespace MWGui
MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mFilterValue); MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mFilterValue);
MWBase::Environment::get().getWindowManager()->injectKeyPress(MyGUI::KeyCode::ArrowDown, 0, false); 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) else if (arg.button == SDL_CONTROLLER_BUTTON_LEFTSHOULDER)
onDecreaseButtonTriggered(); onDecreaseButtonTriggered();

View file

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

View file

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

View file

@ -388,6 +388,7 @@ namespace MWGui
{ {
if (mControllerFocus >= 0 && mControllerFocus < mAttributeButtons.size()) if (mControllerFocus >= 0 && mControllerFocus < mAttributeButtons.size())
onAttributeClicked(mAttributeButtons[mControllerFocus]); onAttributeClicked(mAttributeButtons[mControllerFocus]);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Item Gold Up"));
} }
else if (arg.button == SDL_CONTROLLER_BUTTON_X) 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()) if ((arg.button == SDL_CONTROLLER_BUTTON_A && !mGemBox->getVisible())
|| arg.button == SDL_CONTROLLER_BUTTON_Y) || arg.button == SDL_CONTROLLER_BUTTON_Y)
{
onSelectItem(mGemIcon); onSelectItem(mGemIcon);
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
}
else if (arg.button == SDL_CONTROLLER_BUTTON_B) else if (arg.button == SDL_CONTROLLER_BUTTON_B)
onCancel(mCancelButton); onCancel(mCancelButton);
else else

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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