aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/character.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/character.h')
-rw-r--r--engines/xeen/character.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/engines/xeen/character.h b/engines/xeen/character.h
index af9f7c69e9..6e6a77210e 100644
--- a/engines/xeen/character.h
+++ b/engines/xeen/character.h
@@ -73,6 +73,17 @@ enum Condition {
NO_CONDITION = 16
};
+enum ElementalCategory {
+ ELEM_FIRE = 0, ELEM_ELECTRICITY = 1, ELEM_COLD = 2,
+ ELEM_ACID_POISON = 3, ELEM_ENERGY = 4, ELEM_MAGIC = 5
+};
+
+enum AttributeCategory {
+ ATTR_MIGHT = 0, ATTR_INTELLECT = 1, ATTR_PERSONALITY = 2, ATTR_SPEED = 3,
+ ATTR_ACCURACY = 4, ATTR_LUCK = 5, ATTR_HIT_POINTS = 6, ATTR_SPELL_POINTS = 7,
+ ATTR_ARMOR_CLASS = 8, ATTR_THIEVERY = 9
+};
+
class XeenEngine;
class Character;
@@ -89,9 +100,9 @@ public:
void synchronize(Common::Serializer &s);
- int getElementalCategory() const;
+ ElementalCategory getElementalCategory() const;
- int getAttributeCategory() const;
+ AttributeCategory getAttributeCategory() const;
};
class InventoryItems : public Common::Array<XeenItem> {
@@ -103,6 +114,8 @@ protected:
XeenEngine *vm();
void equipError(int itemIndex1, ItemCategory category1, int itemIndex2,
ItemCategory category2);
+
+ virtual Common::String getAttributes(XeenItem &item, const Common::String &classes) = 0;
public:
InventoryItems(Character *character, ItemCategory category);
@@ -114,6 +127,8 @@ public:
virtual Common::String getFullDescription(int itemIndex, int displayNum = 15) = 0;
+ Common::String getIdentifiedDetails(int itemIndex);
+
bool discardItem(int itemIndex);
virtual void equipItem(int itemIndex) {}
@@ -126,6 +141,8 @@ public:
};
class WeaponItems: public InventoryItems {
+protected:
+ virtual Common::String getAttributes(XeenItem &item, const Common::String &classes);
public:
WeaponItems(Character *character) : InventoryItems(character, CATEGORY_WEAPON) {}
@@ -137,6 +154,8 @@ public:
};
class ArmorItems : public InventoryItems {
+protected:
+ virtual Common::String getAttributes(XeenItem &item, const Common::String &classes);
public:
ArmorItems(Character *character) : InventoryItems(character, CATEGORY_ARMOR) {}
@@ -148,6 +167,8 @@ public:
};
class AccessoryItems : public InventoryItems {
+protected:
+ virtual Common::String getAttributes(XeenItem &item, const Common::String &classes);
public:
AccessoryItems(Character *character) : InventoryItems(character, CATEGORY_ACCESSORY) {}
@@ -157,6 +178,8 @@ public:
};
class MiscItems : public InventoryItems {
+protected:
+ virtual Common::String getAttributes(XeenItem &item, const Common::String &classes);
public:
MiscItems(Character *character) : InventoryItems(character, CATEGORY_MISC) {}