summaryrefslogtreecommitdiff
path: root/src/gui/models
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/models')
-rw-r--r--src/gui/models/shopitems.cpp45
-rw-r--r--src/gui/models/shopitems.h34
2 files changed, 43 insertions, 36 deletions
diff --git a/src/gui/models/shopitems.cpp b/src/gui/models/shopitems.cpp
index e154c0b2e..52a0d60b2 100644
--- a/src/gui/models/shopitems.cpp
+++ b/src/gui/models/shopitems.cpp
@@ -50,32 +50,38 @@ std::string ShopItems::getElementAt(int i)
return mShopItems.at(i)->getDisplayName();
}
-void ShopItems::addItem(const int id,
- const int type,
- const unsigned char color,
- const int amount,
- const int price)
+ShopItem *ShopItems::addItem(const int id,
+ const int type,
+ const unsigned char color,
+ const int amount,
+ const int price)
{
- mShopItems.push_back(new ShopItem(-1, id, type, color, amount, price));
+ ShopItem *const item = new ShopItem(-1, id, type, color, amount, price);
+ mShopItems.push_back(item);
+ return item;
}
-void ShopItems::addItemNoDup(const int id,
- const int type,
- const unsigned char color,
- const int amount,
- const int price)
+ShopItem *ShopItems::addItemNoDup(const int id,
+ const int type,
+ const unsigned char color,
+ const int amount,
+ const int price)
{
- const ShopItem *const item = findItem(id, color);
+ ShopItem *item = findItem(id, color);
if (!item)
- mShopItems.push_back(new ShopItem(-1, id, type, color, amount, price));
+ {
+ item = new ShopItem(-1, id, type, color, amount, price);
+ mShopItems.push_back(item);
+ }
+ return item;
}
-void ShopItems::addItem2(const int inventoryIndex,
- const int id,
- const int type,
- const unsigned char color,
- const int quantity,
- const int price)
+ShopItem *ShopItems::addItem2(const int inventoryIndex,
+ const int id,
+ const int type,
+ const unsigned char color,
+ const int quantity,
+ const int price)
{
ShopItem *item = nullptr;
if (mMergeDuplicates)
@@ -90,6 +96,7 @@ void ShopItems::addItem2(const int inventoryIndex,
item = new ShopItem(inventoryIndex, id, type, color, quantity, price);
mShopItems.push_back(item);
}
+ return item;
}
ShopItem *ShopItems::at(unsigned int i) const
diff --git a/src/gui/models/shopitems.h b/src/gui/models/shopitems.h
index f0db94e3a..d3d4a44fc 100644
--- a/src/gui/models/shopitems.h
+++ b/src/gui/models/shopitems.h
@@ -59,11 +59,11 @@ class ShopItems final : public ListModel
/**
* Adds an item to the list.
*/
- void addItem(const int id,
- const int type,
- const unsigned char color,
- const int amount,
- const int price);
+ ShopItem *addItem(const int id,
+ const int type,
+ const unsigned char color,
+ const int amount,
+ const int price);
/**
* Adds an item to the list (used by sell dialog). Looks for
@@ -74,18 +74,18 @@ class ShopItems final : public ListModel
* @param quantity number of available copies of the item
* @param price price of the item
*/
- void addItem2(const int inventoryIndex,
- const int id,
- const int type,
- const unsigned char color,
- const int amount,
- const int price);
-
- void addItemNoDup(const int id,
- const int type,
- const unsigned char color,
- const int amount,
- const int price);
+ ShopItem *addItem2(const int inventoryIndex,
+ const int id,
+ const int type,
+ const unsigned char color,
+ const int amount,
+ const int price);
+
+ ShopItem *addItemNoDup(const int id,
+ const int type,
+ const unsigned char color,
+ const int amount,
+ const int price);
/**
* Returns the number of items in the shop.