summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2009-10-15 07:22:29 -0600
committerJared Adams <jaxad0127@gmail.com>2009-10-15 07:22:29 -0600
commit59657fcbfa88a8f7a15bf4350f8addf399e20bda (patch)
treee5a9a856dc80bd55427380383a5953b75c874b4a
parent2f55dd130c886376a45c9d0054dbd987cc055155 (diff)
downloadmana-59657fcbfa88a8f7a15bf4350f8addf399e20bda.tar.gz
mana-59657fcbfa88a8f7a15bf4350f8addf399e20bda.tar.bz2
mana-59657fcbfa88a8f7a15bf4350f8addf399e20bda.tar.xz
mana-59657fcbfa88a8f7a15bf4350f8addf399e20bda.zip
Make sure item icons in the invy are full opacity
-rw-r--r--src/flooritem.cpp10
-rw-r--r--src/item.cpp8
-rw-r--r--src/item.h6
3 files changed, 19 insertions, 5 deletions
diff --git a/src/flooritem.cpp b/src/flooritem.cpp
index b2f6376b..9420afb4 100644
--- a/src/flooritem.cpp
+++ b/src/flooritem.cpp
@@ -67,11 +67,11 @@ void FloorItem::draw(Graphics *graphics, int offsetX, int offsetY) const
{
if (mItem)
{
- if (mAlpha != mItem->getImage()->getAlpha())
- mItem->getImage()->setAlpha(mAlpha);
+ Image *image = mItem->getDrawImage();
- graphics->drawImage(mItem->getImage(),
- mX * 32 + offsetX,
- mY * 32 + offsetY);
+ if (image && mAlpha != image->getAlpha())
+ image->setAlpha(mAlpha);
+
+ graphics->drawImage(image, mX * 32 + offsetX, mY * 32 + offsetY);
}
}
diff --git a/src/item.cpp b/src/item.cpp
index 46905e5c..120a4044 100644
--- a/src/item.cpp
+++ b/src/item.cpp
@@ -27,6 +27,7 @@
Item::Item(int id, int quantity, bool equipment, bool equipped):
mImage(0),
+ mDrawImage(0),
mQuantity(quantity),
mEquipment(equipment), mEquipped(equipped), mInEquipment(false)
{
@@ -50,10 +51,17 @@ void Item::setId(int id)
if (mImage)
mImage->decRef();
+ if (mDrawImage)
+ mDrawImage->decRef();
+
ResourceManager *resman = ResourceManager::getInstance();
std::string imagePath = "graphics/items/" + getInfo().getImageName();
mImage = resman->getImage(imagePath);
+ mDrawImage = resman->getImage(imagePath);
if (!mImage)
mImage = resman->getImage("graphics/gui/unknown-item.png");
+
+ if (!mDrawImage)
+ mDrawImage = resman->getImage("graphics/gui/unknown-item.png");
}
diff --git a/src/item.h b/src/item.h
index 56995eb6..7e8e0f9c 100644
--- a/src/item.h
+++ b/src/item.h
@@ -59,6 +59,11 @@ class Item
Image *getImage() { return mImage; }
/**
+ * Returns the item image.
+ */
+ Image *getDrawImage() { return mDrawImage; }
+
+ /**
* Sets the number of items.
*/
void setQuantity(int quantity) { mQuantity = quantity; }
@@ -121,6 +126,7 @@ class Item
protected:
int mId; /**< Item type id. */
Image *mImage; /**< Item image. */
+ Image *mDrawImage; /**< Draw image. */
int mQuantity; /**< Number of items. */
bool mEquipment; /**< Item is equipment. */
bool mEquipped; /**< Item is equipped. */