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/item.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/item.cpp') diff --git a/src/item.cpp b/src/item.cpp index 66f638a5..210589e9 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -23,16 +23,38 @@ #include "item.h" +#include "resources/image.h" +#include "resources/resourcemanager.h" + Item::Item(int id, int quantity) : + mImage(0), mQuantity(quantity) { setId(id); } +Item::~Item() +{ + if (mImage) + mImage->decRef(); +} + void Item::setId(int id) { mId = id; + // Types 0 and 1 are not equippable items. mEquipment = id && getInfo().getType() >= 2; + + // Load the associated image + if (mImage) + mImage->decRef(); + + ResourceManager *resman = ResourceManager::getInstance(); + std::string imagePath = "graphics/items/" + getInfo().getImageName(); + mImage = resman->getImage(imagePath); + + if (!mImage) + mImage = resman->getImage("graphics/gui/unknown-item.png"); } -- cgit v1.2.3-70-g09d2