summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/Companion.cpp17
-rw-r--r--src/Companion.h8
-rw-r--r--src/factories/naudio/v0/SampleFactory.h2
-rw-r--r--src/factories/sm64/MacroFactory.cpp27
-rw-r--r--src/factories/sm64/MacroFactory.h6
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)
};