summaryrefslogtreecommitdiff
path: root/src/factories/sm64/TextFactory.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/sm64/TextFactory.cpp
parent242f8acf212d143443dc2ce846507bdb82571902 (diff)
Refactored code and added per file config
Diffstat (limited to 'src/factories/sm64/TextFactory.cpp')
-rw-r--r--src/factories/sm64/TextFactory.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/factories/sm64/TextFactory.cpp b/src/factories/sm64/TextFactory.cpp
index e32d3ce..303cdac 100644
--- a/src/factories/sm64/TextFactory.cpp
+++ b/src/factories/sm64/TextFactory.cpp
@@ -1,5 +1,5 @@
#include "TextFactory.h"
-#include "utils/MIODecoder.h"
+#include "utils/Decompressor.h"
void SM64::TextBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) {
auto writer = LUS::BinaryWriter();
@@ -11,16 +11,14 @@ void SM64::TextBinaryExporter::Export(std::ostream &write, std::shared_ptr<IPars
writer.Finish(write);
}
-std::optional<std::shared_ptr<IParsedData>> SM64::TextFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& data) {
- auto offset = data["offset"].as<size_t>();
- auto mio0 = data["mio0"].as<size_t>();
+std::optional<std::shared_ptr<IParsedData>> SM64::TextFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) {
std::vector<uint8_t> text;
- auto decoded = MIO0Decoder::Decode(buffer, offset);
- auto bytes = (uint8_t*) decoded.data();
+ auto [_, segment] = Decompressor::AutoDecode(node, buffer);
+ size_t idx = 0;
- while(bytes[mio0] != 0xFF){
- auto c = bytes[mio0++];
+ while(segment.data[idx] != 0xFF){
+ auto c = segment.data[idx++];
text.push_back(c);
}
text.push_back(0xFF);