[nostalgia/core] Remove TileSheet::SubSheet::size
This commit is contained in:
parent
778cb78f31
commit
294c4547d0
@ -62,10 +62,13 @@ struct TileSheet {
|
|||||||
static constexpr auto TypeVersion = 1;
|
static constexpr auto TypeVersion = 1;
|
||||||
ox::BString<32> name;
|
ox::BString<32> name;
|
||||||
uint64_t begin = 0;
|
uint64_t begin = 0;
|
||||||
uint64_t size = 0;
|
|
||||||
int rows = 1;
|
|
||||||
int columns = 1;
|
int columns = 1;
|
||||||
|
int rows = 1;
|
||||||
ox::Vector<SubSheet> subsheets;
|
ox::Vector<SubSheet> subsheets;
|
||||||
|
|
||||||
|
constexpr SubSheet() noexcept = default;
|
||||||
|
constexpr SubSheet(const char *pName, int pColumns, int pRows) noexcept: name(pName), columns(pColumns), rows(pRows) {
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr auto TypeName = "net.drinkingtea.nostalgia.core.TileSheet";
|
static constexpr auto TypeName = "net.drinkingtea.nostalgia.core.TileSheet";
|
||||||
@ -76,7 +79,15 @@ struct TileSheet {
|
|||||||
SubSheet subsheet;
|
SubSheet subsheet;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr const auto &getSubSheet(const SubSheetIdx &idx, std::size_t idxIt, const SubSheet *pSubsheet) const noexcept {
|
constexpr static const auto &getSubSheet(const SubSheetIdx &idx, std::size_t idxIt, const SubSheet *pSubsheet) noexcept {
|
||||||
|
if (idxIt == idx.size()) {
|
||||||
|
return *pSubsheet;
|
||||||
|
}
|
||||||
|
return getSubSheet(idx, idxIt + 1, &pSubsheet->subsheets[idx[idxIt]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
constexpr static auto &getSubSheet(const SubSheetIdx &idx, std::size_t idxIt, SubSheet *pSubsheet) noexcept {
|
||||||
if (idxIt == idx.size()) {
|
if (idxIt == idx.size()) {
|
||||||
return *pSubsheet;
|
return *pSubsheet;
|
||||||
}
|
}
|
||||||
@ -89,16 +100,21 @@ struct TileSheet {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr auto &getSubSheet(const SubSheetIdx &idx, std::size_t idxIt, const SubSheet *pSubsheet) noexcept {
|
constexpr auto &getSubSheet(const SubSheetIdx &idx) noexcept {
|
||||||
if (idxIt == idx.size()) {
|
return getSubSheet(idx, 0, &subsheet);
|
||||||
return *pSubsheet;
|
|
||||||
}
|
|
||||||
return getSubSheet(idx, idxIt + 1, &pSubsheet->subsheets[idx[idxIt]]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr auto &getSubSheet(const SubSheetIdx &idx) noexcept {
|
constexpr static auto rmSubSheet(const SubSheetIdx &idx, std::size_t idxIt, SubSheet *pSubsheet) noexcept {
|
||||||
return getSubSheet(idx, 0, &subsheet);
|
if (idxIt == idx.size() - 1) {
|
||||||
|
return pSubsheet->subsheets.erase(idx[idxIt]).error;
|
||||||
|
}
|
||||||
|
return rmSubSheet(idx, idxIt + 1, &pSubsheet->subsheets[idx[idxIt]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]]
|
||||||
|
constexpr auto rmSubSheet(const SubSheetIdx &idx) noexcept {
|
||||||
|
return rmSubSheet(idx, 0, &subsheet);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
@ -213,7 +229,6 @@ oxModelEnd()
|
|||||||
oxModelBegin(TileSheet::SubSheet)
|
oxModelBegin(TileSheet::SubSheet)
|
||||||
oxModelField(name);
|
oxModelField(name);
|
||||||
oxModelField(begin);
|
oxModelField(begin);
|
||||||
oxModelField(size);
|
|
||||||
oxModelField(rows);
|
oxModelField(rows);
|
||||||
oxModelField(columns);
|
oxModelField(columns);
|
||||||
oxModelField(subsheets)
|
oxModelField(subsheets)
|
||||||
|
@ -14,7 +14,6 @@ struct NostalgiaGraphicToTileSheetConverter: public Converter<NostalgiaGraphic,
|
|||||||
dst->subsheet.name = "Root";
|
dst->subsheet.name = "Root";
|
||||||
dst->subsheet.rows = src->rows;
|
dst->subsheet.rows = src->rows;
|
||||||
dst->subsheet.columns = src->columns;
|
dst->subsheet.columns = src->columns;
|
||||||
dst->subsheet.size = src->pixels.size();
|
|
||||||
dst->defaultPalette = std::move(src->defaultPalette);
|
dst->defaultPalette = std::move(src->defaultPalette);
|
||||||
dst->pixels = std::move(src->pixels);
|
dst->pixels = std::move(src->pixels);
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user