Torch
Loading...
Searching...
No Matches
SpriteFactory.h
1#pragma once
2
3#include "factories/BaseFactory.h"
4#include "types/RawBuffer.h"
5
6// One sprite raster split out of the blob so it can be addressed by name.
8 uint8_t width;
9 uint8_t height;
10 std::vector<uint8_t> pixels; // CI4
11};
12
13struct PM64SpriteData : public RawBuffer {
14 std::vector<PM64SpriteRaster> rasters;
15 std::vector<std::vector<uint8_t>> palettes; // 16 x RGBA16, 32 bytes each
16
17 explicit PM64SpriteData(std::vector<uint8_t>& buffer) : RawBuffer(buffer) {}
18};
19
21 ExportResult Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
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
29public:
30 std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
31 inline std::unordered_map<ExportType, std::shared_ptr<BaseExporter>> GetExporters() override {
32 return {
33 REGISTER(Header, PM64SpriteHeaderExporter)
34 REGISTER(Binary, PM64SpriteBinaryExporter)
35 };
36 }
37};
Definition BaseFactory.h:96
Definition BaseFactory.h:102
Definition SpriteFactory.h:20
Definition SpriteFactory.h:28
Definition SpriteFactory.h:24
Definition SpriteFactory.h:7