diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-12-29 02:21:53 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-12-29 02:21:53 +0300 |
commit | 75802940ea0f10c4ecce5ab55140c38a164ba574 (patch) | |
tree | 506873f03fd72b2bb3fc84085d0202c61f79a89c /src/shopitem.h | |
parent | 9b072c42f4508de8fb15d1fc8b59931777d5b5a7 (diff) | |
download | plus-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.gz plus-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.bz2 plus-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.xz plus-75802940ea0f10c4ecce5ab55140c38a164ba574.zip |
Move shopitem into item directory.
Diffstat (limited to 'src/shopitem.h')
-rw-r--r-- | src/shopitem.h | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/src/shopitem.h b/src/shopitem.h deleted file mode 100644 index cfafbec50..000000000 --- a/src/shopitem.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011-2015 The ManaPlus Developers - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef SHOPITEM_H -#define SHOPITEM_H - -#include "resources/item/item.h" - -#include <stack> - -#include "localconsts.h" - -/** - * Represents an item in a shop inventory. It can store quantity and inventory - * indices of duplicate entries in the shop as well. - */ -class ShopItem final : public Item -{ - public: - /** - * Constructor. Creates a new ShopItem. - * - * @param inventoryIndex the inventory index of the item - * @param id the id of the item - * @param quantity number of available copies of the item - * @param price price of the item - */ - ShopItem(const int inventoryIndex, - const int id, - const int type, - const ItemColor color, - const int quantity, - const int price); - - /** - * Constructor. Creates a new ShopItem. Inventory index will be set to - * -1 and quantity to 0. - * - * @param id the id of the item - * @param price price of the item - */ - ShopItem(const int id, - const int type, - const ItemColor color, - const int price); - - A_DELETE_COPY(ShopItem) - - /** - * Destructor. - */ - ~ShopItem(); - - /** - * Add a duplicate. Id and price will be taken from this item. - * - * @param inventoryIndex the inventory index of the item - * @param quantity number of available copies of the item - */ - void addDuplicate(const int inventoryIndex, const int quantity); - - /** - * Add a duplicate. Id and price will be taken from this item. - * Needed for compatibility with ShopDuplicateItems (see) class - * documentation). - */ - void addDuplicate(); - - void update(); - - /** - * Gets the quantity of the currently topmost duplicate. - * - * @return the quantity of the currently topmost duplicate - */ - int getCurrentQuantity() const A_WARN_UNUSED - { - return mDuplicates.empty() ? 0 : mDuplicates.top()->quantity; - } - - /** - * Gets the inventory index of the currently topmost duplicate. - * - * @return the inventory index of the currently topmost duplicate - */ - int getCurrentInvIndex() const A_WARN_UNUSED - { - return mDuplicates.empty() ? mInvIndex : - mDuplicates.top()->inventoryIndex; - } - - /** - * Reduces the quantity of the topmost duplicate by the specified - * amount. Also reduces the total quantity of this DuplicateItem. - * Empty duplicates are automatically removed. - * - * If the amount is bigger than the quantity of the current topmost, - * only sell as much as possible. Returns the amount actually sold (do - * not ignore the return value!) - * - * @return the amount, that actually was sold. - */ - int sellCurrentDuplicate(const int quantity); - - /** - * Gets the price of the item. - * - * @return the price of the item - */ - int getPrice() const A_WARN_UNUSED - { return mPrice; } - - /** - * Gets the display name for the item in the shop list. - * - * @return the display name for the item in the shop list - */ - const std::string &getDisplayName() const A_WARN_UNUSED - { return mDisplayName; } - - void setVisible(const bool b) - { mVisible = b; } - - bool isVisible() const - { return mVisible; } - - void increaseUsedQuantity(const int amount); - - int getUsedQuantity() const A_WARN_UNUSED - { return mUsedQuantity; } - - void setDisabled(const bool b) - { mDisabled = b; } - - bool getDisabled() const A_WARN_UNUSED - { return mDisabled; } - - protected: - void updateDisplayName(const int quantity); - - std::string mDisplayName; - - /** - * Struct to keep track of duplicates. - */ - typedef struct - { - int inventoryIndex; - int quantity; - } DuplicateItem; - std::stack<DuplicateItem*> mDuplicates; /** <-- Stores duplicates */ - int mPrice; - int mUsedQuantity; - bool mShowQuantity; - bool mVisible; - bool mDisabled; -}; - -#endif // SHOPITEM_H |