Untitled
unknown
plain_text
a year ago
2.5 kB
11
Indexable
typedef struct SItemPos
{
BYTE window_type;
WORD cell;
SItemPos()
{
window_type = INVENTORY;
cell = WORD_MAX;
}
SItemPos(BYTE _window_type, WORD _cell)
{
window_type = _window_type;
cell = _cell;
}
bool IsValidItemPosition() const
{
switch (window_type)
{
case INVENTORY:
return cell < INVENTORY_MAX_NUM;
case EQUIPMENT:
return cell < EQUIPMENT_MAX_NUM;
#if defined(__DRAGON_SOUL_SYSTEM__)
case DRAGON_SOUL_INVENTORY:
return cell < DRAGON_SOUL_INVENTORY_MAX_NUM;
#endif
case BELT_INVENTORY:
return cell < BELT_INVENTORY_SLOT_COUNT;
// µ¿ÀûÀ¸·Î Å©±â°¡ Á¤ÇØÁö´Â window´Â valid üũ¸¦ ÇÒ ¼ö°¡ ¾ø´Ù.
case SAFEBOX:
case MALL:
return false;
#ifdef ENABLE_SWITCHBOT
case SWITCHBOT:
return cell < SWITCHBOT_SLOT_COUNT;
#endif
default:
return false;
}
return false;
}
bool IsSameItemPosition(const SItemPos& DestCell) const
{
return (window_type == DestCell.window_type) && (cell == DestCell.cell);
}
#ifdef ENABLE_SWITCHBOT
bool IsSwitchbotPosition() const
{
return SWITCHBOT == window_type && cell < SWITCHBOT_SLOT_COUNT;
}
#endif
bool IsInventoryPosition() const
{
return (window_type == INVENTORY && cell < INVENTORY_MAX_NUM);
}
bool IsDefaultInventoryPosition() const
{
return IsInventoryPosition();
}
bool IsEquipPosition() const
{
return (IsEquipmentPosition()
#if defined(__DRAGON_SOUL_SYSTEM__)
|| IsDragonSoulEquipPosition()
#endif
);
}
bool IsEquipmentPosition() const
{
return (window_type == EQUIPMENT && cell < EQUIPMENT_MAX_NUM);
}
#if defined(__DRAGON_SOUL_SYSTEM__)
bool IsDragonSoulEquipPosition() const
{
return (EQUIPMENT == window_type && (cell >= DRAGON_SOUL_EQUIP_SLOT_START && cell < DRAGON_SOUL_EQUIP_SLOT_END));
}
bool IsDragonSoulInventoryPosition() const
{
return (window_type == DRAGON_SOUL_INVENTORY && cell < DRAGON_SOUL_INVENTORY_MAX_NUM);
}
#endif
bool IsBeltInventoryPosition() const
{
return (window_type == BELT_INVENTORY && cell < BELT_INVENTORY_SLOT_COUNT);
}
bool operator==(const struct SItemPos& rhs) const
{
return (window_type == rhs.window_type) && (cell == rhs.cell);
}
bool operator!=(const struct SItemPos& rhs) const
{
return (window_type != rhs.window_type) || (cell != rhs.cell);
}
bool operator<(const struct SItemPos& rhs) const
{
return (window_type < rhs.window_type) || ((window_type == rhs.window_type) && (cell < rhs.cell));
}
} TItemPos;Editor is loading...
Leave a Comment