From 8e86e2bf7fa91f039411a838e5ee16ff8434ba6b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 21 Feb 2025 15:40:00 -0500 Subject: [PATCH] Fix tile usage not updating with Undo/Redo --- src/ui/tileseteditor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index 68f2dbeb..f88e6205 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -843,6 +843,18 @@ bool TilesetEditor::replaceMetatile(uint16_t metatileId, const Metatile * src, Q if (metatileId == this->getSelectedMetatileId()) this->ui->lineEdit_metatileLabel->setText(newLabel); + // Update tile usage if any tiles changed + if (this->tileSelector && this->tileSelector->showUnused) { + int numTiles = projectConfig.getNumTilesInMetatile(); + for (int i = 0; i < numTiles; i++) { + if (src->tiles[i].tileId != dest->tiles[i].tileId) { + this->tileSelector->usedTiles[src->tiles[i].tileId] += 1; + this->tileSelector->usedTiles[dest->tiles[i].tileId] -= 1; + } + } + this->tileSelector->draw(); + } + this->metatile = dest; *this->metatile = *src; this->metatileSelector->select(metatileId);