summaryrefslogtreecommitdiff
path: root/src/gui/shop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/shop.cpp')
-rw-r--r--src/gui/shop.cpp37
1 files changed, 16 insertions, 21 deletions
diff --git a/src/gui/shop.cpp b/src/gui/shop.cpp
index 3d972bc2..ff6e3d68 100644
--- a/src/gui/shop.cpp
+++ b/src/gui/shop.cpp
@@ -22,8 +22,8 @@
*/
#include "shop.h"
-#include "../utils/tostring.h"
-#include "../resources/itemdb.h"
+
+#include "../utils/dtor.h"
ShopItems::~ShopItems()
{
@@ -32,43 +32,38 @@ ShopItems::~ShopItems()
int ShopItems::getNumberOfElements()
{
- return mItemsShop.size();
+ return mShopItems.size();
}
std::string ShopItems::getElementAt(int i)
{
- return mItemsShop.at(i).name;
+ return mShopItems.at(i)->getDisplayName();
}
-void ShopItems::addItem(short id, int price)
+void ShopItems::addItem(int inventoryIndex, short id, int amount, int price)
{
- ITEM_SHOP item_shop;
-
- item_shop.name = ItemDB::get(id).getName()
- + " (" + toString(price) + " GP)";
- item_shop.price = price;
- item_shop.id = id;
- item_shop.image = ItemDB::get(id).getImage();
-
- mItemsShop.push_back(item_shop);
+ ShopItem *item = new ShopItem(id, amount, price);
+ item->setInvIndex(inventoryIndex);
+ mShopItems.push_back(item);
}
-ITEM_SHOP ShopItems::at(int i)
+void ShopItems::addItem(short id, int price)
{
- return mItemsShop.at(i);
+ mShopItems.push_back(new ShopItem(id, 0, price));
}
-void ShopItems::push_back(ITEM_SHOP item_shop)
+ShopItem* ShopItems::at(int i) const
{
- mItemsShop.push_back(item_shop);
+ return mShopItems.at(i);
}
void ShopItems::clear()
{
- mItemsShop.clear();
+ std::for_each(mShopItems.begin(), mShopItems.end(), make_dtor(mShopItems));
+ mShopItems.clear();
}
-std::vector<ITEM_SHOP>* ShopItems::getShop()
+std::vector<ShopItem*>* ShopItems::getShop()
{
- return &mItemsShop;
+ return &mShopItems;
}