bool Animation2D::Save(Serializer& dest) const { XMLFile xmlFile(context_); XMLElement rootElem = xmlFile.CreateRoot("Animation"); float endTime = 0.0f; for (unsigned i = 0; i < frameSprites_.Size(); ++i) { XMLElement frameElem = rootElem.CreateChild("Frame"); frameElem.SetFloat("duration", frameEndTimes_[i] - endTime); endTime = frameEndTimes_[i]; Sprite2D* sprite = frameSprites_[i]; SpriteSheet2D* spriteSheet = sprite->GetSpriteSheet(); if (!spriteSheet) frameElem.SetString("sprite", sprite->GetName()); else frameElem.SetString("sprite", spriteSheet->GetName() + "@" + sprite->GetName()); } return xmlFile.Save(dest); }