1 /*! 2 @file 3 @author Albert Semenov 4 @date 11/2009 5 */ 6 #ifndef DEMO_RESOURCE_DEVICE_H_ 7 #define DEMO_RESOURCE_DEVICE_H_ 8 9 #include "MyGUI_Prerequest.h" 10 #include "MyGUI_XmlDocument.h" 11 #include "MyGUI_IResource.h" 12 #include "MyGUI_ResourceManager.h" 13 14 namespace demo 15 { 16 17 class ResourceDevice : 18 public MyGUI::IResource, 19 public MyGUI::GenericFactory<ResourceDevice> 20 { 21 friend class MyGUI::GenericFactory<ResourceDevice>; 22 MYGUI_RTTI_DERIVED(ResourceDevice)23 MYGUI_RTTI_DERIVED( ResourceDevice ) 24 25 private: 26 ResourceDevice() : 27 mValueEnergy(0), 28 mValueExplosion(0), 29 mValueTarget(0), 30 mValueHP(0) 31 { 32 } 33 deserialization(MyGUI::xml::ElementPtr _node,MyGUI::Version _version)34 void deserialization(MyGUI::xml::ElementPtr _node, MyGUI::Version _version) override 35 { 36 Base::deserialization(_node, _version); 37 38 MyGUI::xml::ElementEnumerator node = _node->getElementEnumerator(); 39 while (node.next()) 40 { 41 if (node->getName() == "Name") mDeviceName = node->getContent(); 42 else if (node->getName() == "Description") mDeviceDescription = node->getContent(); 43 else if (node->getName() == "ValueEnergy") mValueEnergy = MyGUI::utility::parseValue<size_t>(node->getContent()); 44 else if (node->getName() == "ValueExplosion") mValueExplosion = MyGUI::utility::parseValue<size_t>(node->getContent()); 45 else if (node->getName() == "ValueTarget") mValueTarget = MyGUI::utility::parseValue<size_t>(node->getContent()); 46 else if (node->getName() == "ValueHP") mValueHP = MyGUI::utility::parseValue<size_t>(node->getContent()); 47 } 48 } 49 50 public: getDeviceName()51 const std::string& getDeviceName() 52 { 53 return mDeviceName; 54 } getDeviceDescription()55 const std::string& getDeviceDescription() 56 { 57 return mDeviceDescription; 58 } getValueEnergy()59 size_t getValueEnergy() 60 { 61 return mValueEnergy; 62 } getValueExplosion()63 size_t getValueExplosion() 64 { 65 return mValueExplosion; 66 } getValueTarget()67 size_t getValueTarget() 68 { 69 return mValueTarget; 70 } getValueHP()71 size_t getValueHP() 72 { 73 return mValueHP; 74 } 75 76 private: 77 std::string mDeviceName; 78 std::string mDeviceDescription; 79 size_t mValueEnergy; 80 size_t mValueExplosion; 81 size_t mValueTarget; 82 size_t mValueHP; 83 84 }; 85 86 } // namespace demo 87 88 #endif // DEMO_RESOURCE_DEVICE_H_ 89