Torch
Loading...
Searching...
No Matches
ObjInitFactory.h
1
#pragma once
2
3
#include <factories/BaseFactory.h>
4
#include "types/Vec3D.h"
5
6
namespace
SF64 {
7
8
struct
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
17
class
ObjInitData :
public
IParsedData
{
18
public
:
19
std::vector<ObjectInit> mObjInit;
20
21
explicit
ObjInitData(std::vector<ObjectInit> objInit) : mObjInit(objInit) {}
22
};
23
24
class
ObjInitHeaderExporter
:
public
BaseExporter
{
25
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
26
};
27
28
class
ObjInitBinaryExporter
:
public
BaseExporter
{
29
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
30
};
31
32
class
ObjInitCodeExporter
:
public
BaseExporter
{
33
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
34
};
35
36
class
ObjInitXMLExporter
:
public
BaseExporter
{
37
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
38
};
39
40
class
ObjInitFactory
:
public
BaseFactory
{
41
public
:
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
}
BaseExporter
Definition
BaseFactory.h:88
BaseFactory
Definition
BaseFactory.h:94
IParsedData
Definition
BaseFactory.h:80
SF64::ObjInitBinaryExporter
Definition
ObjInitFactory.h:28
SF64::ObjInitCodeExporter
Definition
ObjInitFactory.h:32
SF64::ObjInitFactory
Definition
ObjInitFactory.h:40
SF64::ObjInitHeaderExporter
Definition
ObjInitFactory.h:24
SF64::ObjInitXMLExporter
Definition
ObjInitFactory.h:36
Vec3s
Definition
Vec3D.h:17
SF64::ObjectInit
Definition
ObjInitFactory.h:8
src
factories
sf64
ObjInitFactory.h
Generated by
1.14.0