ManaPlus
buyingstoreselldialog.cpp
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
25 
26 #include "actormanager.h"
27 
28 #include "being/playerinfo.h"
29 
30 #include "gui/models/shopitems.h"
31 
33 
34 #include "net/buyingstorehandler.h"
35 
37 
39 
40 #include "debug.h"
41 
43  const int storeId) :
45  mAccountId(accountId),
46  mStoreId(storeId)
47 {
48 }
49 
51 {
52  if (mAmountItems <= 0 || mAmountItems > mMaxItems)
53  return;
54 
55  const int selectedItem = mShopItemList->getSelected();
56  const ShopItem *const item1 = mShopItems->at(selectedItem);
57  if ((item1 == nullptr) || PlayerInfo::isItemProtected(item1->getId()))
58  return;
59  const Being *const being = actorManager->findBeing(mAccountId);
60  if (being == nullptr)
61  return;
62  const Item *const item2 = PlayerInfo::getInventory()->findItem(
63  item1->getId(),
64  item1->getColor());
65  if (item2 == nullptr)
66  return;
67 
68  mPlayerMoney += mAmountItems * item1->getPrice();
71 }
ActorManager * actorManager
const bool Advanced_false
Definition: advanced.h:30
int BeingId
Definition: beingid.h:30
Net::BuyingStoreHandler * buyingStoreHandler
Definition: net.cpp:107
Being * findBeing(const BeingId id) const
Definition: being.h:96
void sellAction(const ActionEvent &event)
BuyingStoreSellDialog(const BeingId accountId, const int storeId)
Item * findItem(const int itemId, const ItemColor color) const
Definition: inventory.cpp:94
Definition: item.h:50
int getId() const
Definition: item.h:81
ItemColor getColor() const
Definition: item.h:181
int getSelected() const
Definition: listbox.h:168
virtual void sell(const Being *const being, const int storeId, const Item *const item, const int amount) const =0
int mMaxItems
Definition: selldialog.h:150
ShopItems * mShopItems
Definition: selldialog.h:147
int mAmountItems
Definition: selldialog.h:151
ShopListBox * mShopItemList
Definition: selldialog.h:142
int mPlayerMoney
Definition: selldialog.h:149
int getPrice() const
Definition: shopitem.h:132
ShopItem * at(const size_t i) const
Definition: shopitems.cpp:129
const bool IsSell_true
Definition: issell.h:30
#define A_UNUSED
Definition: localconsts.h:160
Inventory * getInventory()
Definition: playerinfo.cpp:195
bool isItemProtected(const int id)
Definition: playerinfo.cpp:515