]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/inventory.h
Don't include client/game.h on server build
[dragonfireclient.git] / src / inventory.h
index 6c84f5fd12ac7f734cfed949397ae7efbf56561d..8b31de3a8ae39ee563764fd09991e89ef11fad51 100644 (file)
@@ -198,7 +198,7 @@ class InventoryList
        void serialize(std::ostream &os, bool incremental) const;
        void deSerialize(std::istream &is);
 
-       InventoryList(const InventoryList &other);
+       InventoryList(const InventoryList &other) { *this = other; }
        InventoryList & operator = (const InventoryList &other);
        bool operator == (const InventoryList &other) const;
        bool operator != (const InventoryList &other) const
@@ -206,16 +206,25 @@ class InventoryList
                return !(*this == other);
        }
 
-       const std::string &getName() const;
-       u32 getSize() const;
-       u32 getWidth() const;
+       const std::string &getName() const { return m_name; }
+       u32 getSize() const { return static_cast<u32>(m_items.size()); }
+       u32 getWidth() const { return m_width; }
        // Count used slots
        u32 getUsedSlots() const;
-       u32 getFreeSlots() const;
 
        // Get reference to item
-       const ItemStack& getItem(u32 i) const;
-       ItemStack& getItem(u32 i);
+       const ItemStack &getItem(u32 i) const
+       {
+               assert(i < m_size); // Pre-condition
+               return m_items[i];
+       }
+       ItemStack &getItem(u32 i)
+       {
+               assert(i < m_size); // Pre-condition
+               return m_items[i];
+       }
+       // Get reference to all items
+       const std::vector<ItemStack> &getItems() const { return m_items; }
        // Returns old item. Parameter can be an empty item.
        ItemStack changeItem(u32 i, const ItemStack &newitem);
        // Delete item
@@ -272,7 +281,7 @@ class InventoryList
 private:
        std::vector<ItemStack> m_items;
        std::string m_name;
-       u32 m_size;
+       u32 m_size; // always the same as m_items.size()
        u32 m_width = 0;
        IItemDefManager *m_itemdef;
        bool m_dirty = true;
@@ -302,7 +311,7 @@ class Inventory
        InventoryList * addList(const std::string &name, u32 size);
        InventoryList * getList(const std::string &name);
        const InventoryList * getList(const std::string &name) const;
-       std::vector<const InventoryList*> getLists();
+       const std::vector<InventoryList *> &getLists() const { return m_lists; }
        bool deleteList(const std::string &name);
        // A shorthand for adding items. Returns leftover item (possibly empty).
        ItemStack addItem(const std::string &listname, const ItemStack &newitem)
@@ -336,7 +345,7 @@ class Inventory
        }
 private:
        // -1 if not found
-       const s32 getListIndex(const std::string &name) const;
+       s32 getListIndex(const std::string &name) const;
 
        std::vector<InventoryList*> m_lists;
        IItemDefManager *m_itemdef;