Compare commits
3 Commits
83cbac5cca
...
465fb06f76
Author | SHA1 | Date | |
---|---|---|---|
465fb06f76 | |||
db953dd0d1 | |||
daab4dc4f5 |
@ -233,10 +233,12 @@ struct TileSheetV4 {
|
|||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
constexpr bool valid(TileSheetV4::SubSheet const&ss, int bpp) noexcept {
|
constexpr bool valid(TileSheetV4::SubSheet const&ss, int bpp) noexcept {
|
||||||
auto const bytes = static_cast<size_t>(ss.columns * ss.rows * PixelsPerTile) / (bpp == 4 ? 2 : 1);
|
auto const bytes = static_cast<size_t>(ss.columns * ss.rows * PixelsPerTile) / (bpp == 4 ? 2 : 1);
|
||||||
return ox::all_of(ss.subsheets.begin(), ss.subsheets.end(),
|
return
|
||||||
[bpp, bytes](TileSheetV4::SubSheet const&s) {
|
(ss.pixels.empty() || ss.subsheets.empty()) &&
|
||||||
return bytes == s.pixels.size() && valid(s, bpp);
|
ox::all_of(ss.subsheets.begin(), ss.subsheets.end(),
|
||||||
});
|
[bpp, bytes](TileSheetV4::SubSheet const&s) {
|
||||||
|
return bytes == s.pixels.size() && valid(s, bpp);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
@ -245,8 +247,14 @@ constexpr bool valid(TileSheetV4 const&ts) noexcept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
constexpr void repair(TileSheetV4::SubSheet &ss, int bpp) noexcept {
|
constexpr void repair(TileSheetV4::SubSheet &ss, int bpp) noexcept {
|
||||||
auto const bytes = static_cast<size_t>(ss.columns * ss.rows * PixelsPerTile) / (bpp == 4 ? 2 : 1);
|
if (ss.subsheets.empty()) {
|
||||||
ss.pixels.resize(bytes);
|
auto const bytes = static_cast<size_t>(ss.columns * ss.rows * PixelsPerTile) / (bpp == 4 ? 2 : 1);
|
||||||
|
ss.pixels.resize(bytes);
|
||||||
|
} else {
|
||||||
|
ss.pixels.clear();
|
||||||
|
ss.columns = -1;
|
||||||
|
ss.rows = -1;
|
||||||
|
}
|
||||||
for (auto &s : ss.subsheets) {
|
for (auto &s : ss.subsheets) {
|
||||||
repair(s, bpp);
|
repair(s, bpp);
|
||||||
}
|
}
|
||||||
|
@ -544,7 +544,7 @@ void TileSheetEditorImGui::SubSheetEditor::draw(turbine::Context &tctx) noexcept
|
|||||||
auto const popupHeight = modSize ? 130.f : 85.f;
|
auto const popupHeight = modSize ? 130.f : 85.f;
|
||||||
auto const popupSz = ImVec2{popupWidth, popupHeight};
|
auto const popupSz = ImVec2{popupWidth, popupHeight};
|
||||||
if (ig::BeginPopup(tctx, popupName, m_show, popupSz)) {
|
if (ig::BeginPopup(tctx, popupName, m_show, popupSz)) {
|
||||||
ImGui::InputText("Name", m_name.data(), m_name.cap());
|
ig::InputText("Name", m_name);
|
||||||
if (modSize) {
|
if (modSize) {
|
||||||
ImGui::InputInt("Columns", &m_cols);
|
ImGui::InputInt("Columns", &m_cols);
|
||||||
ImGui::InputInt("Rows", &m_rows);
|
ImGui::InputInt("Rows", &m_rows);
|
||||||
|
@ -50,7 +50,7 @@ void NewProject::draw(studio::StudioContext &ctx) noexcept {
|
|||||||
|
|
||||||
void NewProject::drawNewProjectName(studio::StudioContext &sctx) noexcept {
|
void NewProject::drawNewProjectName(studio::StudioContext &sctx) noexcept {
|
||||||
drawWindow(sctx.tctx, &m_open, [this, &sctx] {
|
drawWindow(sctx.tctx, &m_open, [this, &sctx] {
|
||||||
ImGui::InputText("Name", m_projectName.data(), m_projectName.cap());
|
ig::InputText("Name", m_projectName);
|
||||||
ImGui::Text("Path: %s", m_projectPath.c_str());
|
ImGui::Text("Path: %s", m_projectPath.c_str());
|
||||||
if (ImGui::Button("Browse")) {
|
if (ImGui::Button("Browse")) {
|
||||||
oxLogError(studio::chooseDirectory().moveTo(m_projectPath));
|
oxLogError(studio::chooseDirectory().moveTo(m_projectPath));
|
||||||
|
Loading…
Reference in New Issue
Block a user