Item * ObjectMgr::CreateItem(uint32 entry, Player * owner, ItemPrototype * proto) { if(proto == 0) return 0; if(proto->InventoryType == INVTYPE_BAG) { Container * pContainer = new Container(HIGHGUID_TYPE_CONTAINER,GenerateLowGuid(HIGHGUID_TYPE_CONTAINER)); pContainer->Create(entry, owner, proto); pContainer->SetUInt32Value(ITEM_FIELD_STACK_COUNT, 1); return pContainer; } else { Item * pItem = ItemPool.PooledNew(); pItem->Init( HIGHGUID_TYPE_ITEM, GenerateLowGuid(HIGHGUID_TYPE_ITEM) ); pItem->Create(entry, owner, proto); pItem->SetUInt32Value(ITEM_FIELD_STACK_COUNT, 1); return pItem; } }