From 16ba873bd12d8748fdc8a5169f4b76867ec50a3c Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 28 Jun 2009 14:03:45 +0000 Subject: item library foundation --- src/core/item.cc | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) (limited to 'src/core/item.cc') diff --git a/src/core/item.cc b/src/core/item.cc index 116685b..7b4633c 100644 --- a/src/core/item.cc +++ b/src/core/item.cc @@ -5,10 +5,50 @@ */ #include "core/item.h" +#include "sys/sys.h" namespace core { +/* ---- class Item ------------------------------------------------- */ + + +Item::Registry Item::item_registry; + +void Item::add_class(ItemClass * itemclass) +{ + +} + +void Item::add_type(ItemClass * itemclass, ItemType *itemtype) +{ + +} + +void Item::find_class(const char *label) +{ + +} + +void Item::clear() +{ + for (Registry::iterator it = item_registry.begin(); it != item_registry.end(); it++) { + delete (*it); + } + item_registry.clear(); +} + +void Item::list() +{ + for (Registry::iterator it = item_registry.begin(); it != item_registry.end(); it++) { + con_print << " item class ^B " << (*it)->name() << std::endl; + (*it)->list(); + } + con_print << item_registry.size() << " registered item classes" << std::endl; +} + +/* ---- class ItemClass -------------------------------------------- */ + ItemClass::ItemClass(const char *label) { if (label) { @@ -18,6 +58,36 @@ ItemClass::ItemClass(const char *label) } } +ItemClass::~ItemClass() +{ + for (Types::iterator it = itemclass_types.begin(); it != itemclass_types.end(); it++) { + delete (*it); + } +} + +void ItemClass::list() +{ +} + +void ItemClass::set_name(const std::string &name) +{ + itemclass_name.assign(name); +} + +void ItemClass::add_type(ItemType *itemtype) +{ + for (Types::iterator it = itemclass_types.begin(); it != itemclass_types.end(); it++) { + con_print << " " << (*it)->name() << std::endl; + } +} + +ItemType *ItemClass::find_type(const char *label) +{ + return 0; +} + +/* ---- class ItemType --------------------------------------------- */ + ItemType::ItemType(const char *label) { if (label) { @@ -29,4 +99,15 @@ ItemType::ItemType(const char *label) itemtype_baseprice = 0; } +void ItemType::set_name(const std::string &name) +{ + itemtype_name.assign(name); +} + +void ItemType::set_baseprice(const float baseprice) +{ + itemtype_baseprice = 0; } + +} // class core + -- cgit v1.2.3