#include "Inventory.h" #include "Area.h" using namespace Framework; Inventory::Inventory( const Framework::Vec3 location, bool hasInventory ) : ReferenceCounter(), location( location ) { if( hasInventory ) { pullSlotsOrder = new Framework::RCArray(); pushSlotsOrder = new Framework::RCArray(); } else { pullSlotsOrder = 0; pushSlotsOrder = 0; } } Inventory::~Inventory() { if( pullSlotsOrder ) pullSlotsOrder->release(); if( pushSlotsOrder ) pushSlotsOrder->release(); } void Inventory::loadInventory( Framework::StreamReader *zReader ) { if( pushSlotsOrder ) { for( auto iterator = pushSlotsOrder->getIterator(); iterator; iterator++ ) { int size = 0; zReader->lese( (char *)&size, 4 ); if( size != 0 ) { int id = 0; zReader->lese( (char *)&id, 4 ); Item *item = StaticRegistry::INSTANCE.zElement( id )->loadItem( zReader ); iterator->setItems( new ItemStack( item, size ) ); } } } }