Torch
Loading...
Searching...
No Matches
EntityGfxFactory.h
1
#pragma once
2
3
#include "factories/BaseFactory.h"
4
#include "types/RawBuffer.h"
5
#include <vector>
6
7
struct
PM64EntityDisplayListInfo
{
8
uint32_t offset;
9
std::vector<uint32_t> commands;
10
};
11
12
class
PM64EntityGfxData :
public
IParsedData
{
13
public
:
14
std::vector<uint8_t> mBuffer;
15
std::vector<PM64EntityDisplayListInfo> mDisplayLists;
16
std::vector<uint32_t> mStandaloneMtx;
// Mtx offsets not reachable by DL walking
17
18
PM64EntityGfxData(std::vector<uint8_t>&& buffer, std::vector<PM64EntityDisplayListInfo>&& displayLists)
19
: mBuffer(std::move(buffer)), mDisplayLists(std::move(displayLists)) {
20
}
21
};
22
23
class
PM64EntityGfxBinaryExporter
:
public
BaseExporter
{
24
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
25
};
26
27
class
PM64EntityGfxHeaderExporter
:
public
BaseExporter
{
28
ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement)
override
;
29
};
30
31
class
PM64EntityGfxFactory
:
public
BaseFactory
{
32
public
:
33
std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data)
override
;
34
inline
std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters()
override
{
35
return
{
36
REGISTER(Header,
PM64EntityGfxHeaderExporter
)
37
REGISTER(Binary,
PM64EntityGfxBinaryExporter
)
38
};
39
}
40
};
BaseExporter
Definition
BaseFactory.h:88
BaseFactory
Definition
BaseFactory.h:94
IParsedData
Definition
BaseFactory.h:80
PM64EntityGfxBinaryExporter
Definition
EntityGfxFactory.h:23
PM64EntityGfxFactory
Definition
EntityGfxFactory.h:31
PM64EntityGfxHeaderExporter
Definition
EntityGfxFactory.h:27
PM64EntityDisplayListInfo
Definition
EntityGfxFactory.h:7
src
factories
pm64
EntityGfxFactory.h
Generated by
1.14.0