From b17e96df7de348fb42e4e5159e5398733696237e Mon Sep 17 00:00:00 2001 From: Misa Date: Wed, 3 Jun 2020 10:00:53 -0700 Subject: [PATCH] Add FILESYSTEM_loadTiXml2Document() Same as FILESYSTEM_saveTiXml2Document(), except for loading. Read this as "load TinyXML2 Document", not "load TinyXML to Document". --- desktop_version/src/FileSystemUtils.cpp | 14 ++++++++++++++ desktop_version/src/FileSystemUtils.h | 1 + 2 files changed, 15 insertions(+) diff --git a/desktop_version/src/FileSystemUtils.cpp b/desktop_version/src/FileSystemUtils.cpp index 4e6d59b0..98b0d619 100644 --- a/desktop_version/src/FileSystemUtils.cpp +++ b/desktop_version/src/FileSystemUtils.cpp @@ -297,6 +297,20 @@ bool FILESYSTEM_saveTiXml2Document(const char *name, tinyxml2::XMLDocument& doc) return true; } +bool FILESYSTEM_loadTiXml2Document(const char *name, tinyxml2::XMLDocument& doc) +{ + /* XMLDocument.LoadFile doesn't account for Unicode paths, PHYSFS does */ + unsigned char *mem = NULL; + FILESYSTEM_loadFileToMemory(name, &mem, NULL, true); + if (mem == NULL) + { + return false; + } + doc.Parse((const char*) mem); + FILESYSTEM_freeMemory(&mem); + return true; +} + std::vector FILESYSTEM_getLevelDirFileNames() { std::vector list; diff --git a/desktop_version/src/FileSystemUtils.h b/desktop_version/src/FileSystemUtils.h index 72d1497f..286baf37 100644 --- a/desktop_version/src/FileSystemUtils.h +++ b/desktop_version/src/FileSystemUtils.h @@ -23,6 +23,7 @@ void FILESYSTEM_freeMemory(unsigned char **mem); bool FILESYSTEM_saveTiXmlDocument(const char *name, TiXmlDocument *doc); bool FILESYSTEM_loadTiXmlDocument(const char *name, TiXmlDocument *doc); bool FILESYSTEM_saveTiXml2Document(const char *name, tinyxml2::XMLDocument& doc); +bool FILESYSTEM_loadTiXml2Document(const char *name, tinyxml2::XMLDocument& doc); std::vector FILESYSTEM_getLevelDirFileNames();