2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 09:07:43 +00:00

Initial CSlideShow

This commit is contained in:
Jack Andersen
2016-09-16 10:18:03 -10:00
parent f5ac582541
commit 2fed8f36fb
19 changed files with 383 additions and 39 deletions

View File

@@ -10,6 +10,7 @@
#include "hecl/Database.hpp"
#include "../SpecBase.hpp"
#include "boo/ThreadLocalPtr.hpp"
#include "zeus/CColor.hpp"
namespace DataSpec
{
@@ -47,6 +48,40 @@ public:
{return __isz + 4;}
};
class DNAColor final : public BigYAML, public zeus::CColor
{
public:
DNAColor() = default;
DNAColor(const zeus::CColor& color) : zeus::CColor(color) {}
Delete expl;
void read(athena::io::IStreamReader& reader)
{zeus::CColor::readRGBABig(reader);}
void write(athena::io::IStreamWriter& writer) const
{zeus::CColor::writeRGBABig(writer);}
void read(athena::io::YAMLDocReader& reader)
{
size_t count;
reader.enterSubVector(nullptr, count);
r = (count >= 1) ? reader.readFloat(nullptr) : 0.f;
g = (count >= 2) ? reader.readFloat(nullptr) : 0.f;
b = (count >= 3) ? reader.readFloat(nullptr) : 0.f;
a = (count >= 4) ? reader.readFloat(nullptr) : 0.f;
reader.leaveSubVector();
}
void write(athena::io::YAMLDocWriter& writer) const
{
writer.enterSubVector(nullptr);
writer.writeFloat(nullptr, r);
writer.writeFloat(nullptr, g);
writer.writeFloat(nullptr, b);
writer.writeFloat(nullptr, a);
writer.leaveSubVector();
}
size_t binarySize(size_t __isz) const
{return __isz + 4;}
};
using FourCC = hecl::FourCC;
class UniqueID32;
class UniqueID64;