diff options
| author | = <=> | 2024-03-06 11:46:19 -0700 |
|---|---|---|
| committer | Lywx <kiritodev01@gmail.com> | 2024-03-09 07:39:51 -0600 |
| commit | a2d735c5281862fdc6ece2288694ca2af743c7af (patch) | |
| tree | 0b47f82d606d9f48aa74c915ee440ed4565f2a03 /src | |
| parent | f06ed7388df76f09d8fbda765acea5d2923553d4 (diff) | |
Add mk64 factories
Diffstat (limited to 'src')
| -rw-r--r-- | src/Companion.cpp | 10 | ||||
| -rw-r--r-- | src/factories/ResourceType.h | 36 | ||||
| -rw-r--r-- | src/factories/VtxFactory.cpp | 2 | ||||
| -rw-r--r-- | src/factories/mk64/CourseVtx.cpp | 108 | ||||
| -rw-r--r-- | src/factories/mk64/CourseVtx.h | 48 | ||||
| -rw-r--r-- | src/factories/mk64/SpawnData.cpp | 90 | ||||
| -rw-r--r-- | src/factories/mk64/SpawnData.h | 48 | ||||
| -rw-r--r-- | src/factories/mk64/TrackSections.cpp | 91 | ||||
| -rw-r--r-- | src/factories/mk64/TrackSections.h | 49 | ||||
| -rw-r--r-- | src/factories/mk64/Waypoints.cpp (renamed from src/factories/mk64/WaypointFactory.cpp) | 4 | ||||
| -rw-r--r-- | src/factories/mk64/Waypoints.h (renamed from src/factories/mk64/WaypointFactory.h) | 2 |
11 files changed, 466 insertions, 22 deletions
diff --git a/src/Companion.cpp b/src/Companion.cpp index 66dfbda..7cf9b50 100644 --- a/src/Companion.cpp +++ b/src/Companion.cpp @@ -16,7 +16,10 @@ #include "factories/DisplayListFactory.h" #include "factories/BlobFactory.h" #include "factories/LightsFactory.h" -#include "factories/mk64/WaypointFactory.h" +#include "factories/mk64/CourseVtx.h" +#include "factories/mk64/Waypoints.h" +#include "factories/mk64/TrackSections.h" +#include "factories/mk64/SpawnData.h" #include "spdlog/spdlog.h" #include "hj/sha1.h" @@ -54,7 +57,10 @@ void Companion::Init(const ExportType type) { this->RegisterFactory("SM64:GEO_LAYOUT", std::make_shared<SM64::GeoLayoutFactory>()); // MK64 specific - this->RegisterFactory("MK64:TRACKWAYPOINTS", std::make_shared<MK64::WaypointFactory>()); + this->RegisterFactory("MK64:COURSEVTX", std::make_shared<MK64::CourseVtxFactory>()); + this->RegisterFactory("MK64:TRACKWAYPOINTS", std::make_shared<MK64::WaypointsFactory>()); + this->RegisterFactory("MK64:TRACKSECTIONS", std::make_shared<MK64::TrackSectionsFactory>()); + this->RegisterFactory("MK64:SPAWNDATA", std::make_shared<MK64::SpawnDataFactory>()); this->Process(); } diff --git a/src/factories/ResourceType.h b/src/factories/ResourceType.h index 5fa6d81..e8abd39 100644 --- a/src/factories/ResourceType.h +++ b/src/factories/ResourceType.h @@ -7,25 +7,29 @@ enum class ResourceType { None = 0x00000000, // Common - Archive = 0x4F415243, // OARC (UNUSED) - DisplayList = 0x4F444C54, // ODLT - Vertex = 0x4F565458, // OVTX - Matrix = 0x4F4D5458, // OMTX - Array = 0x4F415252, // OARR - Blob = 0x4F424C42, // OBLB - Texture = 0x4F544558, // OTEX - Bank = 0x42414E4B, // BANK - Sample = 0x41554643, // AIFC - Sequence = 0x53455143, // SEQC - Lights = 0x46669697, // LGTS + Archive = 0x4F415243, // OARC (UNUSED) + DisplayList = 0x4F444C54, // ODLT + Vertex = 0x4F565458, // OVTX + Matrix = 0x4F4D5458, // OMTX + Array = 0x4F415252, // OARR + Blob = 0x4F424C42, // OBLB + Texture = 0x4F544558, // OTEX + Bank = 0x42414E4B, // BANK + Sample = 0x41554643, // AIFC + Sequence = 0x53455143, // SEQC + Lights = 0x46669697, // LGTS // SM64 - Anim = 0x414E494D, // ANIM - SDialog = 0x53444C47, // SDLG - Dictionary = 0x44494354, // DICT - GeoLayout = 0x47454F20, // GEO + Anim = 0x414E494D, // ANIM + SDialog = 0x53444C47, // SDLG + Dictionary = 0x44494354, // DICT + GeoLayout = 0x47454F20, // GEO // MK64 - Waypoints = 0x46665666, // TrackWaypoints + CourseVertex = 0x43565458, // CVTX + TrackSection = 0x5343544E, // SCTN + Waypoints = 0x57505453, // WPTS + Metadata = 0x4D444154, // MDAT + SpawnData = 0x53444154, // SDAT }; } // namespace LUS diff --git a/src/factories/VtxFactory.cpp b/src/factories/VtxFactory.cpp index d506a39..b8d4d79 100644 --- a/src/factories/VtxFactory.cpp +++ b/src/factories/VtxFactory.cpp @@ -59,7 +59,7 @@ void VtxCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> r } if (Companion::Instance->IsDebug()) { - write << fourSpaceTab << "// 0x" << std::hex << std::uppercase << (offset + (16 * vtx.size())) << "\n"; + write << fourSpaceTab << "// 0x" << std::hex << std::uppercase << (offset + (sizeof(VtxRaw) * vtx.size())) << "\n"; } write << "}; // size = 0x" << std::hex << std::uppercase << (sizeof(VtxRaw) * vtx.size()) << "\n\n"; diff --git a/src/factories/mk64/CourseVtx.cpp b/src/factories/mk64/CourseVtx.cpp new file mode 100644 index 0000000..5570616 --- /dev/null +++ b/src/factories/mk64/CourseVtx.cpp @@ -0,0 +1,108 @@ +#include "CourseVtx.h" + +#include "Companion.h" +#include "utils/Decompressor.h" + +#define NUM(x) std::dec << std::setfill(' ') << std::setw(6) << x +#define COL(c) "0x" << std::hex << std::setw(2) << std::setfill('0') << c + +void MK64::CourseVtxHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement) { + const auto symbol = GetSafeNode(node, "symbol", entryName); + + if(Companion::Instance->IsOTRMode()){ + write << "static const char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n"; + return; + } + + write << "extern CourseVtx " << symbol << "[];\n"; +} + +void MK64::CourseVtxCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto vtx = std::static_pointer_cast<CourseVtxData>(raw)->mVtxs; + const auto symbol = GetSafeNode(node, "symbol", entryName); + const auto offset = GetSafeNode<uint32_t>(node, "offset"); + + if (Companion::Instance->IsDebug()) { + write << "// 0x" << std::hex << std::uppercase << offset << "\n"; + } + + write << "CourseVtx " << symbol << "[] = {\n"; + + for (int i = 0; i < vtx.size(); ++i) { + auto v = vtx[i]; + + auto x = v.ob[0]; + auto y = v.ob[1]; + auto z = v.ob[2]; + + auto tc1 = v.tc[0]; + auto tc2 = v.tc[1]; + + auto c1 = (uint16_t) v.cn[0]; + auto c2 = (uint16_t) v.cn[1]; + auto c3 = (uint16_t) v.cn[2]; + auto c4 = (uint16_t) v.cn[3]; + + if(i <= vtx.size() - 1) { + write << fourSpaceTab; + } + + // {{{ x, y, z }, { tc1, tc2 }, { c1, c2, c3, c4 }}} + write << "{{{" << NUM(x) << ", " << NUM(y) << ", " << NUM(z) << "}, {" << NUM(tc1) << ", " << NUM(tc2) << "}, {" << COL(c1) << ", " << COL(c2) << ", " << COL(c3) << ", " << COL(c4) << "}}},\n"; + } + + if (Companion::Instance->IsDebug()) { + write << fourSpaceTab << "// 0x" << std::hex << std::uppercase << (offset + (sizeof(CourseVtx) * vtx.size())) << "\n"; + } + + write << "};\n\n"; +} + +void MK64::CourseVtxBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto vtx = std::static_pointer_cast<CourseVtxData>(raw); + auto writer = LUS::BinaryWriter(); + + WriteHeader(writer, LUS::ResourceType::CourseVertex, 0); + writer.Write((uint32_t) vtx->mVtxs.size()); + for(auto v : vtx->mVtxs) { + writer.Write(v.ob[0]); + writer.Write(v.ob[1]); + writer.Write(v.ob[2]); + writer.Write(v.tc[0]); + writer.Write(v.tc[1]); + writer.Write(v.cn[0]); + writer.Write(v.cn[1]); + writer.Write(v.cn[2]); + writer.Write(v.cn[3]); + } + + writer.Finish(write); +} + +std::optional<std::shared_ptr<IParsedData>> MK64::CourseVtxFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) { + auto count = GetSafeNode<size_t>(node, "count"); + + auto [_, segment] = Decompressor::AutoDecode(node, buffer); + LUS::BinaryReader reader(segment.data, count * sizeof(CourseVtx)); + + reader.SetEndianness(LUS::Endianness::Big); + std::vector<CourseVtx> vertices; + + for(size_t i = 0; i < count; i++) { + auto x = reader.ReadInt16(); + auto y = reader.ReadInt16(); + auto z = reader.ReadInt16(); + auto tc1 = reader.ReadInt16(); + auto tc2 = reader.ReadInt16(); + auto cn1 = reader.ReadUByte(); + auto cn2 = reader.ReadUByte(); + auto cn3 = reader.ReadUByte(); + auto cn4 = reader.ReadUByte(); + + vertices.push_back(CourseVtx({ + {x, y, z}, {tc1, tc2}, {cn1, cn2, cn3, cn4} + })); + } + + return std::make_shared<CourseVtxData>(vertices); +}
\ No newline at end of file diff --git a/src/factories/mk64/CourseVtx.h b/src/factories/mk64/CourseVtx.h new file mode 100644 index 0000000..f08ca77 --- /dev/null +++ b/src/factories/mk64/CourseVtx.h @@ -0,0 +1,48 @@ +#pragma once + +#include "../BaseFactory.h" + +namespace MK64 { + + struct CourseVtx { + int16_t ob[3]; /* x, y, z */ + int16_t tc[2]; /* texture coord */ + uint8_t cn[4]; /* color & alpha */ + }; + + class CourseVtxData : public IParsedData { + public: + std::vector<CourseVtx> mVtxs; + + explicit CourseVtxData(std::vector<CourseVtx> vtxs) : mVtxs(vtxs) {} + }; + + class CourseVtxHeaderExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class CourseVtxBinaryExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class CourseVtxCodeExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class CourseVtxFactory : public BaseFactory { + public: + std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; + std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override { + return std::nullopt; + } + inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override { + return { + REGISTER(Code, CourseVtxCodeExporter) + REGISTER(Header, CourseVtxHeaderExporter) + REGISTER(Binary, CourseVtxBinaryExporter) + }; + } + bool SupportModdedAssets() override { return false; } + }; + +}
\ No newline at end of file diff --git a/src/factories/mk64/SpawnData.cpp b/src/factories/mk64/SpawnData.cpp new file mode 100644 index 0000000..401c8ff --- /dev/null +++ b/src/factories/mk64/SpawnData.cpp @@ -0,0 +1,90 @@ +#include "SpawnData.h" + +#include "Companion.h" +#include "utils/Decompressor.h" + +#define NUM(x) std::dec << std::setfill(' ') << std::setw(6) << x +#define COL(c) "0x" << std::hex << std::setw(2) << std::setfill('0') << c + +void MK64::SpawnDataHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement) { + const auto symbol = GetSafeNode(node, "symbol", entryName); + + if(Companion::Instance->IsOTRMode()){ + write << "static const char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n"; + return; + } + + write << "extern ActorSpawnData " << symbol << "[];\n"; +} + +void MK64::SpawnDataCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto spawns = std::static_pointer_cast<SpawnDataData>(raw)->mSpawns; + const auto symbol = GetSafeNode(node, "symbol", entryName); + const auto offset = GetSafeNode<uint32_t>(node, "offset"); + + if (Companion::Instance->IsDebug()) { + write << "// 0x" << std::hex << std::uppercase << offset << "\n"; + } + + write << "ActorSpawnData " << symbol << "[] = {\n"; + + for (int i = 0; i < spawns.size(); i++) { + auto x = spawns[i].x; + auto y = spawns[i].y; + auto z = spawns[i].z; + + auto id = spawns[i].id; + + if(i <= spawns.size() - 1) { + write << fourSpaceTab; + } + + // { x, y, z, id }, + write << "{" << NUM(x) << ", " << NUM(y) << ", " << NUM(z) << ", " << NUM(id) << " },\n"; + } + + if (Companion::Instance->IsDebug()) { + write << fourSpaceTab << "// 0x" << std::hex << std::uppercase << (offset + (sizeof(MK64::ActorSpawnData) * spawns.size())) << "\n"; + } + + write << "};\n\n"; +} + +void MK64::SpawnDataBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto spawns = std::static_pointer_cast<SpawnDataData>(raw)->mSpawns; + auto writer = LUS::BinaryWriter(); + + WriteHeader(writer, LUS::ResourceType::SpawnData, 0); + writer.Write((uint32_t) spawns.size()); + for(auto s : spawns) { + writer.Write(s.x); + writer.Write(s.y); + writer.Write(s.z); + writer.Write(s.id); + } + + writer.Finish(write); +} + +std::optional<std::shared_ptr<IParsedData>> MK64::SpawnDataFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) { + auto count = GetSafeNode<size_t>(node, "count"); + + auto [_, segment] = Decompressor::AutoDecode(node, buffer); + LUS::BinaryReader reader(segment.data, count * sizeof(MK64::ActorSpawnData)); + + reader.SetEndianness(LUS::Endianness::Big); + std::vector<MK64::ActorSpawnData> spawns; + + for(size_t i = 0; i < count; i++) { + auto x = reader.ReadInt16(); + auto y = reader.ReadInt16(); + auto z = reader.ReadInt16(); + auto id = reader.ReadUInt16(); + + spawns.push_back(MK64::ActorSpawnData({ + x, y, z, id + })); + } + + return std::make_shared<SpawnDataData>(spawns); +}
\ No newline at end of file diff --git a/src/factories/mk64/SpawnData.h b/src/factories/mk64/SpawnData.h new file mode 100644 index 0000000..3e5b9d4 --- /dev/null +++ b/src/factories/mk64/SpawnData.h @@ -0,0 +1,48 @@ +#pragma once + +#include "../BaseFactory.h" + +namespace MK64 { + + struct ActorSpawnData { + int16_t x; + int16_t y; + int16_t z; + uint16_t id; + }; + + class SpawnDataData : public IParsedData { + public: + std::vector<ActorSpawnData> mSpawns; + + explicit SpawnDataData(std::vector<ActorSpawnData> spawns) : mSpawns(spawns) {} + }; + + class SpawnDataHeaderExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class SpawnDataBinaryExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class SpawnDataCodeExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class SpawnDataFactory : public BaseFactory { + public: + std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; + std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override { + return std::nullopt; + } + inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override { + return { + REGISTER(Code, SpawnDataCodeExporter) + REGISTER(Header, SpawnDataHeaderExporter) + REGISTER(Binary, SpawnDataBinaryExporter) + }; + } + bool SupportModdedAssets() override { return false; } + }; +}
\ No newline at end of file diff --git a/src/factories/mk64/TrackSections.cpp b/src/factories/mk64/TrackSections.cpp new file mode 100644 index 0000000..6707950 --- /dev/null +++ b/src/factories/mk64/TrackSections.cpp @@ -0,0 +1,91 @@ +#include "TrackSections.h" + +#include "Companion.h" +#include "utils/Decompressor.h" + +#define NUM(x) std::dec << std::setfill(' ') << std::setw(6) << x +#define COL(c) "0x" << std::hex << std::setw(2) << std::setfill('0') << c + +void MK64::TrackSectionsHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement) { + const auto symbol = GetSafeNode(node, "symbol", entryName); + + if(Companion::Instance->IsOTRMode()){ + write << "static const char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n"; + return; + } + + write << "extern TrackSections " << symbol << "[];\n"; +} + +void MK64::TrackSectionsCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto sections = std::static_pointer_cast<TrackSectionsData>(raw)->mSecs; + const auto symbol = GetSafeNode(node, "symbol", entryName); + const auto offset = GetSafeNode<uint32_t>(node, "offset"); + + if (Companion::Instance->IsDebug()) { + write << "// 0x" << std::hex << std::uppercase << offset << "\n"; + } + + write << "TrackSections " << symbol << "[] = {\n"; + + for (int i = 0; i < sections.size(); i++) { + auto entry = sections[i]; + + auto addr = entry.addr; + auto surf = entry.surfaceType; + auto sect = entry.sectionId; + auto flags = entry.flags; + + if(i <= sections.size() - 1) { + write << fourSpaceTab; + } + + // { addr, surface, section, flags }, + write << "{" << NUM(addr) << ", " << NUM(surf) << ", " << NUM(sect) << ", " << NUM(flags) << "},\n"; + } + + if (Companion::Instance->IsDebug()) { + write << fourSpaceTab << "// 0x" << std::hex << std::uppercase << (offset + (sizeof(TrackSections) * sections.size())) << "\n"; + } + + write << "};\n\n"; +} + +void MK64::TrackSectionsBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { + auto sections = std::static_pointer_cast<TrackSectionsData>(raw); + auto writer = LUS::BinaryWriter(); + + WriteHeader(writer, LUS::ResourceType::TrackSection, 0); + writer.Write((uint32_t) sections->mSecs.size()); + for(auto entry : sections->mSecs) { + writer.Write(entry.addr); + writer.Write(entry.surfaceType); + writer.Write(entry.sectionId); + writer.Write(entry.flags); + } + + writer.Finish(write); +} + +std::optional<std::shared_ptr<IParsedData>> MK64::TrackSectionsFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) { + auto count = GetSafeNode<size_t>(node, "count"); + + auto [_, segment] = Decompressor::AutoDecode(node, buffer); + LUS::BinaryReader reader(segment.data, count * sizeof(MK64::TrackSections)); + + reader.SetEndianness(LUS::Endianness::Big); + std::vector<MK64::TrackSections> sections; + + for(size_t i = 0; i < count; i++) { + auto addr = reader.ReadUInt32(); + auto surf = reader.ReadInt8(); + auto sect = reader.ReadInt8(); + auto flags = reader.ReadUInt16(); + + sections.push_back(MK64::TrackSections({ + addr, surf, sect, flags, + })); + } + + return std::make_shared<TrackSectionsData>(sections); +}
\ No newline at end of file diff --git a/src/factories/mk64/TrackSections.h b/src/factories/mk64/TrackSections.h new file mode 100644 index 0000000..05e1ee4 --- /dev/null +++ b/src/factories/mk64/TrackSections.h @@ -0,0 +1,49 @@ +#pragma once + +#include "../BaseFactory.h" + +namespace MK64 { + + struct TrackSections { + uint32_t addr; + uint8_t surfaceType; + uint8_t sectionId; + uint16_t flags; + }; + + class TrackSectionsData : public IParsedData { + public: + std::vector<TrackSections> mSecs; + + explicit TrackSectionsData(std::vector<TrackSections> sections) : mSecs(sections) {} + }; + + class TrackSectionsHeaderExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class TrackSectionsBinaryExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class TrackSectionsCodeExporter : public BaseExporter { + void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; + }; + + class TrackSectionsFactory : public BaseFactory { + public: + std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; + std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override { + return std::nullopt; + } + inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override { + return { + REGISTER(Code, TrackSectionsCodeExporter) + REGISTER(Header, TrackSectionsHeaderExporter) + REGISTER(Binary, TrackSectionsBinaryExporter) + }; + } + bool SupportModdedAssets() override { return false; } + }; + +}
\ No newline at end of file diff --git a/src/factories/mk64/WaypointFactory.cpp b/src/factories/mk64/Waypoints.cpp index 9fdcd12..9149fb6 100644 --- a/src/factories/mk64/WaypointFactory.cpp +++ b/src/factories/mk64/Waypoints.cpp @@ -1,4 +1,4 @@ -#include "WaypointFactory.h" +#include "Waypoints.h" #include "Companion.h" #include "utils/Decompressor.h" @@ -57,7 +57,7 @@ void MK64::WaypointBinaryExporter::Export(std::ostream &write, std::shared_ptr<I writer.Finish(write); } -std::optional<std::shared_ptr<IParsedData>> MK64::WaypointFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) { +std::optional<std::shared_ptr<IParsedData>> MK64::WaypointsFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) { auto count = GetSafeNode<size_t>(node, "count"); auto [_, segment] = Decompressor::AutoDecode(node, buffer); diff --git a/src/factories/mk64/WaypointFactory.h b/src/factories/mk64/Waypoints.h index a42ed60..ff60b70 100644 --- a/src/factories/mk64/WaypointFactory.h +++ b/src/factories/mk64/Waypoints.h @@ -30,7 +30,7 @@ namespace MK64 { void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override; }; - class WaypointFactory : public BaseFactory { + class WaypointsFactory : public BaseFactory { public: std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override; std::optional<std::shared_ptr<IParsedData>> parse_modding(std::vector<uint8_t>& buffer, YAML::Node& data) override { |
