diff options
Diffstat (limited to 'src/gui/widgets')
-rw-r--r-- | src/gui/widgets/shopitems.cpp | 21 | ||||
-rw-r--r-- | src/gui/widgets/shopitems.h | 9 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/gui/widgets/shopitems.cpp b/src/gui/widgets/shopitems.cpp index 3e46f51a4..c0b93508e 100644 --- a/src/gui/widgets/shopitems.cpp +++ b/src/gui/widgets/shopitems.cpp @@ -49,23 +49,24 @@ std::string ShopItems::getElementAt(int i) return mShopItems.at(i)->getDisplayName(); } -void ShopItems::addItem(int id, int amount, int price) +void ShopItems::addItem(int id, unsigned char color, int amount, int price) { - mShopItems.push_back(new ShopItem(-1, id, amount, price)); + mShopItems.push_back(new ShopItem(-1, id, color, amount, price)); } -void ShopItems::addItemNoDup(int id, int amount, int price) +void ShopItems::addItemNoDup(int id, unsigned char color, int amount, int price) { - ShopItem *item = findItem(id); + ShopItem *item = findItem(id, color); if (!item) - mShopItems.push_back(new ShopItem(-1, id, amount, price)); + mShopItems.push_back(new ShopItem(-1, id, color, amount, price)); } -void ShopItems::addItem2(int inventoryIndex, int id, int quantity, int price) +void ShopItems::addItem2(int inventoryIndex, int id, unsigned char color, + int quantity, int price) { ShopItem *item = 0; if (mMergeDuplicates) - item = findItem(id); + item = findItem(id, color); if (item) { @@ -73,7 +74,7 @@ void ShopItems::addItem2(int inventoryIndex, int id, int quantity, int price) } else { - item = new ShopItem(inventoryIndex, id, quantity, price); + item = new ShopItem(inventoryIndex, id, color, quantity, price); mShopItems.push_back(item); } } @@ -100,7 +101,7 @@ void ShopItems::clear() mShopItems.clear(); } -ShopItem *ShopItems::findItem(int id) +ShopItem *ShopItems::findItem(int id, unsigned char color) { ShopItem *item; @@ -109,7 +110,7 @@ ShopItem *ShopItems::findItem(int id) while (it != e) { item = *(it); - if (item->getId() == id) + if (item->getId() == id && item->getColor() == color) return item; ++it; diff --git a/src/gui/widgets/shopitems.h b/src/gui/widgets/shopitems.h index 949dcfc78..2b2dcc5eb 100644 --- a/src/gui/widgets/shopitems.h +++ b/src/gui/widgets/shopitems.h @@ -55,7 +55,7 @@ class ShopItems : public gcn::ListModel /** * Adds an item to the list. */ - void addItem(int id, int amount, int price); + void addItem(int id, unsigned char color, int amount, int price); /** * Adds an item to the list (used by sell dialog). Looks for @@ -66,9 +66,10 @@ class ShopItems : public gcn::ListModel * @param quantity number of available copies of the item * @param price price of the item */ - void addItem2(int inventoryIndex, int id, int amount, int price); + void addItem2(int inventoryIndex, int id, unsigned char color, + int amount, int price); - void addItemNoDup(int id, int amount, int price); + void addItemNoDup(int id, unsigned char color, int amount, int price); /** * Returns the number of items in the shop. @@ -109,7 +110,7 @@ class ShopItems : public gcn::ListModel * * @return the item found or 0 */ - ShopItem *findItem(int id); + ShopItem *findItem(int id, unsigned char color); /** The list of items in the shop. */ std::vector<ShopItem*> mShopItems; |