From 2f8ee95fbacb71e7cbca85fcc11e6f9f7e36c258 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Thu, 12 Jun 2008 09:06:01 +0000 Subject: Merged revisions 3738 via svnmerge from https://themanaworld.svn.sourceforge.net/svnroot/themanaworld/tmw/trunk ........ r3738 | b_lindeijer | 2007-11-16 00:44:01 +0100 (Fri, 16 Nov 2007) | 3 lines 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 | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/item.cpp') diff --git a/src/item.cpp b/src/item.cpp index 3cea30e5..e84a06df 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -21,3 +21,38 @@ * $Id$ */ +#include "item.h" + +#include "resources/image.h" +#include "resources/resourcemanager.h" + +Item::Item(int id, int quantity, bool equipment, bool equipped): + mImage(0), + mQuantity(quantity), + mEquipment(equipment), + mEquipped(equipped) +{ + setId(id); +} + +Item::~Item() +{ + if (mImage) + mImage->decRef(); +} + +void Item::setId(int id) +{ + mId = id; + + // 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