1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-11-02 13:26:39 +00:00

Clean up controller logic to match item transfer logic

This commit is contained in:
Andrew Lanzone 2025-07-13 15:12:33 -07:00
parent 6a02e6a4bc
commit a894481fd7
2 changed files with 10 additions and 2 deletions

View file

@ -336,7 +336,8 @@ namespace MWGui
// Show a dialog to select a count of items, but not when using an item from the inventory
// in controller mode. In that case, we skip the dialog and just use one item immediately.
if (count > 1 && !shift && mPendingControllerAction != ControllerAction::Use)
if (count > 1 && !shift && mPendingControllerAction != ControllerAction::Use
&& mPendingControllerAction != ControllerAction::Unequip)
{
CountDialog* dialog = MWBase::Environment::get().getWindowManager()->getCountDialog();
std::string message = "#{sTake}";
@ -373,6 +374,12 @@ namespace MWGui
// stack of items; we only want to use the first item.
onBackgroundSelected();
}
else if (mPendingControllerAction == ControllerAction::Unequip)
{
// Drop on inventory background to unequip
dragItem(nullptr, count);
onBackgroundSelected();
}
else if (mPendingControllerAction == ControllerAction::Drop)
dropItem(nullptr, count);
else if (mTrading || mPendingControllerAction == ControllerAction::Sell)
@ -1059,8 +1066,8 @@ namespace MWGui
if (mGuiMode == MWGui::GM_Inventory)
{
// Unequip an item.
mPendingControllerAction = ControllerAction::Unequip;
mItemView->onControllerButton(SDL_CONTROLLER_BUTTON_A);
onBackgroundSelected(); // Drop on inventory background to unequip
}
}
else if (arg.button == SDL_CONTROLLER_BUTTON_LEFTSHOULDER)

View file

@ -138,6 +138,7 @@ namespace MWGui
Transfer,
Sell,
Drop,
Unequip,
};
ControllerAction mPendingControllerAction;