summaryrefslogtreecommitdiff
path: root/src/shopitem.h
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-12-29 02:21:53 +0300
committerAndrei Karas <akaras@inbox.ru>2015-12-29 02:21:53 +0300
commit75802940ea0f10c4ecce5ab55140c38a164ba574 (patch)
tree506873f03fd72b2bb3fc84085d0202c61f79a89c /src/shopitem.h
parent9b072c42f4508de8fb15d1fc8b59931777d5b5a7 (diff)
downloadmanaverse-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.gz
manaverse-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.bz2
manaverse-75802940ea0f10c4ecce5ab55140c38a164ba574.tar.xz
manaverse-75802940ea0f10c4ecce5ab55140c38a164ba574.zip
Move shopitem into item directory.
Diffstat (limited to 'src/shopitem.h')
-rw-r--r--src/shopitem.h178
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