diff options
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/Companion.cpp | 17 | ||||
| -rw-r--r-- | src/Companion.h | 8 | ||||
| -rw-r--r-- | src/factories/naudio/v0/SampleFactory.h | 2 | ||||
| -rw-r--r-- | src/factories/sm64/MacroFactory.cpp | 27 | ||||
| -rw-r--r-- | src/factories/sm64/MacroFactory.h | 6 |
6 files changed, 26 insertions, 36 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7aab478..fffcd0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12) project(torch) include(FetchContent) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_C_STANDARD 11) diff --git a/src/Companion.cpp b/src/Companion.cpp index 6f9db6c..e7a18d1 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -130,11 +130,12 @@ static std::string GetTypeNode(YAML::Node& node) { Companion* Companion::Instance; void Companion::Init(const ExportType type) { - size_t assetCount = 0; - Init(type, std::atomic_ref<size_t>(assetCount)); + std::atomic<size_t> assetCount{0}; + + Init(type, assetCount); } -void Companion::Init(const ExportType type, std::atomic_ref<size_t> assetCount) { +void Companion::Init(const ExportType type, std::atomic<size_t>& assetCount) { spdlog::set_level(spdlog::level::debug); spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%l] %v"); @@ -361,7 +362,7 @@ void Companion::ParseModdingConfig() { } -void Companion::ParseCurrentFileConfig(YAML::Node node, std::atomic_ref<size_t> assetCount) { +void Companion::ParseCurrentFileConfig(YAML::Node node, std::atomic<size_t>& assetCount) { if (node["external_files"]) { auto externalFiles = node["external_files"]; if (externalFiles.IsSequence() && externalFiles.size()) { @@ -617,11 +618,11 @@ void Companion::ProcessTables(YAML::Node& rom) { } void Companion::ProcessFile(YAML::Node root) { - size_t assetCount = 0; - ProcessFile(root, std::atomic_ref<size_t>(assetCount)); + std::atomic<size_t> assetCount {0}; + ProcessFile(root, assetCount); } -void Companion::ProcessFile(YAML::Node root, std::atomic_ref<size_t> assetCount) { +void Companion::ProcessFile(YAML::Node root, std::atomic<size_t>& assetCount) { assetCount++; // Set compressed file offsets and compression type if (auto segments = root[":config"]["segments"]) { @@ -1031,7 +1032,7 @@ void Companion::ProcessFile(YAML::Node root, std::atomic_ref<size_t> assetCount) } } -void Companion::Process(std::atomic_ref<size_t> assetCount) { +void Companion::Process(std::atomic<size_t>& assetCount) { auto configPath = this->gSourceDirectory / "config.yml"; if(!fs::exists(configPath)) { diff --git a/src/Companion.h b/src/Companion.h index 8161ddb..f35dc45 100644 --- a/src/Companion.h +++ b/src/Companion.h @@ -140,11 +140,11 @@ public: Companion(rom, otr, debug, false, srcDir, destPath) {} void Init(ExportType type); - void Init(ExportType type, std::atomic_ref<size_t> assetCount); + void Init(ExportType type, std::atomic<size_t>& assetCount); bool NodeHasChanges(const std::string& string); - void Process(std::atomic_ref<size_t> assetCount); + void Process(std::atomic<size_t>& assetCount); bool IsOTRMode() const { return (this->gConfig.otrMode != ArchiveType::None); } bool IsDebug() const { return this->gConfig.debug; } @@ -244,11 +244,11 @@ private: std::unordered_map<std::string, std::unordered_map<uint32_t, std::tuple<std::string, YAML::Node>>> gAddrMap; void ProcessFile(YAML::Node root); - void ProcessFile(YAML::Node root, std::atomic_ref<size_t> assetCount); + void ProcessFile(YAML::Node root, std::atomic<size_t>& assetCount); void ParseEnums(std::string& file); void ParseHash(); void ParseModdingConfig(); - void ParseCurrentFileConfig(YAML::Node node, std::atomic_ref<size_t> assetCount); + void ParseCurrentFileConfig(YAML::Node node, std::atomic<size_t>& assetCount); void RegisterFactory(const std::string& type, const std::shared_ptr<BaseFactory>& factory); void ExtractNode(YAML::Node& node, std::string& name, BinaryWrapper* binary); void ProcessTables(YAML::Node& rom); diff --git a/src/factories/naudio/v0/SampleFactory.h b/src/factories/naudio/v0/SampleFactory.h index ed292fe..50161b6 100644 --- a/src/factories/naudio/v0/SampleFactory.h +++ b/src/factories/naudio/v0/SampleFactory.h @@ -26,7 +26,7 @@ public: std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override { return { - REGISTER(Modding, SampleModdingExporter) + // REGISTER(Modding, SampleModdingExporter) REGISTER(Binary, SampleBinaryExporter) }; } diff --git a/src/factories/sm64/MacroFactory.cpp b/src/factories/sm64/MacroFactory.cpp index 950d276..f5073d4 100644 --- a/src/factories/sm64/MacroFactory.cpp +++ b/src/factories/sm64/MacroFactory.cpp @@ -22,28 +22,17 @@ ExportResult SM64::MacroCodeExporter::Export(std::ostream &write, std::shared_pt const auto symbol = GetSafeNode(node, "symbol", entryName); const auto offset = GetSafeNode<uint32_t>(node, "offset"); - auto macro = std::static_pointer_cast<SM64::MacroData>(raw); + auto macro = std::static_pointer_cast<SM64::MacroDataAlt>(raw); write << "const MacroObject " << symbol << "[] = {\n"; - for (auto &object : macro->mMacroData) { - write << fourSpaceTab; - - if (object.behParam == 0) { - write << "MACRO_OBJECT("; - } else { - write << "MACRO_OBJECT_WITH_BEH_PARAM("; - } - - write << object.preset << ", "; - write << (object.yaw / 1.41) << ", "; - write << object.posX << ", "; - write << object.posY << ", "; - write << object.posZ; - - if (object.behParam != 0) { - write << ", " << object.behParam; - } + for (size_t i = 0; i < macro->mMacroData.size() - 1; i += 5) { + write << fourSpaceTab << (macro->mMacroData[i + 5] == 0 ? "MACRO_OBJECT(" : "MACRO_OBJECT_WITH_BEH_PARAM("); + write << "/* preset */ " << static_cast<MacroPresets>(macro->mMacroData[i]) << ", "; + write << "/* yaw */ " << macro->mMacroData[i + 1] << ", "; + write << "/* posX */ " << macro->mMacroData[i + 2] << ", "; + write << "/* posY */ " << macro->mMacroData[i + 3] << ", "; + write << "/* posZ */ " << macro->mMacroData[i + 4]; write << "),\n"; } diff --git a/src/factories/sm64/MacroFactory.h b/src/factories/sm64/MacroFactory.h index cab9a80..c158f10 100644 --- a/src/factories/sm64/MacroFactory.h +++ b/src/factories/sm64/MacroFactory.h @@ -20,14 +20,14 @@ class MacroData : public IParsedData { public: std::vector<MacroObject> mMacroData; - MacroData(std::vector<MacroObject> macroData) : mMacroData(std::move(macroData)) {} + MacroData(std::vector<MacroObject> macroData) : mMacroData(macroData) {} }; class MacroDataAlt : public IParsedData { public: std::vector<int16_t> mMacroData; - MacroDataAlt(std::vector<int16_t> macroData) : mMacroData(std::move(macroData)) {} + MacroDataAlt(std::vector<int16_t> macroData) : mMacroData(macroData) {} }; class MacroHeaderExporter : public BaseExporter { @@ -47,7 +47,7 @@ public: std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override { return { -// REGISTER(Code, MacroCodeExporter) + REGISTER(Code, MacroCodeExporter) REGISTER(Header, MacroHeaderExporter) REGISTER(Binary, MacroBinaryExporter) }; |
