16 std::vector<IntPoint> ResourceImageSet::mFramesEmpty;
18 void ResourceImageSet::deserialization(
xml::ElementPtr _node, Version _version)
20 Base::deserialization(_node, _version);
23 xml::ElementEnumerator group_node = _node->getElementEnumerator();
24 while (group_node.next(
"Group"))
27 group.name = group_node->findAttribute(
"name");
29 group.texture = group_node->findAttribute(
"texture");
31 if (_version >= Version(1, 1))
38 xml::ElementEnumerator index_node = group_node->getElementEnumerator();
39 while (index_node.next(
"Index"))
42 index.name = index_node->findAttribute(
"name");
45 xml::ElementEnumerator frame_node = index_node->getElementEnumerator();
46 while (frame_node.next(
"Frame"))
50 if ((count < 1) || (count > 256)) count = 1;
53 index.frames.push_back(point);
58 group.indexes.push_back(index);
67 size_t index_group = getGroupIndex(_group);
71 size_t index_image = getImageIndex(group, _index);
83 if (_group < mGroups.size())
86 size_t index_image = getImageIndex(group, _index);
98 size_t index_group = getGroupIndex(_group);
102 if (_index < group.
indexes.size())
113 if (_group < mGroups.size())
116 if (_index < group.
indexes.size())
127 size_t index_group = getGroupIndex(_group);
131 if (_index < group.
indexes.size())
142 size_t index_group = getGroupIndex(_group);
146 size_t index_image = getImageIndex(group, _index);
156 size_t ResourceImageSet::getGroupIndex(
const std::string& _name)
158 for (
size_t index = 0; index < mGroups.size(); ++index)
160 if (mGroups[index].name == _name)
166 size_t ResourceImageSet::getGroupIndex(
const IntSize& _size)
168 for (
size_t index = 0; index < mGroups.size(); ++index)
170 if (mGroups[index].size == _size)
176 size_t ResourceImageSet::getImageIndex(GroupImage& _group,
const std::string& _name)
179 for (
size_t index = 0; index < indexes.size(); ++index)
181 if (indexes[index].name == _name)
187 const IntSize& ResourceImageSet::getGroupSize(
size_t _index)
189 if (_index >= mGroups.size())
191 return mGroups[_index].size;
194 const IntSize& ResourceImageSet::getGroupSize(
const std::string& _group)
196 for (
size_t index = 0; index < mGroups.size(); ++index)
198 if (mGroups[index].name == _group)
199 return mGroups[index].size;
211 mGroups.push_back(_group);