From c3feca1170e41e435ecd7c5170ed981b1aa2755d Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Sun, 2 Feb 2025 10:11:23 -0600 Subject: [PATCH] Added modding exporter --- src/factories/naudio/v1/SequenceFactory.cpp | 9 +++++++++ src/factories/naudio/v1/SequenceFactory.h | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/src/factories/naudio/v1/SequenceFactory.cpp b/src/factories/naudio/v1/SequenceFactory.cpp index ad89131..d5c91a8 100644 --- a/src/factories/naudio/v1/SequenceFactory.cpp +++ b/src/factories/naudio/v1/SequenceFactory.cpp @@ -44,6 +44,15 @@ ExportResult NSequenceCodeExporter::Export(std::ostream &write, std::shared_ptr< return offset + data.size(); } +ExportResult NSequenceModdingExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto writer = LUS::BinaryWriter(); + auto data = std::static_pointer_cast(raw)->mBuffer; + *replacement += ".m64"; + writer.Write((char*) data.data(), data.size()); + writer.Finish(write); + return std::nullopt; +} + ExportResult NSequenceBinaryExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { auto writer = LUS::BinaryWriter(); auto data = std::static_pointer_cast(raw)->mBuffer; diff --git a/src/factories/naudio/v1/SequenceFactory.h b/src/factories/naudio/v1/SequenceFactory.h index bc4e89d..2ad6a70 100644 --- a/src/factories/naudio/v1/SequenceFactory.h +++ b/src/factories/naudio/v1/SequenceFactory.h @@ -15,14 +15,21 @@ class NSequenceCodeExporter : public BaseExporter { ExportResult Export(std::ostream& write, std::shared_ptr data, std::string& entryName, YAML::Node& node, std::string* replacement) override; }; +class NSequenceModdingExporter : public BaseExporter { + ExportResult Export(std::ostream& write, std::shared_ptr data, std::string& entryName, YAML::Node& node, std::string* replacement) override; +}; + class NSequenceFactory : public BaseFactory { public: std::optional> parse(std::vector& buffer, YAML::Node& data) override; inline std::unordered_map> GetExporters() override { return { + REGISTER(Modding, NSequenceModdingExporter) REGISTER(Header, NSequenceHeaderExporter) REGISTER(Binary, NSequenceBinaryExporter) REGISTER(Code, NSequenceCodeExporter) }; } + + bool SupportModdedAssets() override { return true; } };