bool SpriteSheet2D::Save(Serializer& dest) const { if (!texture_) return false; SharedPtr<XMLFile> xmlFile(new XMLFile(context_)); XMLElement rootElem = xmlFile->CreateRoot("spritesheet"); rootElem.SetAttribute("texture", texture_->GetName()); for (HashMap<String, SharedPtr<Sprite2D> >::ConstIterator i = spriteMapping_.Begin(); i != spriteMapping_.End(); ++i) { XMLElement spriteElem = rootElem.CreateChild("sprite"); spriteElem.SetAttribute("name", i->first_); Sprite2D* sprite = i->second_; spriteElem.SetIntRect("rectangle", sprite->GetRectangle()); spriteElem.SetVector2("hotspot", sprite->GetHotSpot()); } return xmlFile->Save(dest); }