Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Ensure no item stack is being held before crafting (#4779)
- Loading branch information
Showing
with
17 additions
and
11 deletions.
-
+17
−11
src/gui/guiFormSpecMenu.cpp
|
@@ -3668,18 +3668,24 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event) |
|
|
a->from_i = m_selected_item->i; |
|
|
m_invmgr->inventoryAction(a); |
|
|
} else if (craft_amount > 0) { |
|
|
m_selected_content_guess = ItemStack(); // Clear |
|
|
|
|
|
// Send IAction::Craft |
|
|
|
|
|
assert(s.isValid()); |
|
|
assert(inv_s); |
|
|
|
|
|
infostream << "Handing IAction::Craft to manager" << std::endl; |
|
|
ICraftAction *a = new ICraftAction(); |
|
|
a->count = craft_amount; |
|
|
a->craft_inv = s.inventoryloc; |
|
|
m_invmgr->inventoryAction(a); |
|
|
|
|
|
// if there are no items selected or the selected item |
|
|
// belongs to craftresult list, proceed with crafting |
|
|
if (m_selected_item == NULL || |
|
|
!m_selected_item->isValid() || m_selected_item->listname == "craftresult") { |
|
|
|
|
|
m_selected_content_guess = ItemStack(); // Clear |
|
|
|
|
|
assert(inv_s); |
|
|
|
|
|
// Send IACTION_CRAFT |
|
|
infostream << "Handing IACTION_CRAFT to manager" << std::endl; |
|
|
ICraftAction *a = new ICraftAction(); |
|
|
a->count = craft_amount; |
|
|
a->craft_inv = s.inventoryloc; |
|
|
m_invmgr->inventoryAction(a); |
|
|
} |
|
|
} |
|
|
|
|
|
// If m_selected_amount has been decreased to zero, deselect |
|
|