From 61483740edea22a6f5ef974f7b2b0796ff49fb6e Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 17 Aug 2015 00:31:59 +0300 Subject: Fix item icon color if insert card in it. --- src/item.cpp | 9 ++++++++- src/item.h | 5 +++++ src/net/eathena/inventoryhandler.cpp | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/item.cpp b/src/item.cpp index 0ccfd025a..d0c30371a 100644 --- a/src/item.cpp +++ b/src/item.cpp @@ -22,13 +22,14 @@ #include "item.h" +#include "configuration.h" #include "dragdrop.h" +#include "itemcolormanager.h" #include "gui/theme.h" #include "resources/iteminfo.h" #include "resources/resourcemanager.h" -#include "configuration.h" #include "net/serverfeatures.h" @@ -174,3 +175,9 @@ void Item::addCard(const int card) } } } + +void Item::updateColor() +{ + if (serverFeatures->haveItemColors()) + setId(mId, ItemColorManager::getColorFromCards(&mCards[0])); +} diff --git a/src/item.h b/src/item.h index c3b22a9dc..7df66f4b9 100644 --- a/src/item.h +++ b/src/item.h @@ -176,6 +176,9 @@ class Item notfinal ItemColor getColor() const A_WARN_UNUSED { return mColor; } + void setColor(const ItemColor color) + { mColor = color; } + const std::string &getDescription() const A_WARN_UNUSED { return mDescription; } @@ -214,6 +217,8 @@ class Item notfinal void addCard(const int card); + void updateColor(); + int mId; /**< Item type id. */ ItemColor mColor; int mQuantity; /**< Number of items. */ diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index 30ec030cc..48fdb67b8 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -877,6 +877,7 @@ void InventoryHandler::processPlayerInsertCard(Net::MessageIn &msg) if (item) { item->addCard(cardId); + item->updateColor(); itemPopup->resetPopup(); } } -- cgit v1.2.3-60-g2f50