X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FItem.h;h=df361fe97cdec1a80038bbc1046bc1a74a51aeb4;hb=590f468d34edb704de415d05d51f087da106a547;hp=7e757ff245095e8f55e81b8c4f86d5b32595b450;hpb=89aa9fbc77d72e98549bc3aabd7ced7cd8949bdc;p=l2e.git diff --git a/src/common/Item.h b/src/common/Item.h index 7e757ff..df361fe 100644 --- a/src/common/Item.h +++ b/src/common/Item.h @@ -9,7 +9,7 @@ #define COMMON_ITEM_H_ #include "fwd.h" -#include "HeroGroup.h" +#include "Hero.h" #include "TargetingMode.h" #include "../graphics/fwd.h" @@ -54,15 +54,9 @@ public: Uint16 Value() const { return value; } - bool CanEquipWeapon() const { return equipability & EQUIPPABLE_WEAPON; } - bool CanEquipArmor() const { return equipability & EQUIPPABLE_ARMOR; } - bool CanEquipShield() const { return equipability & EQUIPPABLE_SHIELD; } - bool CanEquipHelmet() const { return equipability & EQUIPPABLE_HELMET; } - bool CanEquipRing() const { return equipability & EQUIPPABLE_RING; } - bool CanEquipJewel() const { return equipability & EQUIPPABLE_JEWEL; } + bool EquipableAt(Hero::EquipSlot slot) const { return equipability & (1 << slot); } - HeroGroup &EquipableBy() { return equipableBy; } - const HeroGroup &EquipableBy() const { return equipableBy; } + int HeroMask() const { return heroMask; } bool HasEffectOnStatusScreen() const { return properties & PROPERTY_HAS_EFFECT_STATUS; } bool HasEffectInBattle() const { return properties & PROPERTY_HAS_EFFECT_BATTLE; } @@ -92,15 +86,6 @@ public: static void Construct(void *); private: - enum Equipable { - EQUIPPABLE_NONE = 0, - EQUIPPABLE_WEAPON = 1, - EQUIPPABLE_ARMOR = 2, - EQUIPPABLE_SHIELD = 4, - EQUIPPABLE_HELMET = 8, - EQUIPPABLE_RING = 16, - EQUIPPABLE_JEWEL = 32, - }; enum Property { PROPERTY_HAS_EFFECT_STATUS = 1, PROPERTY_HAS_EFFECT_BATTLE = 2, @@ -132,7 +117,7 @@ private: TargetingMode targettingMode; int equipability; - HeroGroup equipableBy; + int heroMask; // TODO: turn these back into bits as soon as fields are implemented in the loader bool mostUseful;