Skip to content

Commit

Permalink
~ polished some minor quirks with consumables due to new use_conditio…
Browse files Browse the repository at this point in the history
…n feature
  • Loading branch information
revolucas authored and Xottab-DUTY committed Dec 16, 2017
1 parent 801239f commit e21a81f
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
3 changes: 2 additions & 1 deletion src/xrGame/eatable_item.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,8 @@ bool CEatableItem::UseBy(CEntityAlive* entity_alive)
m_iRemainingUses = 0;

SetCondition((float)m_iRemainingUses / (float)m_iMaxUses);
CurrentGameUI()->GetActorMenu().RefreshConsumableCells();
if (IsUsingCondition())
CurrentGameUI()->GetActorMenu().RefreshConsumableCells();

return true;
}
27 changes: 15 additions & 12 deletions src/xrGame/ui/UIActorMenuInventory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1300,29 +1300,32 @@ void CUIActorMenu::MoveArtefactsToBag()
void CUIActorMenu::RefreshConsumableCells()
{
CUICellItem* ci = GetCurrentConsumable();
if (ci)
if (!ci)
return;

if (ci->ChildsCount() > 0)
{
CEatableItem* eitm = smart_cast<CEatableItem*>((CEatableItem*)ci->m_pData);
if (eitm)
{
Fvector2 cp = GetUICursor().GetCursorPosition(); // XXX: This is unused
CUIDragDropListEx* invlist = GetListByType(iActorBag);

CUICellItem* parent = invlist->RemoveItem(ci, true);
const u32 c = parent->ChildsCount();
if (c > 0)
if (invlist->IsOwner(ci))
{
while (parent->ChildsCount())
CUICellItem* parent = invlist->RemoveItem(ci, true);

if (parent->ChildsCount() > 0)
{
CUICellItem* child = parent->PopChild(nullptr);
invlist->SetItem(child);
while (parent->ChildsCount())
{
CUICellItem* child = parent->PopChild(nullptr);
invlist->SetItem(child);
}
}

invlist->SetItem(parent);
}
else
invlist->SetItem(parent);
}
SetCurrentConsumable(nullptr);
}

SetCurrentConsumable(nullptr);
}

0 comments on commit e21a81f

Please sign in to comment.