diff options
Diffstat (limited to 'src/inventory.cpp')
-rw-r--r-- | src/inventory.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/inventory.cpp b/src/inventory.cpp index 3ca26e1e..cdd7b61c 100644 --- a/src/inventory.cpp +++ b/src/inventory.cpp @@ -29,7 +29,11 @@ struct SlotUsed : public std::unary_function<Item*, bool> { bool operator()(const Item *item) const { +#ifdef TMWSERV_SUPPORT + return item && item->getId() && item->getQuantity(); +#else return item && item->getId() != -1 && item->getQuantity() > 0; +#endif } }; @@ -50,7 +54,11 @@ Inventory::~Inventory() Item* Inventory::getItem(int index) const { - if (index < 0 || index >= INVENTORY_SIZE || !mItems[index] || mItems[index]->getQuantity() <= 0) +#ifdef TMWSERV_SUPPORT + if (index < 0 || index >= mSize) +#else + if (index < 0 || index >= mSize || !mItems[index] || mItems[index]->getQuantity() <= 0) +#endif return 0; return mItems[index]; @@ -126,7 +134,11 @@ bool Inventory::contains(Item *item) const int Inventory::getFreeSlot() const { +#ifdef TMWSERV_SUPPORT + Item **i = std::find_if(mItems, mItems + mSize, +#else Item **i = std::find_if(mItems + 2, mItems + mSize, +#endif std::not1(SlotUsed())); return (i == mItems + mSize) ? -1 : (i - mItems); } @@ -144,8 +156,3 @@ int Inventory::getLastUsedSlot() const return -1; } - -int Inventory::getInventorySize() const -{ - return INVENTORY_SIZE - 2; -} |