Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-06-28 14:03:45 +0000
committerStijn Buys <ingar@osirion.org>2009-06-28 14:03:45 +0000
commit16ba873bd12d8748fdc8a5169f4b76867ec50a3c (patch)
treeb28a91a12c8a3d35b3aaf5afda83888f6d8fb92a /src/core/item.cc
parentf0ea15eb49c55e1c0f6a9fe43eb668cb00141e24 (diff)
item library foundation
Diffstat (limited to 'src/core/item.cc')
-rw-r--r--src/core/item.cc81
1 files changed, 81 insertions, 0 deletions
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
+