X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FItem.h;h=bd8e7a999e720875e09e3b5a277671da9942b263;hb=5795ffa948c6e39a624c4fc7773a99afb87579e1;hp=1af15f3de365fc289d5e74a62ac14b0908b63b94;hpb=b02da898c7c8a08141df4e797774a61cf5e0163f;p=l2e.git diff --git a/src/common/Item.h b/src/common/Item.h index 1af15f3..bd8e7a9 100644 --- a/src/common/Item.h +++ b/src/common/Item.h @@ -8,22 +8,19 @@ #ifndef COMMON_ITEM_H_ #define COMMON_ITEM_H_ -#include "HeroGroup.h" +#include "fwd.h" #include "TargetingMode.h" +#include "../graphics/fwd.h" #include -namespace graphics { - class Animation; - class Sprite; -} - namespace common { -class Ikari; - class Item { +public: + static const int TYPE_ID = 303; + public: Item(); @@ -31,7 +28,7 @@ public: const char *Name() const { return name; } bool IsMostUseful() const { return mostUseful; } - bool IsEquipable() const { return equipable; } + bool IsEquipable() const { return equipability; } bool IsCursed() const { return cursed; } bool IsFruit() const { return fruit; } bool IsScenario() const { return scenario; } @@ -63,8 +60,7 @@ public: bool CanEquipRing() const { return equipability & EQUIPPABLE_RING; } bool CanEquipJewel() const { return equipability & EQUIPPABLE_JEWEL; } - 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; } @@ -80,6 +76,8 @@ public: bool HasBattleAnimation() const { return properties & PROPERTY_HAS_BATTLE_ANIMATION; } bool HasIkariEffect() const { return properties & PROPERTY_HAS_IKARI_EFFECT; } + static bool Less(const Item &, const Item &); + // temporary setters public: void SetName(const char *n) { name = n; } @@ -131,12 +129,11 @@ private: Uint16 properties; TargetingMode targettingMode; - Uint8 equipability; - HeroGroup equipableBy; + int equipability; + int heroMask; // TODO: turn these back into bits as soon as fields are implemented in the loader bool mostUseful; - bool equipable; bool cursed; bool fruit; bool scenario;