void PanelEscenario::guardarCaracteristicasEscenario() const { // Abro el archivo asociado al nivel XMLDocument doc; doc.LoadFile(this->rutaNivel); // Obtengo el nodo raiz, que en teoria es el llamado Nivel. XMLNode* nivelNode = doc.RootElement(); // Limpio el nodo de nivel this->limpiarNodoNivel(nivelNode); // Creo un nuevo nodo del escenario y cargo los atributos básicos. XMLNode* escenarioNode = new XMLNode("Escenario"); // Convierto los valores flotantes a string. std::string sAncho = cfd::floatToString(anchoFlotante); std::string sAlto = cfd::floatToString(altoFlotante); // Seteo los atributos del nodo del escenario. escenarioNode->SetAttribute("ancho", sAncho); escenarioNode->SetAttribute("alto", sAlto); // Creo el nodo de la imagen del fondo. XMLNode* imageFondoNode = new XMLNode("ImagenFondo"); XMLText* imageFondoText = new XMLText(rutaFondo); imageFondoNode->LinkEndChild(imageFondoText); // Creo el nodo de la imagen del suelo. XMLNode* imageSueloNode = new XMLNode("ImagenSuelo"); // FIXME(eze) Esperar a que Tomás agrege el suelo para serializarlo en el XML. XMLText* imageSueloText = new XMLText(rutaSuelo); imageSueloNode->LinkEndChild(imageSueloText); // Creo el nodo con la cantidad de jugadores. XMLNode* jugadoresNode = new XMLNode("Jugadores"); // Convierto el numero de jugadores a string. std::string sJugadores = cfd::intToString(cantidadJugadores); XMLText* jugadoresText = new XMLText(sJugadores); jugadoresNode->LinkEndChild(jugadoresText); // Linkeo los atributos del Escenario escenarioNode->LinkEndChild(imageFondoNode); escenarioNode->LinkEndChild(imageSueloNode); escenarioNode->LinkEndChild(jugadoresNode); // Linkeo el nodo de escenario en el nodo del nivel. nivelNode->LinkEndChild(escenarioNode); // Guardo el documento. doc.SaveFile(); }
void PanelMundo::actualizarArchivoMundos(const std::string rutaMundo) const { // Abro el archivo de los mundos XMLDocument doc; bool seAbrio = doc.LoadFile(pathFileMundos); // Si el archivo no existe, salgo if (!seAbrio) return; // Obtengo el nodo raiz XMLNode* root = doc.RootElement(); // Si es nulo, salgo sin realizar nada if (root == 0) return; // Creo el nodo asociado al mundo XMLNode* nodoMundo = new XMLNode("Mundo"); // Agrego el atributo de la cantidad de jugadores nodoMundo->SetAttribute("cantJugadores", creador->getCantidadJugadores()); // Creo el nodo asociado al nombre del mundo XMLNode* nodoNombre = new XMLNode("Nombre"); XMLText* textNombre = new XMLText(creador->getNombreElegido()); nodoNombre->LinkEndChild(textNombre); // Creo el nodo asociado a al ruta del archivo que almacena el mundo XMLNode* nodoRuta = new XMLNode("Ruta"); XMLText* textRuta = new XMLText(rutaMundo); nodoRuta->LinkEndChild(textRuta); // Linkeo los nodos de nombre y ruta al del mundo nodoMundo->LinkEndChild(nodoNombre); nodoMundo->LinkEndChild(nodoRuta); // Linkeo el nodo del nuevo mundo al nodo de mundos root->LinkEndChild(nodoMundo); // Guardo el archivo doc.SaveFile(); }