#include "ItemType.h" #include "ItemSkill.h" #include "ItemStack.h" ItemType::ItemType( int id, ItemSkillLevelUpRule *levelUpRule ) : ReferenceCounter(), id( id ) { this->levelUpRule = levelUpRule; StaticRegistry::INSTANCE.registerT( this, id ); } ItemType::~ItemType() { if( levelUpRule ) levelUpRule->release(); } void ItemType::loadSupperItem( Item *zItem, Framework::Reader *zReader ) const {} void ItemType::saveSupperItem( Item *zItem, Framework::Writer *zWriter ) const {} int ItemType::getId() const { return id; } ItemStack *ItemType::createItemStack( int size ) const { Item *item = createItem(); if( !item ) return 0; return new ItemStack( item, MIN( size, item->getMaxStackSize() ) ); } ItemSkill *ItemType::createDefaultItemSkill() const { return 0; } void ItemType::levelUpItemSkill( ItemSkill *zSkill ) const { if( levelUpRule ) levelUpRule->applyOn( zSkill ); } Item *ItemType::loadItem( Framework::Reader *zReader ) const { return createItem(); } void ItemType::saveItem( Item *zItem, Framework::Writer *zWriter ) const {}