From 0e925e97554aae573e895afa4e3d8450f01df342 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 15 Nov 2007 23:44:01 +0000 Subject: Moved item icon from ItemInfo class to the Item class, so that it can be loaded on demand. Results in faster startup time and reduced memory usage. --- src/gui/shop.cpp | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) (limited to 'src/gui/shop.cpp') diff --git a/src/gui/shop.cpp b/src/gui/shop.cpp index e2fd54f2..1731ae4c 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,45 +32,36 @@ 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(int id, int amount, int price) { - ITEM_SHOP item_shop; - ItemInfo const &item = ItemDB::get(id); - - item_shop.name = item.getName() - + " (" + toString(price) + " GP)"; - item_shop.price = price; - item_shop.id = id; - item_shop.quantity = amount; - item_shop.image = item.getImage(); - - mItemsShop.push_back(item_shop); + mShopItems.push_back(new ShopItem(id, amount, price)); } -ITEM_SHOP ShopItems::at(int i) +void ShopItems::addItem(ShopItem* shopItem) { - return mItemsShop.at(i); + mShopItems.push_back(shopItem); } -void ShopItems::push_back(ITEM_SHOP item_shop) +ShopItem* ShopItems::at(int i) { - 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* ShopItems::getShop() +std::vector* ShopItems::getShop() { - return &mItemsShop; + return &mShopItems; } -- cgit v1.2.3-70-g09d2