This commit is contained in:
@@ -13,79 +13,66 @@
|
||||
|
||||
namespace nostalgia::gfx {
|
||||
|
||||
static class: public keel::Module {
|
||||
public:
|
||||
[[nodiscard]]
|
||||
ox::String id() const noexcept override {
|
||||
return ox::String{"net.drinkingtea.nostalgia.gfx"};
|
||||
}
|
||||
static struct: keel::Module {
|
||||
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::TypeDescGenerator> types() const noexcept final {
|
||||
return {
|
||||
keel::generateTypeDesc<TileSheetV1>,
|
||||
keel::generateTypeDesc<TileSheetV2>,
|
||||
keel::generateTypeDesc<TileSheetV3>,
|
||||
keel::generateTypeDesc<TileSheetV4>,
|
||||
keel::generateTypeDesc<TileSheetV5>,
|
||||
keel::generateTypeDesc<CompactTileSheetV1>,
|
||||
keel::generateTypeDesc<PaletteV1>,
|
||||
keel::generateTypeDesc<PaletteV2>,
|
||||
keel::generateTypeDesc<PaletteV3>,
|
||||
keel::generateTypeDesc<PaletteV4>,
|
||||
keel::generateTypeDesc<PaletteV5>,
|
||||
keel::generateTypeDesc<CompactPaletteV1>,
|
||||
};
|
||||
}
|
||||
[[nodiscard]]
|
||||
ox::String id() const noexcept override {
|
||||
return ox::String{"net.drinkingtea.nostalgia.gfx"};
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::Converter> converters() const noexcept final {
|
||||
return {
|
||||
keel::Converter::make<convertNostalgiaPaletteToPaletteV1>(),
|
||||
keel::Converter::make<convertPaletteV1ToPaletteV2>(),
|
||||
keel::Converter::make<convertPaletteV2ToPaletteV3>(),
|
||||
keel::Converter::make<convertPaletteV3ToPaletteV4>(),
|
||||
keel::Converter::make<convertPaletteV4ToPaletteV5>(),
|
||||
keel::Converter::make<convertPaletteToCompactPalette>(),
|
||||
keel::Converter::make<convertTileSheetV1ToTileSheetV2>(),
|
||||
keel::Converter::make<convertTileSheetV2ToTileSheetV3>(),
|
||||
keel::Converter::make<convertTileSheetV3ToTileSheetV4>(),
|
||||
keel::Converter::make<convertTileSheetV4ToTileSheetV5>(),
|
||||
keel::Converter::make<convertTileSheetToCompactTileSheet>(),
|
||||
};
|
||||
}
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::TypeDescGenerator> types() const noexcept final {
|
||||
return {
|
||||
keel::generateTypeDesc<TileSheetV1>,
|
||||
keel::generateTypeDesc<TileSheetV2>,
|
||||
keel::generateTypeDesc<TileSheetV3>,
|
||||
keel::generateTypeDesc<TileSheetV4>,
|
||||
keel::generateTypeDesc<TileSheetV5>,
|
||||
keel::generateTypeDesc<CompactTileSheetV1>,
|
||||
keel::generateTypeDesc<PaletteV1>,
|
||||
keel::generateTypeDesc<PaletteV2>,
|
||||
keel::generateTypeDesc<PaletteV3>,
|
||||
keel::generateTypeDesc<PaletteV4>,
|
||||
keel::generateTypeDesc<PaletteV5>,
|
||||
keel::generateTypeDesc<CompactPaletteV1>,
|
||||
};
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::PackTransform> packTransforms() const noexcept final {
|
||||
return {
|
||||
// convert tilesheets to CompactTileSheets
|
||||
[](keel::Context &ctx, ox::Buffer &buff, ox::StringViewCR typeId) -> ox::Result<bool> {
|
||||
if (typeId == ox::ModelTypeId_v<TileSheetV1> ||
|
||||
typeId == ox::ModelTypeId_v<TileSheetV2> ||
|
||||
typeId == ox::ModelTypeId_v<TileSheetV3> ||
|
||||
typeId == ox::ModelTypeId_v<TileSheetV4> ||
|
||||
typeId == ox::ModelTypeId_v<TileSheetV5>) {
|
||||
OX_RETURN_ERROR(keel::convertBuffToBuff<CompactTileSheet>(
|
||||
ctx, buff, ox::ClawFormat::Metal).moveTo(buff));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
[](keel::Context &ctx, ox::Buffer &buff, ox::StringViewCR typeId) -> ox::Result<bool> {
|
||||
if (typeId == ox::ModelTypeId_v<NostalgiaPalette> ||
|
||||
typeId == ox::ModelTypeId_v<PaletteV1> ||
|
||||
typeId == ox::ModelTypeId_v<PaletteV2> ||
|
||||
typeId == ox::ModelTypeId_v<PaletteV3> ||
|
||||
typeId == ox::ModelTypeId_v<PaletteV4> ||
|
||||
typeId == ox::ModelTypeId_v<PaletteV5>) {
|
||||
OX_RETURN_ERROR(keel::convertBuffToBuff<CompactPalette>(
|
||||
ctx, buff, ox::ClawFormat::Metal).moveTo(buff));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
};
|
||||
}
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::Converter> converters() const noexcept final {
|
||||
return {
|
||||
keel::Converter::make<convertNostalgiaPaletteToPaletteV1>(),
|
||||
keel::Converter::make<convertPaletteV1ToPaletteV2>(),
|
||||
keel::Converter::make<convertPaletteV2ToPaletteV3>(),
|
||||
keel::Converter::make<convertPaletteV3ToPaletteV4>(),
|
||||
keel::Converter::make<convertPaletteV4ToPaletteV5>(),
|
||||
keel::Converter::make<convertPaletteToCompactPalette>(),
|
||||
keel::Converter::make<convertTileSheetV1ToTileSheetV2>(),
|
||||
keel::Converter::make<convertTileSheetV2ToTileSheetV3>(),
|
||||
keel::Converter::make<convertTileSheetV3ToTileSheetV4>(),
|
||||
keel::Converter::make<convertTileSheetV4ToTileSheetV5>(),
|
||||
keel::Converter::make<convertTileSheetToCompactTileSheet>(),
|
||||
};
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
ox::Vector<keel::PackTransform> packTransforms() const noexcept final {
|
||||
return {
|
||||
// convert tilesheets to CompactTileSheets
|
||||
keel::transformRule<TileSheetV1, CompactTileSheet>,
|
||||
keel::transformRule<TileSheetV2, CompactTileSheet>,
|
||||
keel::transformRule<TileSheetV3, CompactTileSheet>,
|
||||
keel::transformRule<TileSheetV4, CompactTileSheet>,
|
||||
keel::transformRule<TileSheetV5, CompactTileSheet>,
|
||||
// convert palettes to CompactPalettes
|
||||
keel::transformRule<NostalgiaPalette, CompactPalette>,
|
||||
keel::transformRule<PaletteV1, CompactPalette>,
|
||||
keel::transformRule<PaletteV2, CompactPalette>,
|
||||
keel::transformRule<PaletteV3, CompactPalette>,
|
||||
keel::transformRule<PaletteV4, CompactPalette>,
|
||||
keel::transformRule<PaletteV5, CompactPalette>,
|
||||
};
|
||||
}
|
||||
|
||||
} const mod;
|
||||
|
||||
|
||||
@@ -109,8 +109,8 @@ static void convertSubsheet(
|
||||
dst.rows = src.rows;
|
||||
dst.pixels = std::move(src.pixels);
|
||||
++idIt;
|
||||
dst.subsheets.resize(src.subsheets.size());
|
||||
for (auto i = 0u; i < src.subsheets.size(); ++i) {
|
||||
dst.subsheets.reserveResize(src.subsheets.size());
|
||||
for (size_t i{}; i < src.subsheets.size(); ++i) {
|
||||
convertSubsheet(src.subsheets[i], dst.subsheets[i], idIt);
|
||||
}
|
||||
}
|
||||
@@ -136,8 +136,8 @@ static void convertSubsheet(
|
||||
dst.rows = src.rows;
|
||||
dst.pixels = std::move(src.pixels);
|
||||
++idIt;
|
||||
dst.subsheets.resize(src.subsheets.size());
|
||||
for (auto i = 0u; i < src.subsheets.size(); ++i) {
|
||||
dst.subsheets.reserveResize(src.subsheets.size());
|
||||
for (size_t i{}; i < src.subsheets.size(); ++i) {
|
||||
convertSubsheet(src.subsheets[i], dst.subsheets[i], idIt);
|
||||
}
|
||||
}
|
||||
@@ -173,8 +173,8 @@ static void convertSubsheet(
|
||||
} else {
|
||||
dst.pixels = std::move(src.pixels);
|
||||
}
|
||||
dst.subsheets.resize(src.subsheets.size());
|
||||
for (auto i = 0u; i < src.subsheets.size(); ++i) {
|
||||
dst.subsheets.reserveResize(src.subsheets.size());
|
||||
for (size_t i{}; i < src.subsheets.size(); ++i) {
|
||||
convertSubsheet(bpp, src.subsheets[i], dst.subsheets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user