diff options
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/popupmenu.cpp | 4 | ||||
-rw-r--r-- | src/gui/popupmenu.h | 2 | ||||
-rw-r--r-- | src/gui/viewport.cpp | 4 | ||||
-rw-r--r-- | src/gui/viewport.h | 2 | ||||
-rw-r--r-- | src/gui/widgets/itemcontainer.cpp | 2 | ||||
-rw-r--r-- | src/gui/widgets/itemshortcutcontainer.cpp | 17 |
6 files changed, 19 insertions, 12 deletions
diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp index 66a8ce3ab..d6004bb27 100644 --- a/src/gui/popupmenu.cpp +++ b/src/gui/popupmenu.cpp @@ -1571,13 +1571,13 @@ void PopupMenu::showPopup(Window *parent, int x, int y, Item *item, showPopup(x, y); } -void PopupMenu::showItemPopup(int x, int y, int itemId) +void PopupMenu::showItemPopup(int x, int y, int itemId, unsigned char color) { Inventory *inv = PlayerInfo::getInventory(); if (!inv) return; - Item *item = inv->findItem(itemId); + Item *item = inv->findItem(itemId, color); if (item) { showItemPopup(x, y, item); diff --git a/src/gui/popupmenu.h b/src/gui/popupmenu.h index e16a9fb4f..f23dc0f87 100644 --- a/src/gui/popupmenu.h +++ b/src/gui/popupmenu.h @@ -109,7 +109,7 @@ class PopupMenu : public Popup, public LinkHandler void showItemPopup(int x, int y, Item *item); - void showItemPopup(int x, int y, int itemId); + void showItemPopup(int x, int y, int itemId, unsigned char color); void showDropPopup(int x, int y, Item *item); diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 3c13fcb7e..15353d9f9 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -590,9 +590,9 @@ void Viewport::showItemPopup(Item *item) mPopupMenu->showItemPopup(getMouseX(), getMouseY(), item); } -void Viewport::showItemPopup(int itemId) +void Viewport::showItemPopup(int itemId, unsigned char color) { - mPopupMenu->showItemPopup(getMouseX(), getMouseY(), itemId); + mPopupMenu->showItemPopup(getMouseX(), getMouseY(), itemId, color); } void Viewport::showDropPopup(Item *item) diff --git a/src/gui/viewport.h b/src/gui/viewport.h index 7cd12365b..52a3257f5 100644 --- a/src/gui/viewport.h +++ b/src/gui/viewport.h @@ -143,7 +143,7 @@ class Viewport : public WindowContainer, public gcn::MouseListener, void showItemPopup(Item *item); - void showItemPopup(int itemId); + void showItemPopup(int itemId, unsigned char color = 1); void showDropPopup(Item *item); diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 589cb376a..1650c386e 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -339,7 +339,7 @@ void ItemContainer::mousePressed(gcn::MouseEvent &event) if (num >= 0 && num < SHORTCUT_TABS) { if (itemShortcut[num]) - itemShortcut[num]->setItemSelected(item->getId()); + itemShortcut[num]->setItemSelected(item); } if (dropShortcut) dropShortcut->setItemSelected(item->getId()); diff --git a/src/gui/widgets/itemshortcutcontainer.cpp b/src/gui/widgets/itemshortcutcontainer.cpp index 4d0758e3d..362cfad54 100644 --- a/src/gui/widgets/itemshortcutcontainer.cpp +++ b/src/gui/widgets/itemshortcutcontainer.cpp @@ -123,7 +123,8 @@ void ItemShortcutContainer::draw(gcn::Graphics *graphics) g->drawText(key, itemX + 2, itemY + 2, gcn::Graphics::LEFT); - int itemId = itemShortcut[mNumber]->getItem(i); + const int itemId = itemShortcut[mNumber]->getItem(i); + const int itemColor = itemShortcut[mNumber]->getItemColor(i); if (itemId < 0) continue; @@ -134,7 +135,8 @@ void ItemShortcutContainer::draw(gcn::Graphics *graphics) if (!PlayerInfo::getInventory()) continue; - Item *item = PlayerInfo::getInventory()->findItem(itemId); + Item *item = PlayerInfo::getInventory()->findItem( + itemId, itemColor); if (item) { @@ -284,7 +286,10 @@ void ItemShortcutContainer::mousePressed(gcn::MouseEvent &event) // Item *item = PlayerInfo::getInventory()->findItem(id); if (viewport && itemShortcut[mNumber]) - viewport->showItemPopup(itemShortcut[mNumber]->getItem(index)); + { + viewport->showItemPopup(itemShortcut[mNumber]->getItem(index), + itemShortcut[mNumber]->getItemColor(index)); + } } } @@ -306,7 +311,8 @@ void ItemShortcutContainer::mouseReleased(gcn::MouseEvent &event) } if (mItemMoved) { - itemShortcut[mNumber]->setItems(index, mItemMoved->getId()); + itemShortcut[mNumber]->setItems(index, + mItemMoved->getId(), mItemMoved->getColor()); mItemMoved = NULL; } else if (itemShortcut[mNumber]->getItem(index) && mItemClicked) @@ -331,6 +337,7 @@ void ItemShortcutContainer::mouseMoved(gcn::MouseEvent &event) return; const int itemId = itemShortcut[mNumber]->getItem(index); + const int itemColor = itemShortcut[mNumber]->getItemColor(index); if (itemId < 0) return; @@ -342,7 +349,7 @@ void ItemShortcutContainer::mouseMoved(gcn::MouseEvent &event) if (!PlayerInfo::getInventory()) return; - Item *item = PlayerInfo::getInventory()->findItem(itemId); + Item *item = PlayerInfo::getInventory()->findItem(itemId, itemColor); if (item && viewport) { |