From c54ef39005eabc17921436f3cc2482ef8efb0bcd Mon Sep 17 00:00:00 2001 From: KiritoDv Date: Wed, 22 Nov 2023 10:49:30 -0600 Subject: Removed GBI, added GeoLayout and Lights extraction --- src/factories/LightsFactory.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/factories/LightsFactory.cpp') diff --git a/src/factories/LightsFactory.cpp b/src/factories/LightsFactory.cpp index ec44fcf..4c64d58 100644 --- a/src/factories/LightsFactory.cpp +++ b/src/factories/LightsFactory.cpp @@ -49,16 +49,27 @@ void LightsCodeExporter::Export(std::ostream &write, std::shared_ptr raw, std::string& entryName, YAML::Node &node, std::string* replacement ) { auto light = std::static_pointer_cast(raw)->mLights; auto writer = LUS::BinaryWriter(); + auto size = sizeof(light.l) / sizeof(LightRaw); WriteHeader(writer, LUS::ResourceType::Lights, 0); - writer.Write((uint32_t) sizeof(light)); + writer.Write(reinterpret_cast(light.a.l.col), 3); + writer.Write(reinterpret_cast(light.a.l.colc), 3); + + writer.Write(static_cast(size)); + + for(size_t i = 0; i < size; i++) { + writer.Write(reinterpret_cast(light.l[i].l.col), 3); + writer.Write(reinterpret_cast(light.l[i].l.colc), 3); + writer.Write(reinterpret_cast(light.l[i].l.dir), 3); + } + writer.Finish(write); + writer.Close(); } std::optional> LightsFactory::parse(std::vector& buffer, YAML::Node& node) { auto mio0 = node["mio0"].as(); auto offset = node["offset"].as(); - auto symbol = node["symbol"].as(); auto decoded = MIO0Decoder::Decode(buffer, mio0); LUS::BinaryReader reader(decoded.data() + offset, sizeof(Lights1Raw)); -- cgit v1.2.3