diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index 3a9f33fd..aa58d533 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -106,9 +106,11 @@ void TilesetEditor::init(Project *project, Map *map) { } void TilesetEditor::selectMetatile(uint16_t metatileId) { - this->metatileSelector->select(metatileId); - QPoint pos = this->metatileSelector->getMetatileIdCoordsOnWidget(metatileId); - this->ui->scrollArea_Metatiles->ensureVisible(pos.x(), pos.y()); + if (Tileset::metatileIsValid(metatileId, this->primaryTileset, this->secondaryTileset)) { + this->metatileSelector->select(metatileId); + QPoint pos = this->metatileSelector->getMetatileIdCoordsOnWidget(metatileId); + this->ui->scrollArea_Metatiles->ensureVisible(pos.x(), pos.y()); + } } void TilesetEditor::setMap(Map *map) { diff --git a/src/ui/tileseteditormetatileselector.cpp b/src/ui/tileseteditormetatileselector.cpp index 24cb7716..31e34531 100644 --- a/src/ui/tileseteditormetatileselector.cpp +++ b/src/ui/tileseteditormetatileselector.cpp @@ -62,7 +62,7 @@ void TilesetEditorMetatileSelector::updateSelectedMetatile() { if (Tileset::metatileIsValid(metatileId, this->primaryTileset, this->secondaryTileset)) this->selectedMetatile = metatileId; else - this->selectedMetatile = 0; + this->selectedMetatile = Project::getNumMetatilesPrimary() + this->secondaryTileset->metatiles->length() - 1; emit selectedMetatileChanged(this->selectedMetatile); }