From 6adc98eea593b7d0ee714eca8c8267ac662cd50f Mon Sep 17 00:00:00 2001 From: sippeangelo Date: Mon, 11 Jan 2016 10:21:22 +0100 Subject: [PATCH] Now writes entities to file instead of stdout... --- include/Engine/Core/EntityFileWriter.h | 2 +- src/Engine/Core/EntityFileWriter.cpp | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/Engine/Core/EntityFileWriter.h b/include/Engine/Core/EntityFileWriter.h index e9c7259c..b75bc145 100644 --- a/include/Engine/Core/EntityFileWriter.h +++ b/include/Engine/Core/EntityFileWriter.h @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include "Util/XercesString.h" #include "EntityFile.h" diff --git a/src/Engine/Core/EntityFileWriter.cpp b/src/Engine/Core/EntityFileWriter.cpp index b192c525..161c3169 100644 --- a/src/Engine/Core/EntityFileWriter.cpp +++ b/src/Engine/Core/EntityFileWriter.cpp @@ -24,10 +24,15 @@ void EntityFileWriter::WriteEntity(World* world, EntityID entity) root->appendChild(childrenElement); appendEntityChildren(childrenElement, world, entity); - XMLFormatTarget* target = new StdOutFormatTarget(); - DOMLSOutput* output = static_cast(m_DOMImplementation)->createLSOutput(); - output->setByteStream(target); - m_DOMLSSerializer->write(doc, output); + try { + LocalFileFormatTarget* target = new LocalFileFormatTarget(X(m_FilePath.string())); + DOMLSOutput* output = static_cast(m_DOMImplementation)->createLSOutput(); + output->setByteStream(target); + m_DOMLSSerializer->write(doc, output); + delete target; + } catch (const std::runtime_error& e) { + LOG_ERROR("Failed to save \"%s\": %s", m_FilePath.c_str(), e.what()); + } doc->release(); }