aboutsummaryrefslogtreecommitdiff
path: root/src/inventory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/inventory.h')
-rw-r--r--src/inventory.h29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/inventory.h b/src/inventory.h
index 6c84f5fd1..8b31de3a8 100644
--- a/src/inventory.h
+++ b/src/inventory.h
@@ -198,7 +198,7 @@ public:
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 @@ public:
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 @@ public:
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 @@ public:
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 @@ public:
}
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;