From 839fcffe17f00671baa6fb411cba74f42a7b5f5d Mon Sep 17 00:00:00 2001 From: Pepe20129 <72659707+Pepe20129@users.noreply.github.com> Date: Sun, 16 Jun 2024 05:47:35 +0200 Subject: [PATCH] Add Alternate Headers XML logger (#4207) --- .../importer/scenecommand/SetAlternateHeadersFactory.cpp | 3 ++- soh/soh/resource/logging/SceneCommandLoggers.cpp | 6 ++++++ soh/soh/resource/type/scenecommand/SetAlternateHeaders.h | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/soh/soh/resource/importer/scenecommand/SetAlternateHeadersFactory.cpp b/soh/soh/resource/importer/scenecommand/SetAlternateHeadersFactory.cpp index c04f717c3..f5ac8914e 100644 --- a/soh/soh/resource/importer/scenecommand/SetAlternateHeadersFactory.cpp +++ b/soh/soh/resource/importer/scenecommand/SetAlternateHeadersFactory.cpp @@ -17,6 +17,7 @@ std::shared_ptr SetAlternateHeadersFactory::ReadResource(std::s auto headerName = reader->ReadString(); if (!headerName.empty()) { setAlternateHeaders->headers.push_back(std::static_pointer_cast(Ship::Context::GetInstance()->GetResourceManager()->LoadResourceProcess(headerName.c_str()))); + setAlternateHeaders->headerFileNames.push_back(headerName); } else { setAlternateHeaders->headers.push_back(nullptr); } @@ -41,7 +42,7 @@ std::shared_ptr SetAlternateHeadersFactoryXML::ReadResource(std std::string childName = child->Name(); if (childName == "AlternateHeader") { for (uint32_t i = 0; i < setAlternateHeaders->numHeaders; i++) { - auto headerName = std::string(child->Attribute("HeaderName")); + auto headerName = std::string(child->Attribute("Path")); if (!headerName.empty()) { setAlternateHeaders->headers.push_back(std::static_pointer_cast(Ship::Context::GetInstance()->GetResourceManager()->LoadResourceProcess(headerName.c_str()))); } else { diff --git a/soh/soh/resource/logging/SceneCommandLoggers.cpp b/soh/soh/resource/logging/SceneCommandLoggers.cpp index 7c55bcaf0..805de9be0 100644 --- a/soh/soh/resource/logging/SceneCommandLoggers.cpp +++ b/soh/soh/resource/logging/SceneCommandLoggers.cpp @@ -73,6 +73,12 @@ void LogAlternateHeadersAsXML(std::shared_ptr resource) { tinyxml2::XMLElement* root = doc.NewElement("SetAlternateHeaders"); doc.InsertFirstChild(root); + for (size_t i = 0; i < setAlternateHeaders->headerFileNames.size(); i++) { + tinyxml2::XMLElement* entry = doc.NewElement("Header"); + entry->SetAttribute("Path", setAlternateHeaders->headerFileNames[i].c_str()); + root->InsertEndChild(entry); + } + tinyxml2::XMLPrinter printer; doc.Accept(&printer); diff --git a/soh/soh/resource/type/scenecommand/SetAlternateHeaders.h b/soh/soh/resource/type/scenecommand/SetAlternateHeaders.h index fdddee3f8..596e0a22e 100644 --- a/soh/soh/resource/type/scenecommand/SetAlternateHeaders.h +++ b/soh/soh/resource/type/scenecommand/SetAlternateHeaders.h @@ -21,6 +21,7 @@ class SetAlternateHeaders : public SceneCommand { size_t GetPointerSize(); uint32_t numHeaders; + std::vector headerFileNames; std::vector> headers; }; }; // namespace LUS