From e3096c1648bba8f07d351fb071bae6fc548d5a3c Mon Sep 17 00:00:00 2001 From: Henrique Santiago Date: Fri, 20 Jan 2012 23:01:11 -0200 Subject: [PATCH] fix move on different floors, dragqueen border on uiitem --- modules/core_widgets/uiitem.lua | 5 ++++- modules/game/map.lua | 5 +++-- src/framework/ui/uiwidget.cpp | 2 +- src/otclient/luafunctions.cpp | 1 - src/otclient/ui/uimap.cpp | 11 ++--------- src/otclient/ui/uimap.h | 1 - 6 files changed, 10 insertions(+), 15 deletions(-) diff --git a/modules/core_widgets/uiitem.lua b/modules/core_widgets/uiitem.lua index 559876ed..8719b1c7 100644 --- a/modules/core_widgets/uiitem.lua +++ b/modules/core_widgets/uiitem.lua @@ -1,6 +1,9 @@ function UIItem:onDragEnter(mousePos) local item = self:getItem() if not item then return false end + + self:setBorderWidth('1') + self:setBorderColor('#ffffff') self.currentDragThing = item setTargetCursor() @@ -10,6 +13,7 @@ end function UIItem:onDragLeave(widget, mousePos) self.currentDragThing = nil restoreCursor() + self:setBorderWidth('0') return true end @@ -23,7 +27,6 @@ function UIItem:onDrop(widget, mousePos) return true end - function UIItem:onMouseRelease(mousePosition, mouseButton) local item = self:getItem() if not item or not self:containsPoint(mousePosition) then return false end diff --git a/modules/game/map.lua b/modules/game/map.lua index f4db7190..47376732 100644 --- a/modules/game/map.lua +++ b/modules/game/map.lua @@ -19,10 +19,11 @@ end function UIMap:onDrop(widget, mousePos) if not widget or not widget.currentDragThing then return false end - local pos = self:getPosition(mousePos) + local tile = self:getTile(mousePos) + if not tile then return false end local count = 1 -- todo make a window for it - Game.move(widget.currentDragThing, pos, count) + Game.move(widget.currentDragThing, tile:getPos(), count) return true end diff --git a/src/framework/ui/uiwidget.cpp b/src/framework/ui/uiwidget.cpp index 12cd40ca..a0f1d9a6 100644 --- a/src/framework/ui/uiwidget.cpp +++ b/src/framework/ui/uiwidget.cpp @@ -61,8 +61,8 @@ void UIWidget::drawSelf() drawBackground(m_rect); } - drawBorder(m_rect); drawImage(m_rect); + drawBorder(m_rect); drawIcon(m_rect); drawText(m_rect); } diff --git a/src/otclient/luafunctions.cpp b/src/otclient/luafunctions.cpp index b59ee2d0..db5f577f 100644 --- a/src/otclient/luafunctions.cpp +++ b/src/otclient/luafunctions.cpp @@ -239,7 +239,6 @@ void OTClient::registerLuaFunctions() g_lua.registerClass(); g_lua.bindClassStaticFunction("create", []{ return UIMapPtr(new UIMap); } ); g_lua.bindClassMemberFunction("getTile", &UIMap::getTile); - g_lua.bindClassMemberFunction("getPosition", &UIMap::getPosition); g_lua.registerClass(); g_lua.bindClassStaticFunction("create", []{ return UIGamePtr(new UIGame); } ); diff --git a/src/otclient/ui/uimap.cpp b/src/otclient/ui/uimap.cpp index 34a12749..45ca39d3 100644 --- a/src/otclient/ui/uimap.cpp +++ b/src/otclient/ui/uimap.cpp @@ -43,10 +43,10 @@ void UIMap::draw() drawChildren(); } -Position UIMap::getPosition(const Point& mousePos) +TilePtr UIMap::getTile(const Point& mousePos) { if(!m_mapRect.contains(mousePos)) - return Position(); + return nullptr; // Get tile position Point relativeStretchMousePos = mousePos - m_mapRect.topLeft(); @@ -62,13 +62,6 @@ Position UIMap::getPosition(const Point& mousePos) PointF tilePosF = relativeMousePos / Map::NUM_TILE_PIXELS; Position tilePos = Position(1 + (int)tilePosF.x - g_map.getCentralOffset().x, 1 + (int)tilePosF.y - g_map.getCentralOffset().y, 0) + g_map.getCentralPosition(); - - return tilePos; -} - -TilePtr UIMap::getTile(const Point& mousePos) -{ - Position tilePos = getPosition(mousePos); if(!tilePos.isValid()) return nullptr; diff --git a/src/otclient/ui/uimap.h b/src/otclient/ui/uimap.h index d473d95b..4e0f6ab1 100644 --- a/src/otclient/ui/uimap.h +++ b/src/otclient/ui/uimap.h @@ -33,7 +33,6 @@ public: UIMap(); void draw(); - Position getPosition(const Point& mousePos); TilePtr getTile(const Point& mousePos); protected: