Inventoty.cpp 926 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include "Inventory.h"
  2. #include "Area.h"
  3. using namespace Framework;
  4. Inventory::Inventory( const Framework::Vec3<float> location )
  5. : ReferenceCounter(),
  6. location( location )
  7. {
  8. pullSlotsOrder = new Framework::RCArray<ItemSlot>();
  9. pushSlotsOrder = new Framework::RCArray<ItemSlot>();
  10. }
  11. Inventory::~Inventory()
  12. {
  13. pullSlotsOrder->release();
  14. pushSlotsOrder->release();
  15. }
  16. void Inventory::loadInventory( Framework::StreamReader *zReader )
  17. {
  18. for( auto iterator = pushSlotsOrder->getIterator(); iterator; iterator++ )
  19. {
  20. int size = 0;
  21. zReader->lese( (char *)&size, 4 );
  22. if( size != 0 )
  23. {
  24. int id = 0;
  25. zReader->lese( (char *)&id, 4 );
  26. Item *item = StaticRegistry<ItemType>::INSTANCE.zElement( id )->loadItem( zReader );
  27. iterator->setItems( new ItemStack( item, size ) );
  28. }
  29. }
  30. }