]> git.localhorst.tv Git - l2e.git/blobdiff - src/common/Inventory.cpp
implemented item dropping
[l2e.git] / src / common / Inventory.cpp
index d118f2187daeb9bb28f84d2ccd48882bad6c8c58..d8ba20c08af5a35c0af1d1311ab2474259634449 100644 (file)
@@ -7,6 +7,11 @@
 
 #include "Inventory.h"
 
+#include "Item.h"
+
+#include <algorithm>
+
+
 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]);
+}
+
 }