1 /*!
2 	@file
3 	@author		Albert Semenov
4 	@date		07/2008
5 */
6 #ifndef ITEM_DATA_H_
7 #define ITEM_DATA_H_
8 
9 #include "ResourceItemInfo.h"
10 #include "MyGUI_ResourceManager.h"
11 
12 namespace demo
13 {
14 
15 	class ItemData
16 	{
17 	public:
ItemData()18 		ItemData() :
19 			count(0),
20 			mResourceInfo(nullptr),
21 			mResourceImage(nullptr)
22 		{
23 		}
24 
ItemData(const std::string & _resource,size_t _count)25 		ItemData(const std::string& _resource, size_t _count) :
26 			count(_count),
27 			mResourceInfo(nullptr),
28 			mResourceImage(nullptr)
29 		{
30 			MyGUI::ResourceManager& manager = MyGUI::ResourceManager::getInstance();
31 			mResourceInfo = manager.getByName(_resource)->castType<demo::ResourceItemInfo>();
32 			mResourceImage = manager.getByName(mResourceInfo->getItemResourceImage())->castType<MyGUI::ResourceImageSet>();
33 		}
34 
isEmpty()35 		bool isEmpty() const
36 		{
37 			return mResourceInfo == 0;
38 		}
39 
compare(ItemData * _data)40 		bool compare(ItemData* _data) const
41 		{
42 			return mResourceInfo == _data->mResourceInfo;
43 		}
44 
add(ItemData * _data)45 		void add(ItemData* _data)
46 		{
47 			count += _data->count;
48 			mResourceInfo = _data->mResourceInfo;
49 			mResourceImage = _data->mResourceImage;
50 		}
51 
clear()52 		void clear()
53 		{
54 			mResourceInfo = nullptr;
55 			mResourceImage = nullptr;
56 			count = 0;
57 		}
58 
getCount()59 		size_t getCount() const
60 		{
61 			return count;
62 		}
63 
getInfo()64 		demo::ResourceItemInfoPtr getInfo() const
65 		{
66 			return mResourceInfo;
67 		}
68 
getImage()69 		MyGUI::ResourceImageSetPtr getImage() const
70 		{
71 			return mResourceImage;
72 		}
73 
74 	private:
75 		size_t count;
76 		demo::ResourceItemInfoPtr mResourceInfo;
77 		MyGUI::ResourceImageSetPtr mResourceImage;
78 	};
79 
80 } // namespace demo
81 
82 #endif // ITEM_DATA_H_
83