From 1e4aa6a5e7476bea736b89fe5d7094b6a68705e5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 25 Oct 2012 01:13:56 +0300 Subject: Add support for different hover/pickup cursors for monsters, npc, items, etc. In monsters.xml new monster attribute: hoverCursor - default value "attack". In npcs.xml new npc attribute: hoverCursor - default value "talk". In items.xml new item attribute: pickupCursor - default value "pickup". Warps using "up" cursor for now. --- src/gui/viewport.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/gui/viewport.cpp') diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index 42e6473ee..e7d7ab85d 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -788,6 +788,7 @@ void Viewport::mouseMoved(gcn::MouseEvent &event A_UNUSED) if (mTextPopup->isVisible()) mTextPopup->setVisible(false); } + gui->setCursorType(Cursor::CURSOR_UP); return; } } @@ -801,31 +802,34 @@ void Viewport::mouseMoved(gcn::MouseEvent &event A_UNUSED) { // NPCs case ActorSprite::NPC: - gui->setCursorType(Gui::CURSOR_TALK); + gui->setCursorType(mHoverBeing->getHoverCursor()); break; // Monsters case ActorSprite::MONSTER: - gui->setCursorType(Gui::CURSOR_FIGHT); + gui->setCursorType(mHoverBeing->getHoverCursor()); break; + case ActorSprite::PORTAL: + gui->setCursorType(mHoverBeing->getHoverCursor()); + break; + + case ActorSprite::FLOOR_ITEM: case ActorSprite::UNKNOWN: case ActorSprite::PLAYER: - case ActorSprite::FLOOR_ITEM: - case ActorSprite::PORTAL: default: - gui->setCursorType(Gui::CURSOR_POINTER); + gui->setCursorType(Cursor::CURSOR_POINTER); break; } } // Item mouseover else if (mHoverItem) { - gui->setCursorType(Gui::CURSOR_PICKUP); + gui->setCursorType(mHoverItem->getHoverCursor()); } else { - gui->setCursorType(Gui::CURSOR_POINTER); + gui->setCursorType(Cursor::CURSOR_POINTER); } } -- cgit v1.2.3-60-g2f50