Ejemplo n.º 1
0
void XmlMapHandler::WriteLayer(wxXmlNode* root, const Map& map, const Layer& layer)
{
    VerboseLog("Writing a Layer");
    wxXmlNode* node = new wxXmlNode(root, wxXML_ELEMENT_NODE, "Layer");

    wxString layerdata = "\n";
    for (unsigned int i = 0; i < layer.GetHeight(); i++)
    {
        layerdata << "\t\t\t";
        for (unsigned int j = 0; j < layer.GetWidth(); j++)
            layerdata << layer.At(j, i) << ", ";
        layerdata << "\n";
    }

    wxXmlNode* data = new wxXmlNode(node, wxXML_ELEMENT_NODE, "Data");
    new wxXmlNode(data, wxXML_TEXT_NODE, "", layerdata);

    wxXmlNode* dimensions = new wxXmlNode(node, wxXML_ELEMENT_NODE, "Dimensions");
    new wxXmlNode(dimensions, wxXML_TEXT_NODE, "", wxString::Format("%i, %i", layer.GetWidth(), layer.GetHeight()));

    WriteAttributes(node, layer);

    wxXmlNode* name = new wxXmlNode(node, wxXML_ELEMENT_NODE, "Name");
    new wxXmlNode(name, wxXML_TEXT_NODE, "", layer.GetName());

    VerboseLog("Done Writing a Layer");
}