void Puppet::SaveParts(TiXmlElement *element, Entity *fromEntity) { XMLFileNode xmlFileNode(element); if (fromEntity->GetParent() != NULL) fromEntity->Save(&xmlFileNode); const std::list<Entity*> *children = fromEntity->GetChildren(); for (std::list<Entity*>::const_iterator i = children->begin(); i != children->end(); ++i) { Part *part = dynamic_cast<Part*>(*i); if (part) { TiXmlElement xmlPart("Part"); SaveParts(&xmlPart, part); xmlFileNode.element->InsertEndChild(xmlPart); } } }
void Puppet::SavePart(TiXmlElement *parentElement, Part *part) { printf("saving part [%s]\n", part->GetName().c_str()); TiXmlElement xmlPart("Part"); XMLFileNode xmlFileNode(&xmlPart); if (part) { part->Save(&xmlFileNode); } for (std::list<Part*>::iterator i = part->parts.begin(); i != part->parts.end(); ++i) { Part *iterPart = (*i); if (iterPart) { printf (" calling save on subpart [%s]\n", iterPart->GetName().c_str()); SavePart(&xmlPart, iterPart); } } parentElement->InsertEndChild(xmlPart); }