summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorJared Adams <jaxad0127@gmail.com>2010-04-13 22:48:28 -0600
committerJared Adams <jaxad0127@gmail.com>2010-04-16 17:42:45 -0600
commit11a6f342e579c26320334b9ae9735701386e3b25 (patch)
tree5de9a3647f881a1f27f4dc31054ad086bdc86d84 /src/resources
parent9f6c1f0bd9d2ef9a3be35fee2c488d8ea6c09d6d (diff)
downloadmana-11a6f342e579c26320334b9ae9735701386e3b25.tar.gz
mana-11a6f342e579c26320334b9ae9735701386e3b25.tar.bz2
mana-11a6f342e579c26320334b9ae9735701386e3b25.tar.xz
mana-11a6f342e579c26320334b9ae9735701386e3b25.zip
Add race support for eAthena
The job/class field is used to select the race. If the given race isn't defined, it falls back on the first race (so servers can use jobs/classes without races). Also rename job to subtype for Being and subclasses, and begin support for changing monster and NPC subtypes on the fly (particle effects still need to be reset when they change). Reviewed-by: Bertram
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/itemdb.cpp11
-rw-r--r--src/resources/itemdb.h2
-rw-r--r--src/resources/iteminfo.h28
3 files changed, 28 insertions, 13 deletions
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index d60e38da..4638f00e 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -78,6 +78,8 @@ static ItemType itemTypeFromString(const std::string &name, int id = 0)
else if (name=="equip-necklace") return ITEM_EQUIPMENT_NECKLACE;
else if (name=="equip-feet") return ITEM_EQUIPMENT_FEET;
else if (name=="equip-ammo") return ITEM_EQUIPMENT_AMMO;
+ else if (name=="racesprite") return ITEM_SPRITE_RACE;
+ else if (name=="hairsprite") return ITEM_SPRITE_HAIR;
else return ITEM_UNUSABLE;
}
@@ -255,6 +257,15 @@ void ItemDB::unload()
mLoaded = false;
}
+bool ItemDB::exists(int id)
+{
+ assert(mLoaded);
+
+ ItemInfos::const_iterator i = mItemInfos.find(id);
+
+ return i != mItemInfos.end();
+}
+
const ItemInfo &ItemDB::get(int id)
{
assert(mLoaded);
diff --git a/src/resources/itemdb.h b/src/resources/itemdb.h
index 63c016ba..be023073 100644
--- a/src/resources/itemdb.h
+++ b/src/resources/itemdb.h
@@ -43,6 +43,8 @@ namespace ItemDB
*/
void unload();
+ bool exists(int id);
+
const ItemInfo &get(int id);
const ItemInfo &get(const std::string &name);
diff --git a/src/resources/iteminfo.h b/src/resources/iteminfo.h
index e14d62b8..a7c0ddca 100644
--- a/src/resources/iteminfo.h
+++ b/src/resources/iteminfo.h
@@ -72,19 +72,21 @@ enum EquipmentSlot
enum ItemType
{
ITEM_UNUSABLE = 0,
- ITEM_USABLE, // 1
- ITEM_EQUIPMENT_ONE_HAND_WEAPON, // 2
- ITEM_EQUIPMENT_TWO_HANDS_WEAPON,// 3
- ITEM_EQUIPMENT_TORSO,// 4
- ITEM_EQUIPMENT_ARMS,// 5
- ITEM_EQUIPMENT_HEAD,// 6
- ITEM_EQUIPMENT_LEGS,// 7
- ITEM_EQUIPMENT_SHIELD,// 8
- ITEM_EQUIPMENT_RING,// 9
- ITEM_EQUIPMENT_NECKLACE,// 10
- ITEM_EQUIPMENT_FEET,// 11
- ITEM_EQUIPMENT_AMMO,// 12
- ITEM_EQUIPMENT_CHARM// 13
+ ITEM_USABLE,
+ ITEM_EQUIPMENT_ONE_HAND_WEAPON,
+ ITEM_EQUIPMENT_TWO_HANDS_WEAPON,
+ ITEM_EQUIPMENT_TORSO,
+ ITEM_EQUIPMENT_ARMS, // 5
+ ITEM_EQUIPMENT_HEAD,
+ ITEM_EQUIPMENT_LEGS,
+ ITEM_EQUIPMENT_SHIELD,
+ ITEM_EQUIPMENT_RING,
+ ITEM_EQUIPMENT_NECKLACE, // 10
+ ITEM_EQUIPMENT_FEET,
+ ITEM_EQUIPMENT_AMMO,
+ ITEM_EQUIPMENT_CHARM,
+ ITEM_SPRITE_RACE,
+ ITEM_SPRITE_HAIR // 15
};
/**