ItemType.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "ItemType.h"
  2. #include "ItemSkill.h"
  3. #include "ItemStack.h"
  4. ItemType::ItemType( int id, ItemSkillLevelUpRule *levelUpRule )
  5. : ReferenceCounter(),
  6. id( id )
  7. {
  8. this->levelUpRule = levelUpRule;
  9. StaticRegistry<ItemType>::INSTANCE.registerT( this, id );
  10. }
  11. ItemType::~ItemType()
  12. {
  13. if( levelUpRule )
  14. levelUpRule->release();
  15. }
  16. void ItemType::loadSupperItem( Item *zItem, Framework::Reader *zReader ) const {}
  17. void ItemType::saveSupperItem( Item *zItem, Framework::Writer *zWriter ) const {}
  18. int ItemType::getId() const
  19. {
  20. return id;
  21. }
  22. ItemStack *ItemType::createItemStack( int size ) const
  23. {
  24. Item *item = createItem();
  25. if( !item )
  26. return 0;
  27. return new ItemStack( item, MIN( size, item->getMaxStackSize() ) );
  28. }
  29. ItemSkill *ItemType::createDefaultItemSkill() const
  30. {
  31. return 0;
  32. }
  33. void ItemType::levelUpItemSkill( ItemSkill *zSkill ) const
  34. {
  35. if( levelUpRule )
  36. levelUpRule->applyOn( zSkill );
  37. }
  38. Item *ItemType::loadItem( Framework::Reader *zReader ) const
  39. {
  40. return createItem();
  41. }
  42. void ItemType::saveItem( Item *zItem, Framework::Writer *zWriter ) const {}