diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-02-02 00:05:22 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-02-02 22:48:09 +0300 |
commit | 45ba0e489cf85d957c26f1e5895399953c203cd9 (patch) | |
tree | e478f24809c3e50ce04082f23d812db7f37197cf /src/gui | |
parent | 6dc1f5e0b68cf390f7938329b50a9b28bd187862 (diff) | |
download | manaplus-45ba0e489cf85d957c26f1e5895399953c203cd9.tar.gz manaplus-45ba0e489cf85d957c26f1e5895399953c203cd9.tar.bz2 manaplus-45ba0e489cf85d957c26f1e5895399953c203cd9.tar.xz manaplus-45ba0e489cf85d957c26f1e5895399953c203cd9.zip |
update items amount in shop dialog after buy from vending shop.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/windows/buydialog.cpp | 27 | ||||
-rw-r--r-- | src/gui/windows/buydialog.h | 2 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp index 068440c65..a71759840 100644 --- a/src/gui/windows/buydialog.cpp +++ b/src/gui/windows/buydialog.cpp @@ -471,16 +471,7 @@ void BuyDialog::action(const ActionEvent &event) mAmountItems); } - // Update money and adjust the max number of items - // that can be bought - mMaxItems -= mAmountItems; - setMoney(mMoney - - mAmountItems * mShopItems->at(selectedItem)->getPrice()); - - // Reset selection - mAmountItems = 1; - mSlider->setScale(1, mMaxItems); - mSlider->setValue(1); + updateSlider(selectedItem); } else if (mNpcId == Nick) { @@ -492,6 +483,9 @@ void BuyDialog::action(const ActionEvent &event) vendingHandler->buy(being, item->getInvIndex(), mAmountItems); + item->increaseQuantity(-mAmountItems); + item->update(); + updateSlider(selectedItem); } } else if (tradeWindow) @@ -508,6 +502,19 @@ void BuyDialog::action(const ActionEvent &event) } } +void BuyDialog::updateSlider(const int selectedItem) +{ + // Update money and adjust the max number of items + // that can be bought + mMaxItems -= mAmountItems; + setMoney(mMoney - mAmountItems * mShopItems->at(selectedItem)->getPrice()); + + // Reset selection + mAmountItems = 1; + mSlider->setScale(1, mMaxItems); + mSlider->setValue(1); +} + void BuyDialog::valueChanged(const SelectionEvent &event A_UNUSED) { // Reset amount of items and update labels diff --git a/src/gui/windows/buydialog.h b/src/gui/windows/buydialog.h index d697eff5d..78df8ebf8 100644 --- a/src/gui/windows/buydialog.h +++ b/src/gui/windows/buydialog.h @@ -145,6 +145,8 @@ class BuyDialog final : public Window, static void closeAll(); private: + void updateSlider(const int selectedItem); + typedef std::list<BuyDialog*> DialogList; static DialogList instances; |