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(); }