From b7bbb09d62b55bed26d432a6a2af9831c6ec9143 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 24 Mar 2016 20:42:22 +0300 Subject: Change ItemType into strong typed enum. --- src/being/playerinfo.cpp | 3 ++- src/enums/resources/itemtype.h | 47 +++++++++++++++++-------------------- src/gui/popups/itempopup.cpp | 2 +- src/gui/popups/itempopup.h | 4 ++-- src/gui/widgets/itemcontainer.cpp | 4 ++-- src/gui/windows/buydialog.cpp | 4 ++-- src/gui/windows/inventorywindow.cpp | 3 ++- src/resources/db/itemdb.cpp | 6 ++--- src/resources/iteminfo.h | 6 ++--- src/resources/itemtypemap.h | 2 +- 10 files changed, 40 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index ecd83ad40..dbffe8b3e 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -276,7 +276,8 @@ void useEquipItem(const Item *const item, const Sfx sfx) if (item) { #ifdef EATHENA_SUPPORT - if (item->getType() == ItemType::CARD) + // IT_CARD + if (item->getType() == 6) { if (mProtectedItems.find(item->getId()) == mProtectedItems.end()) { diff --git a/src/enums/resources/itemtype.h b/src/enums/resources/itemtype.h index 489dc3c44..29ad14b54 100644 --- a/src/enums/resources/itemtype.h +++ b/src/enums/resources/itemtype.h @@ -23,31 +23,28 @@ #ifndef RESOURCES_ITEMTYPE_H #define RESOURCES_ITEMTYPE_H -namespace ItemType +#include "enums/simpletypes/enumdefines.h" + +enumStart(ItemType) { - /** - * Enumeration of available Item types. - */ - enum Type - { - UNUSABLE = 0, - USABLE, - EQUIPMENT_ONE_HAND_WEAPON, - EQUIPMENT_TWO_HANDS_WEAPON, - EQUIPMENT_TORSO, - EQUIPMENT_ARMS, // 5 - CARD, - EQUIPMENT_HEAD, - EQUIPMENT_LEGS, - EQUIPMENT_SHIELD, - EQUIPMENT_RING, - EQUIPMENT_NECKLACE, // 10 - EQUIPMENT_FEET, - EQUIPMENT_AMMO, - EQUIPMENT_CHARM, - SPRITE_RACE, - SPRITE_HAIR // 15 - }; -} // namespace ItemType + UNUSABLE = 0, + USABLE, + EQUIPMENT_ONE_HAND_WEAPON, + EQUIPMENT_TWO_HANDS_WEAPON, + EQUIPMENT_TORSO, + EQUIPMENT_ARMS, // 5 + CARD, + EQUIPMENT_HEAD, + EQUIPMENT_LEGS, + EQUIPMENT_SHIELD, + EQUIPMENT_RING, + EQUIPMENT_NECKLACE, // 10 + EQUIPMENT_FEET, + EQUIPMENT_AMMO, + EQUIPMENT_CHARM, + SPRITE_RACE, + SPRITE_HAIR // 15 +} +enumEnd(ItemType); #endif // RESOURCES_ITEMTYPE_H diff --git a/src/gui/popups/itempopup.cpp b/src/gui/popups/itempopup.cpp index f0ab5d167..065704cb8 100644 --- a/src/gui/popups/itempopup.cpp +++ b/src/gui/popups/itempopup.cpp @@ -325,7 +325,7 @@ std::string ItemPopup::getCardsString(const int *const cards) return label->setForegroundColorAll(getThemeColor(name2), \ getThemeColor(name2##_OUTLINE)); \ } -void ItemPopup::setLabelColor(Label *label, const ItemType::Type type) const +void ItemPopup::setLabelColor(Label *label, const ItemTypeT type) const { switch (type) { diff --git a/src/gui/popups/itempopup.h b/src/gui/popups/itempopup.h index 7f5481627..fc0320614 100644 --- a/src/gui/popups/itempopup.h +++ b/src/gui/popups/itempopup.h @@ -82,14 +82,14 @@ class ItemPopup final : public Popup TextBox *mItemEffect A_NONNULLPOINTER; TextBox *mItemWeight A_NONNULLPOINTER; TextBox *mItemCards A_NONNULLPOINTER; - ItemType::Type mItemType; + ItemTypeT mItemType; Icon *mIcon A_NONNULLPOINTER; std::string mLastName; int mLastId; ItemColor mLastColor; void setLabelColor(Label *label, - const ItemType::Type type) const A_NONNULL(2); + const ItemTypeT type) const A_NONNULL(2); }; extern ItemPopup *itemPopup; diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 02ad10ee9..96bdb1dcc 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -158,8 +158,8 @@ namespace const ItemInfo &info1 = pair1->mItem->getInfo(); const ItemInfo &info2 = pair2->mItem->getInfo(); - const ItemType::Type t1 = info1.getType(); - const ItemType::Type t2 = info2.getType(); + const ItemTypeT t1 = info1.getType(); + const ItemTypeT t2 = info2.getType(); if (t1 == t2) { return (info1.getName() < info2.getName()); diff --git a/src/gui/windows/buydialog.cpp b/src/gui/windows/buydialog.cpp index 47ec11db2..c6be959de 100644 --- a/src/gui/windows/buydialog.cpp +++ b/src/gui/windows/buydialog.cpp @@ -160,8 +160,8 @@ namespace if (!item1 || !item2) return false; - const ItemType::Type type1 = item1->getInfo().getType(); - const ItemType::Type type2 = item2->getInfo().getType(); + const ItemTypeT type1 = item1->getInfo().getType(); + const ItemTypeT type2 = item2->getInfo().getType(); if (type1 == type2) return item1->getPrice() < item2->getPrice(); return type1 < type2; diff --git a/src/gui/windows/inventorywindow.cpp b/src/gui/windows/inventorywindow.cpp index 881e10c1a..5485bd98a 100644 --- a/src/gui/windows/inventorywindow.cpp +++ b/src/gui/windows/inventorywindow.cpp @@ -1047,7 +1047,8 @@ void InventoryWindow::combineItems(const int index1, if (!item2) return; - if (item1->getType() != ItemType::CARD) + // IT_CARD + if (item1->getType() != 6) { const Item *tmpItem = item1; item1 = item2; diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 86a22a8fc..3ef3c8bd4 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -173,7 +173,7 @@ void ItemDB::setStatsList(const std::vector &stats) extraStats = stats; } -static ItemType::Type itemTypeFromString(const std::string &name) +static ItemTypeT itemTypeFromString(const std::string &name) { const size_t sz = sizeof(itemTypeMap) / sizeof(itemTypeMap[0]); for (size_t f = 0; f < sz; f ++) @@ -186,7 +186,7 @@ static ItemType::Type itemTypeFromString(const std::string &name) return ItemType::UNUSABLE; } -static std::string useButtonFromItemType(const ItemType::Type &type) +static std::string useButtonFromItemType(const ItemTypeT &type) { const size_t sz = sizeof(itemTypeMap) / sizeof(itemTypeMap[0]); for (size_t f = 0; f < sz; f ++) @@ -203,7 +203,7 @@ static std::string useButtonFromItemType(const ItemType::Type &type) return std::string(); } -static std::string useButton2FromItemType(const ItemType::Type &type) +static std::string useButton2FromItemType(const ItemTypeT &type) { const size_t sz = sizeof(itemTypeMap) / sizeof(itemTypeMap[0]); for (size_t f = 0; f < sz; f ++) diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h index 59b6a0b99..f9c622d3f 100644 --- a/src/resources/iteminfo.h +++ b/src/resources/iteminfo.h @@ -100,7 +100,7 @@ class ItemInfo final const std::string &getEffect() const A_WARN_UNUSED { return mEffect; } - void setType(const ItemType::Type type) + void setType(const ItemTypeT type) { mType = type; } void setUseButton(const std::string &str) @@ -115,7 +115,7 @@ class ItemInfo final const std::string &getUseButton2() const A_WARN_UNUSED { return mUseButton2; } - ItemType::Type getType() const A_WARN_UNUSED + ItemTypeT getType() const A_WARN_UNUSED { return mType; } void setWeight(const int weight) @@ -329,7 +329,7 @@ class ItemInfo final std::string mEffect; /**< Description of effects. */ std::string mUseButton; std::string mUseButton2; - ItemType::Type mType; /**< Item type. */ + ItemTypeT mType; /**< Item type. */ int mWeight; /**< Weight in grams. */ int mView; /**< Item ID of how this item looks. */ int mId; /**< Item ID */ diff --git a/src/resources/itemtypemap.h b/src/resources/itemtypemap.h index ccf70068b..6718c8413 100644 --- a/src/resources/itemtypemap.h +++ b/src/resources/itemtypemap.h @@ -30,7 +30,7 @@ struct ItemTypeMap final { std::string name; - ItemType::Type type; + ItemTypeT type; std::string useButton; std::string useButton2; }; -- cgit v1.2.3-60-g2f50