diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-08-23 22:06:54 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-08-23 22:06:54 +0300 |
commit | c81d80b6cd18977f60f8ba19f898a583c055d117 (patch) | |
tree | 945b484b790640e21247028c38855706d37be45f | |
parent | 06711faa8e02ca2e65e9e1cf2d38c359728f6ccf (diff) | |
download | manaplus-c81d80b6cd18977f60f8ba19f898a583c055d117.tar.gz manaplus-c81d80b6cd18977f60f8ba19f898a583c055d117.tar.bz2 manaplus-c81d80b6cd18977f60f8ba19f898a583c055d117.tar.xz manaplus-c81d80b6cd18977f60f8ba19f898a583c055d117.zip |
Add check for cards for existing item id.
-rw-r--r-- | src/being/being.cpp | 6 | ||||
-rw-r--r-- | src/resources/item/item.cpp | 8 | ||||
-rw-r--r-- | src/resources/item/item.h | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/being/being.cpp b/src/being/being.cpp index 93222c846..bf082dd79 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -94,6 +94,8 @@ #include "resources/image/image.h" +#include "resources/item/item.h" + #include "resources/map/map.h" #include "resources/skill/skilldata.h" @@ -5101,6 +5103,8 @@ void Being::addItemParticlesCards(const int id, for (int f = 0; f < maxCards; f ++) { const int cardId = cards.cards[f]; + if (!Item::isItem(cardId)) + continue; const ItemInfo &info = ItemDB::get(cardId); const SpriteDisplay &restrict display2 = info.getDisplay(); FOR_EACH (StringVectCIter, itr, display2.particles) @@ -5121,6 +5125,8 @@ void Being::addItemParticlesCards(const int id, for (int f = 0; f < maxCards; f ++) { const int cardId = cards.cards[f]; + if (!Item::isItem(cardId)) + continue; const ItemInfo &info = ItemDB::get(cardId); const SpriteDisplay &restrict display2 = info.getDisplay(); FOR_EACH (StringVectCIter, itr, display2.particles) diff --git a/src/resources/item/item.cpp b/src/resources/item/item.cpp index 9d3a1b3f8..4627225f2 100644 --- a/src/resources/item/item.cpp +++ b/src/resources/item/item.cpp @@ -181,3 +181,11 @@ void Item::updateColor() if (serverFeatures && serverFeatures->haveItemColors()) setId(mId, ItemColorManager::getColorFromCards(&mCards[0])); } + +bool Item::isItem(const int id) +{ + return id != 0 && + id != CARD0_FORGE && + id != CARD0_CREATE && + id != CARD0_PET; +} diff --git a/src/resources/item/item.h b/src/resources/item/item.h index 5ae0cbc99..64e5fa063 100644 --- a/src/resources/item/item.h +++ b/src/resources/item/item.h @@ -227,6 +227,8 @@ class Item notfinal void updateColor(); + static bool isItem(const int id); + int mId; /**< Item id. */ ItemColor mColor; int mQuantity; /**< Number of items. */ |