summaryrefslogtreecommitdiff
path: root/src/factories/SequenceFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/factories/SequenceFactory.cpp')
-rw-r--r--src/factories/SequenceFactory.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/factories/SequenceFactory.cpp b/src/factories/SequenceFactory.cpp
new file mode 100644
index 0000000..5e3151b
--- /dev/null
+++ b/src/factories/SequenceFactory.cpp
@@ -0,0 +1,21 @@
+#include "SequenceFactory.h"
+
+#include "audio/AudioManager.h"
+#include <vector>
+
+bool SequenceFactory::process(LUS::BinaryWriter* writer, YAML::Node& data, std::vector<uint8_t>& buffer) {
+ WRITE_HEADER(LUS::ResourceType::Sequence, 0);
+
+ auto size = data["size"].as<size_t>();
+ auto offset = data["offset"].as<size_t>();
+
+ auto bank = data["banks"].as<std::vector<uint8_t>>();
+
+ WRITE_U32(bank.size());
+ WRITE_ARRAY(bank.data(), bank.size());
+
+ WRITE_U32(size);
+ WRITE_ARRAY(buffer.data() + offset, size);
+
+ return true;
+} \ No newline at end of file