fix disenchanting when dropping item from inv

This commit is contained in:
sylvessa 2026-04-02 17:45:21 -05:00
parent b97fe888d1
commit f364a5bb07

View file

@ -265,7 +265,10 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
dropAllowed = false; dropAllowed = false;
else else
{ {
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux)); carried->id = outId;
carried->count = outCount;
carried->setAuxValue(outAux);
player->drop(carried);
inventory->setCarried(nullptr); inventory->setCarried(nullptr);
dropAllowed = false; dropAllowed = false;
} }
@ -295,9 +298,12 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
dropAllowed = false; dropAllowed = false;
else else
{ {
carried->remove(1); shared_ptr<ItemInstance> dropped = carried->remove(1);
if (carried->count == 0) inventory->setCarried(nullptr); if (carried->count == 0) inventory->setCarried(nullptr);
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux)); dropped->id = outId;
dropped->count = outCount;
dropped->setAuxValue(outAux);
player->drop(dropped);
dropAllowed = false; dropAllowed = false;
} }
} }
@ -548,7 +554,10 @@ shared_ptr<ItemInstance> AbstractContainerMenu::clicked(int slotIndex, int butto
{ {
shared_ptr<ItemInstance> item = slot->remove(dropCount); shared_ptr<ItemInstance> item = slot->remove(dropCount);
slot->onTake(player, item); slot->onTake(player, item);
player->drop(std::make_shared<ItemInstance>(outId, outCount, outAux)); item->id = outId;
item->count = outCount;
item->setAuxValue(outAux);
player->drop(item);
dropAllowed = false; dropAllowed = false;
} }
} }