Torch
Loading...
Searching...
No Matches
MacroFactory.h
1#pragma once
2
3#include "factories/BaseFactory.h"
4#include "types/Vec3D.h"
5#include "macro/MacroPresets.h"
6
7namespace SM64 {
8
9struct MacroObject {
10 MacroPresets preset;
11 int16_t yaw;
12 int16_t posX;
13 int16_t posY;
14 int16_t posZ;
15 int16_t behParam;
16 MacroObject(MacroPresets preset, int16_t yaw, int16_t posX, int16_t posY, int16_t posZ, int16_t behParam) : preset(preset), yaw(yaw), posX(posX), posY(posY), posZ(posZ), behParam(behParam) {}
17};
18
19class MacroData : public IParsedData {
20public:
21 std::vector<MacroObject> mMacroData;
22
23 MacroData(std::vector<MacroObject> macroData) : mMacroData(std::move(macroData)) {}
24};
25
26class MacroDataAlt : public IParsedData {
27public:
28 std::vector<int16_t> mMacroData;
29
30 MacroDataAlt(std::vector<int16_t> macroData) : mMacroData(std::move(macroData)) {}
31};
32
34 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
35};
36
38 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
39};
40
42 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
43};
44
45class MacroFactory : public BaseFactory {
46public:
47 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
48 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
49 return {
50// REGISTER(Code, MacroCodeExporter)
51 REGISTER(Header, MacroHeaderExporter)
52 REGISTER(Binary, MacroBinaryExporter)
53 };
54 }
55};
56}
Definition BaseFactory.h:88
Definition BaseFactory.h:94
Definition BaseFactory.h:80
Definition MacroFactory.h:37
Definition MacroFactory.h:41
Definition MacroFactory.h:45
Definition MacroFactory.h:33