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.cpp | |
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.cpp')
-rw-r--r-- | src/shopitem.cpp | 166 |
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; -} |