void CXMLExporter::WriteLayers() { if (m_pOptions->GetExportLayers()) { HResult hr; CComPtr<ISkpLayers> pLayers; hr = m_pDocument->get_Layers(&pLayers); long count; hr = pLayers->get_Count(&count); if (count>0) { IncreaseIndent(); Write("<Layers>\n", count); IncreaseIndent(); for(long i=0; i<count; i++) { CComPtr<ISkpLayer> pLayer; hr = pLayers->get_Item(i, &pLayer); WriteLayer(pLayer); } DecreaseIndent(); Write("</Layers>\n"); DecreaseIndent(); } } }
void XmlMapHandler::Save(std::ostream& file, const Map& map) { wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, "Map"); const Tileset& tileset = map.GetTileset(); const std::vector<AnimatedTile>& animated_tiles = tileset.GetAnimatedTiles(); if (map.HasCollisionLayer()) WriteCollision(root, map); for (const auto& tile : animated_tiles) WriteAnimation(root, map, tile); for (const auto& background : map.GetBackgrounds()) WriteBackground(root, map, background); for (const auto& layer : map.GetLayers()) WriteLayer(root, map, layer); WriteProperties(root, map); wxXmlDocument* doc = new wxXmlDocument(); doc->SetRoot(root); wxOutputStream* fos = new wxFOutputStream(file); if (!doc->Save(*fos)) throw "Failed to save XML file"; delete fos; }
bool CLwoWriter::Write() { OBJ_ASSERT(m_pLwoFile); if(!m_pLwoFile) return false; std::string fileName(m_fileName.string()); // Extract native file path string m_ofs.open(fileName.c_str(), ios::out | ios::binary | std::ios::trunc); MSG_INFO("Writing LWO file : '" << fileName << "'."); if( !m_ofs.is_open() ) { MSG_ERROR("Couldn't write to .LWO file '" << fileName << "'"); return false; } // TODO iterate through layers here: m_curLayer = m_pLwoFile->GetLayerVector()[0]; // first layer // Build the chunk lengths BuildChunkLengths(); // Write the LWO file header WriteHeader(); { // Write TAGS strings WriteTagStrings(); // Write LAYR : Support for only one layer WriteLayer(); // Write PNTS WritePoints(); // Write VMAP | TXUV WriteVertexMapping(); // Write POLS | FACE WritePolygons(); // Write PTAG WritePolygonTagMapping(); // Write VMAD | TXUV WriteDiscVertexMapping(); // Write CLIP WriteImageDefinitions(); // Write SURF WriteSurfaces(); } MSG_DEBUG("Done."); // Close file m_ofs.close(); return true; }