#ifdef ENABLE_SPECIAL_STORAGE_SYSTTEM else if (item->IsBook()) { int iEmptyPos = ch->GetEmptyBookInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(BOOK_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } else if (item->IsUpgradeItem()) { int iEmptyPos = ch->GetEmptyUpgradeInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(UPGRADE_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } else if (item->IsStone()) { int iEmptyPos = ch->GetEmptyStoneInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(STONE_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } else if (item->IsAttr()) { int iEmptyPos = ch->GetEmptyAttrInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(ATTR_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } else if (item->IsFlower()) { int iEmptyPos = ch->GetEmptyFlowerInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(FLOWER_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } else if (item->IsBlendS()) { int iEmptyPos = ch->GetEmptyBlendInventory(item->GetSize()); if (iEmptyPos != -1) item->AddToCharacter(ch, TItemPos(BLEND_INVENTORY, iEmptyPos)); else { M2_DESTROY_ITEM(item); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("INVENTORY_FULL_ERROR")); force = true; continue; } } #endif