summaryrefslogtreecommitdiff
path: root/src/shopitem.cpp
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.cpp
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.cpp')
-rw-r--r--src/shopitem.cpp166
1 files changed, 0 insertions, 166 deletions
diff --git a/src/shopitem.cpp b/src/shopitem.cpp
deleted file mode 100644
index e31179772..000000000
--- a/src/shopitem.cpp
+++ /dev/null
@@ -1,166 +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/>.
- */
-
-#include "shopitem.h"
-
-#include "units.h"
-
-#include "resources/iteminfo.h"
-
-#include "utils/stringutils.h"
-
-#include "net/serverfeatures.h"
-
-#include "debug.h"
-
-ShopItem::ShopItem(const int inventoryIndex,
- const int id,
- const int type,
- const ItemColor color,
- const int quantity,
- const int price) :
- Item(id, type, 0, 0, color,
- Identified_true,
- Damaged_false,
- Favorite_false,
- Equipm_false,
- Equipped_false),
- mDisplayName(),
- mDuplicates(),
- mPrice(price),
- mUsedQuantity(0),
- mShowQuantity(true),
- mVisible(true),
- mDisabled(false)
-{
- updateDisplayName(quantity);
- setInvIndex(inventoryIndex);
- addDuplicate(inventoryIndex, quantity);
-}
-
-ShopItem::ShopItem(const int id,
- const int type,
- const ItemColor color,
- const int price) :
- Item(id, type, 0, 0, color,
- Identified_true,
- Damaged_false,
- Favorite_false,
- Equipm_false,
- Equipped_false),
- mDisplayName(),
- mDuplicates(),
- mPrice(price),
- mUsedQuantity(0),
- mShowQuantity(false),
- mVisible(true),
- mDisabled(false)
-{
- updateDisplayName(0);
- setInvIndex(-1);
- addDuplicate(-1, 0);
-}
-
-ShopItem::~ShopItem()
-{
- /** Clear all remaining duplicates on Object destruction. */
- while (!mDuplicates.empty())
- {
- delete mDuplicates.top();
- mDuplicates.pop();
- }
-}
-
-void ShopItem::updateDisplayName(const int quantity)
-{
- if (serverFeatures->haveItemColors())
- mDisplayName = std::string(getInfo().getName(mColor));
- else
- mDisplayName = std::string(getInfo().getName());
- if (mPrice)
- {
- mDisplayName.append(" (").append(
- Units::formatCurrency(mPrice)).append(") ");
- }
- if (mShowQuantity && quantity > 1)
- mDisplayName.append("[").append(toString(quantity)).append("]");
- if (mUsedQuantity > 0)
- mDisplayName.append(" +").append(toString(mUsedQuantity));
-}
-
-void ShopItem::update()
-{
- updateDisplayName(mQuantity);
-}
-
-void ShopItem::addDuplicate(const int inventoryIndex, const int quantity)
-{
- DuplicateItem *const di = new DuplicateItem;
- di->inventoryIndex = inventoryIndex;
- di->quantity = quantity;
- mDuplicates.push(di);
- mQuantity += quantity;
-}
-
-void ShopItem::addDuplicate()
-{
- DuplicateItem *const di = new DuplicateItem;
- di->inventoryIndex = -1;
- di->quantity = 0;
- mDuplicates.push(di);
-}
-
-int ShopItem::sellCurrentDuplicate(const int quantity)
-{
- DuplicateItem* dupl = mDuplicates.top();
- if (!dupl)
- return 0;
-
- const int sellCount = quantity <= dupl->quantity
- ? quantity : dupl->quantity;
- dupl->quantity -= sellCount;
- mQuantity -= sellCount;
- if (dupl->quantity == 0)
- {
- delete dupl;
- mDuplicates.pop();
- }
- return sellCount;
-}
-
-void ShopItem::increaseUsedQuantity(const int amount)
-{
- if (mShowQuantity && mQuantity)
- {
- if (mQuantity < mUsedQuantity + amount ||
- mUsedQuantity + amount < 0)
- {
- return;
- }
- }
- else if (mUsedQuantity + amount < 0)
- {
- return;
- }
-
- mUsedQuantity += amount;
-}