Example #1
0
	void Puppet::LoadParts(TiXmlElement *element, Part *intoPart)
	{
		TiXmlElement *xmlPart = element->FirstChildElement("Part");
		while (xmlPart)
		{
			XMLFileNode xmlFileNode(xmlPart);

			Part *part = new Part();
			part->SetPuppet(this);
			part->Load(&xmlFileNode);
			
			LoadParts(xmlPart, part);

			printf("loaded part [%s]\n", part->GetName().c_str());

			if (intoPart)
			{
				intoPart->parts.push_back(part);
				part->SetParent(intoPart);

				printf("   into part [%s]\n", intoPart->GetName().c_str());
			}
			else
			{
				part->SetParent(entity);
			}

			parts.push_back(part);

			Game::GetScene()->Add(part);
			
			//intoEntity->Add(part);

			xmlPart = xmlPart->NextSiblingElement("Part");
		}
	}
Example #2
0
	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);
	}