diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-02-29 04:27:38 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-02-29 04:27:38 +0300 |
commit | 8e6dd0db3a9e1bfb15068098029c25c334ca8f67 (patch) | |
tree | 0f31545099368d6edd5917bb0b72a997893cb833 /src/gui/popupmenu.cpp | |
parent | ea92940149eb3f4e2590cfbd07f240000acbd460 (diff) | |
download | plus-8e6dd0db3a9e1bfb15068098029c25c334ca8f67.tar.gz plus-8e6dd0db3a9e1bfb15068098029c25c334ca8f67.tar.bz2 plus-8e6dd0db3a9e1bfb15068098029c25c334ca8f67.tar.xz plus-8e6dd0db3a9e1bfb15068098029c25c334ca8f67.zip |
Allow use context menu in minimap.
Diffstat (limited to 'src/gui/popupmenu.cpp')
-rw-r--r-- | src/gui/popupmenu.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp index 933d2c7cd..5e5f310dc 100644 --- a/src/gui/popupmenu.cpp +++ b/src/gui/popupmenu.cpp @@ -579,6 +579,25 @@ void PopupMenu::showPopup(int x, int y, MapItem *mapItem) showPopup(x, y); } +void PopupMenu::showMapPopup(int x, int y, int x2, int y2) +{ + mX = x2; + mY = y2; + + mBrowserBox->clearRows(); + + mBrowserBox->addRow(_("Map Item")); + + if (player_node && player_node->isGM()) + mBrowserBox->addRow("warp map", _("Warp")); + mBrowserBox->addRow("move", _("Move")); + mBrowserBox->addRow("movecamera", _("Move camera")); + mBrowserBox->addRow("##3---"); + mBrowserBox->addRow("cancel", _("Cancel")); + + showPopup(x, y); +} + void PopupMenu::showOutfitsPopup(int x, int y) { mX = x; @@ -1161,6 +1180,16 @@ void PopupMenu::handleLink(const std::string &link, } } } + else if (link == "move" && (mX || mY)) + { + if (player_node) + player_node->navigateTo(mX, mY); + } + else if (link == "movecamera" && (mX || mY)) + { + if (viewport) + viewport->moveCameraToPosition(mX * 32, mY * 32); + } else if (link == "split" && mItem) { ItemAmountWindow::showWindow(ItemAmountWindow::ItemSplit, @@ -1304,6 +1333,14 @@ void PopupMenu::handleLink(const std::string &link, mMapItem->getX(), mMapItem->getY()); } } + else if (link == "warp map" && (mX || mY)) + { + if (Game::instance()) + { + Net::getAdminHandler()->warp(Game::instance()->getCurrentMapName(), + mX, mY); + } + } else if (link == "remove map" && mMapItem) { if (viewport) |