#include "Inventory.h" #include "Area.h" #include "Registries.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 slot : *pushSlotsOrder ) { int size = 0; zReader->lese( (char*)&size, 4 ); if( size != 0 ) { int id = 0; zReader->lese( (char*)&id, 4 ); Item* item = STATIC_REGISTRY( ItemType ).zElement( id )->loadItem( zReader ); slot->setItems( new ItemStack( item, size ) ); } } } }