Torch
Loading...
Searching...
No Matches
ObjInitFactory.h
1#pragma once
2
3#include <factories/BaseFactory.h>
4#include "types/Vec3D.h"
5
6namespace SF64 {
7
8struct ObjectInit {
9 /* 0x00 */ float zPos1;
10 /* 0x04 */ int16_t zPos2;
11 /* 0x06 */ int16_t xPos;
12 /* 0x08 */ int16_t yPos;
13 /* 0x0A */ Vec3s rot;
14 /* 0x10 */ int16_t id;
15};
16
17class ObjInitData : public IParsedData {
18public:
19 std::vector<ObjectInit> mObjInit;
20
21 explicit ObjInitData(std::vector<ObjectInit> objInit) : mObjInit(objInit) {}
22};
23
25 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
26};
27
29 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
30};
31
33 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
34};
35
37 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
38};
39
41public:
42 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
43 bool CanPreviewCode() override {
44 return true;
45 }
46 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
47 return {
48 REGISTER(Header, ObjInitHeaderExporter)
49 REGISTER(Binary, ObjInitBinaryExporter)
50 REGISTER(Code, ObjInitCodeExporter)
51 REGISTER(XML, ObjInitXMLExporter)
52 };
53 }
54 bool SupportModdedAssets() override { return true; }
55};
56}
Definition BaseFactory.h:96
Definition BaseFactory.h:102
Definition BaseFactory.h:88
Definition ObjInitFactory.h:28
Definition ObjInitFactory.h:32
Definition ObjInitFactory.h:40
Definition ObjInitFactory.h:24
Definition ObjInitFactory.h:36
Definition Vec3D.h:17
Definition ObjInitFactory.h:8