public bool ItemSpace(Item newItem)
{
if (newItem.uniqueStack && this.HasItem(newItem.itemId))
return false;
if (newItem.itemId == 58 || newItem.itemId == 184 || (newItem.itemId == 1734 || newItem.itemId == 1735) || (newItem.itemId == 1867 || newItem.itemId == 1868 || ItemID.Sets.NebulaPickup[newItem.itemId]))
return true;
int num = 50;
if (newItem.itemId == 71 || newItem.itemId == 72 || (newItem.itemId == 73 || newItem.itemId == 74))
num = 54;
for (int index = 0; index < num; ++index)
{
if (this.inventory[index].itemId == 0)
return true;
}
for (int index = 0; index < num; ++index)
{
if (this.inventory[index].itemId > 0 && this.inventory[index].stack < this.inventory[index].maxStack && newItem.IsTheSameAs(this.inventory[index]))
return true;
}
if (newItem.ammo > 0 && !newItem.notAmmo)
{
if (newItem.itemId != 75 && newItem.itemId != 169 && (newItem.itemId != 23 && newItem.itemId != 408) && (newItem.itemId != 370 && newItem.itemId != 1246))
{
for (int index = 54; index < 58; ++index)
{
if (this.inventory[index].itemId == 0)
return true;
}
}
for (int index = 54; index < 58; ++index)
{
if (this.inventory[index].itemId > 0 && this.inventory[index].stack < this.inventory[index].maxStack && newItem.IsTheSameAs(this.inventory[index]))
return true;
}
}
return false;
}