X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FInventory.cpp;h=d8ba20c08af5a35c0af1d1311ab2474259634449;hb=bdebc167119794e59c26a058d1155a337b1bc768;hp=d118f2187daeb9bb28f84d2ccd48882bad6c8c58;hpb=341371f1ac26af555407bf9fe9b78794297a385b;p=l2e.git diff --git a/src/common/Inventory.cpp b/src/common/Inventory.cpp index d118f21..d8ba20c 100644 --- a/src/common/Inventory.cpp +++ b/src/common/Inventory.cpp @@ -7,6 +7,11 @@ #include "Inventory.h" +#include "Item.h" + +#include + + namespace common { Inventory::Inventory() { @@ -48,6 +53,10 @@ void Inventory::Remove(const Item *item, int count) { } } +void Inventory::RemoveAll(const Item *item) { + Remove(item, 255); +} + Inventory::Entry *Inventory::FindItem(const Item *item) { for (int i(0); i < MaxItems(); ++i) { if (item == ItemAt(i)) { @@ -61,4 +70,25 @@ bool Inventory::SloteFree(int offset) const { return !ItemAt(offset); } + +void Inventory::Sort() { + std::sort(entries, entries + 96, Entry::Less); +} + +bool Inventory::Entry::Less(const Entry &lhs, const Entry &rhs) { + if (lhs.item) { + if (rhs.item) { + return Item::Less(*lhs.item, *rhs.item); + } else { + return true; + } + } else { + return false; + } +} + +void Inventory::SwapEntriesAt(int lhs, int rhs) { + std::swap(entries[lhs], entries[rhs]); +} + }