summaryrefslogtreecommitdiff
path: root/src/factories/VtxFactory.cpp
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-01-30 23:03:23 -0600
committerLywx <kiritodev01@gmail.com>2024-01-31 12:05:40 -0600
commit4668cf08fb240da4abaafc073ba08d9d13ac0fa5 (patch)
tree8ef2781da88920eeb1267225e73406e25a3c17b6 /src/factories/VtxFactory.cpp
parent242f8acf212d143443dc2ce846507bdb82571902 (diff)
Refactored code and added per file config
Diffstat (limited to 'src/factories/VtxFactory.cpp')
-rw-r--r--src/factories/VtxFactory.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/factories/VtxFactory.cpp b/src/factories/VtxFactory.cpp
index e5214c5..e3ec716 100644
--- a/src/factories/VtxFactory.cpp
+++ b/src/factories/VtxFactory.cpp
@@ -1,13 +1,13 @@
#include "VtxFactory.h"
#include "Companion.h"
-#include "utils/MIODecoder.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 VtxHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement) {
- const auto symbol = node["symbol"] ? node["symbol"].as<std::string>() : entryName;
+ const auto symbol = GetSafeNode(node, "symbol", entryName);
if(Companion::Instance->IsOTRMode()){
write << "static const char " << symbol << "[] = \"__OTR__" << (*replacement) << "\";\n\n";
@@ -19,8 +19,8 @@ void VtxHeaderExporter::Export(std::ostream &write, std::shared_ptr<IParsedData>
void VtxCodeExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) {
auto vtx = std::static_pointer_cast<VtxData>(raw)->mVtxs;
- const auto symbol = node["symbol"].as<std::string>();
- const auto offset = node["offset"].as<uint32_t>();
+ 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";
@@ -83,12 +83,10 @@ void VtxBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData>
}
std::optional<std::shared_ptr<IParsedData>> VtxFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) {
- auto mio0 = node["mio0"].as<size_t>();
- auto offset = node["offset"].as<uint32_t>();
- auto count = node["count"].as<size_t>();
+ auto count = GetSafeNode<size_t>(node, "count");
- auto decoded = MIO0Decoder::Decode(buffer, offset);
- LUS::BinaryReader reader(decoded.data() + mio0, count * sizeof(VtxRaw) );
+ auto [_, segment] = Decompressor::AutoDecode(node, buffer);
+ LUS::BinaryReader reader(segment.data, count * sizeof(VtxRaw));
reader.SetEndianness(LUS::Endianness::Big);
std::vector<VtxRaw> vertices;