From 67af89b5fe14d2d0431cefb9b714f72873a74e16 Mon Sep 17 00:00:00 2001 From: Yohann Ferreira Date: Fri, 19 Aug 2011 00:56:22 +0200 Subject: Used the client base to make a final bugfix on the server code. Made the server handle only one slot type requirement since it's irrelevant to have more anyway. Plus, it simplifies the code for both equipping/unequipping. I also added a dagger to show how equipping/unequipping is working. --- src/game-server/item.h | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/game-server/item.h') diff --git a/src/game-server/item.h b/src/game-server/item.h index caef386a..f7c380f1 100644 --- a/src/game-server/item.h +++ b/src/game-server/item.h @@ -28,10 +28,15 @@ class Being; class Script; -// A pair indicating: Equipment slot id -> how much slots required. -typedef std::pair< unsigned int, unsigned int> ItemEquipInfo; -// The list of required slots to equip. -typedef std::list< ItemEquipInfo > ItemEquipsInfo; +// Indicates the equip slot "cost" to equip an item. +struct ItemEquipRequirement { + ItemEquipRequirement(): + equipSlotId(0), + capacityRequired(0) + {} + + unsigned int equipSlotId, capacityRequired; +}; /** * State effects to beings, and actors. @@ -226,9 +231,10 @@ class ItemClass { return mSpriteID; } /** - * Returns equip requirements. + * Returns equip requirement. */ - const ItemEquipsInfo &getItemEquipData() const { return mEquip; } + const ItemEquipRequirement &getItemEquipRequirement() const + { return mEquipReq; } private: /** @@ -274,12 +280,9 @@ class ItemClass std::multimap< ItemTriggerType, ItemEffectInfo * > mDispells; /** - * List of list of requirements for equipping. Only one inner list - * need be satisfied to sucessfully equip. Checks occur in order - * from outer front to back. - * All conditions in an inner list must be met for success. + * Requirement for equipping. */ - ItemEquipsInfo mEquip; + ItemEquipRequirement mEquipReq; friend class ItemManager; }; -- cgit v1.2.3-60-g2f50