summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gui/windows/shopwindow.cpp25
-rw-r--r--src/net/eathena/buyingstorehandler.cpp1
2 files changed, 19 insertions, 7 deletions
diff --git a/src/gui/windows/shopwindow.cpp b/src/gui/windows/shopwindow.cpp
index bed828f0a..da8a4e41b 100644
--- a/src/gui/windows/shopwindow.cpp
+++ b/src/gui/windows/shopwindow.cpp
@@ -286,13 +286,21 @@ void ShopWindow::action(const ActionEvent &event)
{
if (isBuySelected)
{
- std::vector<ShopItem*> &items = mBuyShopItems->items();
- if (!items.empty())
+ if (mEnableBuyingStore)
{
- buyingStoreHandler->create(mSellShopName,
- PlayerInfo::getAttribute(Attributes::MONEY),
- true,
- items);
+ buyingStoreHandler->close();
+ BuyingStoreModeListener::distributeEvent(false);
+ }
+ else
+ {
+ std::vector<ShopItem*> &items = mBuyShopItems->items();
+ if (!items.empty())
+ {
+ buyingStoreHandler->create(mSellShopName,
+ PlayerInfo::getAttribute(Attributes::MONEY),
+ true,
+ items);
+ }
}
}
else
@@ -414,7 +422,10 @@ void ShopWindow::updateButtonsAndLabels()
&& mBuyShopItems->getNumberOfElements() > 0;
if (mPublishButton)
{
- mPublishButton->setCaption(_("Publish"));
+ if (mEnableBuyingStore)
+ mPublishButton->setCaption(_("Unpublish"));
+ else
+ mPublishButton->setCaption(_("Publish"));
mPublishButton->adjustSize();
if (mBuyShopSize > 0)
mPublishButton->setEnabled(true);
diff --git a/src/net/eathena/buyingstorehandler.cpp b/src/net/eathena/buyingstorehandler.cpp
index e0cd402a7..18e933c56 100644
--- a/src/net/eathena/buyingstorehandler.cpp
+++ b/src/net/eathena/buyingstorehandler.cpp
@@ -261,6 +261,7 @@ void BuyingStoreHandler::create(const std::string &name,
void BuyingStoreHandler::close() const
{
createOutPacket(CMSG_BUYINGSTORE_CLOSE);
+ PlayerInfo::enableVending(false);
}
void BuyingStoreHandler::open(const Being *const being) const