/* core/inventory.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #include "core/inventory.h" #include "sys/sys.h" namespace core { /* ---- class Inventory -------------------------------------------- */ Inventory::Inventory() { } Inventory::~Inventory() { clear(); } void Inventory::add(Item *item) { for (Items::iterator it = inventory_items.begin(); it != inventory_items.end(); it++) { // check if the item was already added if ((*it) == item) return; } inventory_items.push_back(item); } void Inventory::remove(Item *item) { for (Items::iterator it = inventory_items.begin(); it != inventory_items.end(); it++) { if ((*it) == item) { inventory_items.erase(it); delete item; return; } } } Item *Inventory::find(const Info *info) { // sarch the inventory for a specified item type for (Items::iterator it = inventory_items.begin(); it != inventory_items.end(); it++) { Item *item = (*it); if (item->info() == info) { return item; } } // not found return 0; } void Inventory::clear() { for (Items::iterator it = inventory_items.begin(); it != inventory_items.end(); it++) { Item *item = (*it); delete item; } inventory_items.clear(); } } // namespace core