summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/item.cpp28
-rw-r--r--src/item.h9
2 files changed, 37 insertions, 0 deletions
diff --git a/src/item.cpp b/src/item.cpp
index 1dcd2bbcc..3b4beacdc 100644
--- a/src/item.cpp
+++ b/src/item.cpp
@@ -52,6 +52,7 @@ Item::Item(const int id,
mImage(nullptr),
mDescription(),
mTags(),
+ mCards(),
mRefine(refine),
mInvIndex(0),
mEquipment(equipment),
@@ -62,6 +63,8 @@ Item::Item(const int id,
mFavorite(favorite)
{
setId(id, color);
+ for (int f = 0; f < 4; f ++)
+ mCards[f] = 0;
}
Item::~Item()
@@ -130,3 +133,28 @@ std::string Item::getName() const
else
return info.getName();
}
+
+void Item::setCard(const int index, const int id)
+{
+ if (index < 0 || index >= maxCards)
+ return;
+ mCards[index] = id;
+}
+
+int Item::getCard(const int index) const
+{
+ if (index < 0 || index >= maxCards)
+ return 0 ;
+ return mCards[index];
+}
+
+void Item::setCards(const int *const cards, const int size)
+{
+ if (size < 0 || !cards)
+ return;
+ int sz = size;
+ if (sz > maxCards)
+ sz = maxCards;
+ for (int f = 0; f < sz; f ++)
+ mCards[f] = cards[f];
+}
diff --git a/src/item.h b/src/item.h
index 842e0d79b..13f34499b 100644
--- a/src/item.h
+++ b/src/item.h
@@ -31,6 +31,8 @@
class Image;
+const int maxCards = 4;
+
/**
* Represents one or more instances of a certain item type.
*/
@@ -189,6 +191,12 @@ class Item notfinal
bool getFavorite() const A_WARN_UNUSED
{ return mFavorite; }
+ void setCard(const int index, const int id);
+
+ int getCard(const int index) const;
+
+ void setCards(const int *const cards, const int size);
+
int mId; /**< Item type id. */
unsigned char mColor;
int mQuantity; /**< Number of items. */
@@ -197,6 +205,7 @@ class Item notfinal
Image *mImage; /**< Item image. */
std::string mDescription;
std::map <int, int> mTags;
+ int mCards[maxCards];
uint8_t mRefine; /**< Item refine level. */
int mInvIndex; /**< Inventory index. */
bool mEquipment; /**< Item is equipment. */