diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-11-13 00:33:01 +0100 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-11-13 19:50:00 +0100 |
commit | a0973bc302f2972c4c70d973090c4d29ea2f7c6d (patch) | |
tree | e840f5807aa8b3cfc69b17a17ac3bf9cba317485 /src/net | |
parent | 253c660d8e3341ad2d78658a23e599d5aaa84c00 (diff) | |
download | mana-a0973bc302f2972c4c70d973090c4d29ea2f7c6d.tar.gz mana-a0973bc302f2972c4c70d973090c4d29ea2f7c6d.tar.bz2 mana-a0973bc302f2972c4c70d973090c4d29ea2f7c6d.tar.xz mana-a0973bc302f2972c4c70d973090c4d29ea2f7c6d.zip |
Added background support to the equipment boxes.
The background images are auto-centered.
Also, for Manaserv, a new background parameter has been
added in the box node of the equip.xml file
to specify the background image.
Note that the filename is relative to the gui theme
folder.
Reviewed-by: Thorbjorn Lindeijer
Resolves: TMW-Mantis #769.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/inventoryhandler.h | 23 | ||||
-rw-r--r-- | src/net/manaserv/inventoryhandler.cpp | 11 | ||||
-rw-r--r-- | src/net/manaserv/inventoryhandler.h | 6 |
3 files changed, 40 insertions, 0 deletions
diff --git a/src/net/inventoryhandler.h b/src/net/inventoryhandler.h index 83ef91a7..24e6dd43 100644 --- a/src/net/inventoryhandler.h +++ b/src/net/inventoryhandler.h @@ -45,6 +45,22 @@ const int fallBackBoxesPosition[][2] = { { 129, 78 } // EQUIP_PROJECTILE_SLOT }; +const std::string fallBackBoxesBackground[] = { + "equip-box-chest.png", + "equip-box-hands.png", + "equip-box-head.png", + "equip-box-legs.png", + "equip-box-feet.png", + "equip-box-ring.png", + "equip-box-ring.png", + "equip-box-neck.png", + "equip-box-weapon.png", + "equip-box-shield.png", + "equip-box-ammo.png" +}; + +static const std::string empty = std::string(); + class InventoryHandler { public: @@ -70,6 +86,13 @@ class InventoryHandler fallBackBoxesPosition[slotIndex][1]); return Position(0,0); } + + virtual const std::string& getBoxBackground(unsigned int slotIndex) const + { + if (slotIndex < sizeof(fallBackBoxesBackground)) + return fallBackBoxesBackground[slotIndex]; + return empty; // The empty string + } }; } // namespace Net diff --git a/src/net/manaserv/inventoryhandler.cpp b/src/net/manaserv/inventoryhandler.cpp index 67c79a17..7dd971ab 100644 --- a/src/net/manaserv/inventoryhandler.cpp +++ b/src/net/manaserv/inventoryhandler.cpp @@ -271,6 +271,10 @@ void EquipBackend::readBoxNode(xmlNodePtr slotNode) int y = XML::getProperty(boxNode, "y" , 0); mBoxesPositions.push_back(Position(x, y)); + + std::string backgroundFile = + XML::getProperty(boxNode, "background" , std::string()); + mBoxesBackgroundFile.push_back(backgroundFile); } } @@ -303,6 +307,13 @@ Position EquipBackend::getBoxPosition(unsigned int slotIndex) const return Position(0, 0); } +const std::string& EquipBackend::getBoxBackground(unsigned int slotIndex) const +{ + if (slotIndex < mBoxesBackgroundFile.size()) + return mBoxesBackgroundFile.at(slotIndex); + return Net::empty; +} + InventoryHandler::InventoryHandler() { static const Uint16 _messages[] = { diff --git a/src/net/manaserv/inventoryhandler.h b/src/net/manaserv/inventoryhandler.h index 446105ee..c9192525 100644 --- a/src/net/manaserv/inventoryhandler.h +++ b/src/net/manaserv/inventoryhandler.h @@ -63,6 +63,8 @@ class EquipBackend : public Equipment::Backend, public EventListener Position getBoxPosition(unsigned int slotIndex) const; + const std::string& getBoxBackground(unsigned int slotIndex) const; + private: void readEquipFile(); @@ -114,6 +116,7 @@ class EquipBackend : public Equipment::Backend, public EventListener typedef std::map<unsigned int, Slot> Slots; Slots mSlots; std::vector<Position> mBoxesPositions; + std::vector<std::string> mBoxesBackgroundFile; }; class InventoryHandler : public MessageHandler, Net::InventoryHandler, @@ -142,6 +145,9 @@ class InventoryHandler : public MessageHandler, Net::InventoryHandler, Position getBoxPosition(unsigned int slotIndex) const { return mEquipBackend.getBoxPosition(slotIndex); } + const std::string& getBoxBackground(unsigned int slotIndex) const + { return mEquipBackend.getBoxBackground(slotIndex); } + private: EquipBackend mEquipBackend; }; |