48 lines
994 B
C++
48 lines
994 B
C++
/*
|
|
* Copyright 2016 - 2023 Gary Talent (gary@drinkingtea.net). All rights reserved.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <ox/std/array.hpp>
|
|
#include <ox/std/types.hpp>
|
|
#include <ox/model/def.hpp>
|
|
|
|
#include <nostalgia/geo/point.hpp>
|
|
#include <nostalgia/geo/size.hpp>
|
|
|
|
#include "color.hpp"
|
|
#include "context.hpp"
|
|
#include "ptidxconv.hpp"
|
|
|
|
namespace nostalgia::core {
|
|
|
|
struct NostalgiaPalette {
|
|
static constexpr auto TypeName = "net.drinkingtea.nostalgia.core.NostalgiaPalette";
|
|
static constexpr auto TypeVersion = 1;
|
|
ox::Vector<Color16> colors = {};
|
|
};
|
|
|
|
struct Palette {
|
|
static constexpr auto TypeName = "net.drinkingtea.nostalgia.core.Palette";
|
|
static constexpr auto TypeVersion = 1;
|
|
ox::Vector<Color16> colors = {};
|
|
[[nodiscard]]
|
|
constexpr Color16 color(auto idx) const noexcept {
|
|
if (idx < colors.size()) [[likely]] {
|
|
return colors[idx];
|
|
}
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
oxModelBegin(NostalgiaPalette)
|
|
oxModelField(colors)
|
|
oxModelEnd()
|
|
|
|
oxModelBegin(Palette)
|
|
oxModelField(colors)
|
|
oxModelEnd()
|
|
|
|
}
|