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 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
44 return {
45 REGISTER(Header, ObjInitHeaderExporter)
46 REGISTER(Binary, ObjInitBinaryExporter)
47 REGISTER(Code, ObjInitCodeExporter)
48 REGISTER(XML, ObjInitXMLExporter)
49 };
50 }
51 bool SupportModdedAssets() override { return true; }
52};
53}
Definition BaseFactory.h:88
Definition BaseFactory.h:94
Definition BaseFactory.h:80
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