YAPOG  0.0.1
Yet Another Pokemon Online Game
SpriteSetReader.hxx
Go to the documentation of this file.
1 #ifndef YAPOG_SPRITESETREADER_HXX
2 # define YAPOG_SPRITESETREADER_HXX
3 
10 
11 namespace yap
12 {
13  template <typename K>
15  SpriteSet<K>& spriteSet,
16  const String& xmlRootNodeName)
17  : BaseSpriteReader (spriteSet, xmlRootNodeName)
18  , spriteSet_ (spriteSet)
19  {
20  }
21 
22  template <typename K>
24  {
25  }
26 
27  template <typename K>
28  inline void SpriteSetReader<K>::Visit (XmlReader& visitable)
29  {
30  BaseSpriteReader::Visit (visitable);
31 
32  auto reader = visitable.ChangeRoot (xmlRootNodeName_);
33 
34  XmlReaderCollection spriteReaders;
35  reader->ReadNodes ("sprite", spriteReaders);
36  for (auto& spriteReader : spriteReaders)
37  {
38  K key = StringHelper::Parse<K> (spriteReader->ReadString ("key"));
39 
40  String spriteType = spriteReader->ReadString ("spriteType");
41 
42  spriteSet_.AddSprite (
43  key,
44  ObjectFactory::Instance ().Create<ISprite> (
45  spriteType,
46  *spriteReader,
47  spriteType));
48  }
49  }
50 } // namespace yap
51 
52 #endif // YAPOG_SPRITESETREADER_HXX