31 std::vector<IntPoint> ResourceImageSet::mFramesEmpty;
33 ResourceImageSet::ResourceImageSet()
37 ResourceImageSet::~ResourceImageSet()
41 void ResourceImageSet::deserialization(
xml::ElementPtr _node, Version _version)
43 Base::deserialization(_node, _version);
46 xml::ElementEnumerator group_node = _node->getElementEnumerator();
47 while (group_node.next(
"Group"))
50 group.name = group_node->findAttribute(
"name");
52 group.texture = group_node->findAttribute(
"texture");
54 if (_version >= Version(1, 1))
61 xml::ElementEnumerator index_node = group_node->getElementEnumerator();
62 while (index_node.next(
"Index"))
65 index.name = index_node->findAttribute(
"name");
68 xml::ElementEnumerator frame_node = index_node->getElementEnumerator();
69 while (frame_node.next(
"Frame"))
73 if ((count < 1) || (count > 256)) count = 1;
76 index.frames.push_back(point);
81 group.indexes.push_back(index);
84 mGroups.push_back(group);
90 size_t index_group = getGroupIndex(_group);
94 size_t index_image = getImageIndex(group, _index);
106 if (_group < mGroups.size())
109 size_t index_image = getImageIndex(group, _index);
121 size_t index_group = getGroupIndex(_group);
125 if (_index < group.
indexes.size())
136 if (_group < mGroups.size())
139 if (_index < group.
indexes.size())
150 size_t index_group = getGroupIndex(_group);
154 if (_index < group.
indexes.size())
165 size_t index_group = getGroupIndex(_group);
169 size_t index_image = getImageIndex(group, _index);
179 size_t ResourceImageSet::getGroupIndex(
const std::string& _name)
181 for (
size_t index = 0; index < mGroups.size(); ++index)
183 if (mGroups[index].name == _name)
189 size_t ResourceImageSet::getGroupIndex(
const IntSize& _size)
191 for (
size_t index = 0; index < mGroups.size(); ++index)
193 if (mGroups[index].size == _size)
199 size_t ResourceImageSet::getImageIndex(GroupImage& _group,
const std::string& _name)
202 for (
size_t index = 0; index < indexes.size(); ++index)
204 if (indexes[index].name == _name)
210 const IntSize& ResourceImageSet::getGroupSize(
size_t _index)
212 if (_index >= mGroups.size())
214 return mGroups[_index].size;
217 const IntSize& ResourceImageSet::getGroupSize(
const std::string& _group)
219 for (
size_t index = 0; index < mGroups.size(); ++index)
221 if (mGroups[index].name == _group)
222 return mGroups[index].size;