diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e01a0c6e..3968a35a 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -728,7 +728,7 @@ void MainWindow::currentMetatilesSelectionChanged() QPoint size = editor->metatile_selector_item->getSelectionDimensions(); if (size.x() == 1 && size.y() == 1) { QPoint pos = editor->metatile_selector_item->getMetatileIdCoordsOnWidget(editor->metatile_selector_item->getSelectedMetatiles()->at(0)); - ui->scrollArea_2->ensureVisible(pos.x(), pos.y()); + ui->scrollArea_2->ensureVisible(pos.x(), pos.y(), 8, 8); } } diff --git a/src/ui/metatileselector.cpp b/src/ui/metatileselector.cpp index 6c2a7617..57f263fd 100644 --- a/src/ui/metatileselector.cpp +++ b/src/ui/metatileselector.cpp @@ -20,6 +20,9 @@ void MetatileSelector::draw() { int primaryLength = this->primaryTileset->metatiles->length(); int length_ = primaryLength + this->secondaryTileset->metatiles->length(); int height_ = length_ / this->numMetatilesWide; + if (length_ % this->numMetatilesWide != 0) { + height_++; + } QImage image(this->numMetatilesWide * 16, height_ * 16, QImage::Format_RGBA8888); QPainter painter(&image); for (int i = 0; i < length_; i++) { diff --git a/src/ui/tileseteditormetatileselector.cpp b/src/ui/tileseteditormetatileselector.cpp index 852ab0e9..eae7d4cc 100644 --- a/src/ui/tileseteditormetatileselector.cpp +++ b/src/ui/tileseteditormetatileselector.cpp @@ -12,6 +12,9 @@ void TilesetEditorMetatileSelector::draw() { int primaryLength = this->primaryTileset->metatiles->length(); int length_ = primaryLength + this->secondaryTileset->metatiles->length(); int height_ = length_ / this->numMetatilesWide; + if (length_ % this->numMetatilesWide != 0) { + height_++; + } QImage image(this->numMetatilesWide * 32, height_ * 32, QImage::Format_RGBA8888); QPainter painter(&image); for (int i = 0; i < length_; i++) { @@ -47,7 +50,7 @@ void TilesetEditorMetatileSelector::setTilesets(Tileset *primaryTileset, Tileset void TilesetEditorMetatileSelector::updateSelectedMetatile() { QPoint origin = this->getSelectionStart(); - this->selectedMetatile = this->getMetatileId(origin.x(), origin.y()); + this->selectedMetatile = this->getValidMetatileId(this->getMetatileId(origin.x(), origin.y())); } uint16_t TilesetEditorMetatileSelector::getSelectedMetatile() { @@ -72,11 +75,8 @@ void TilesetEditorMetatileSelector::mousePressEvent(QGraphicsSceneMouseEvent *ev void TilesetEditorMetatileSelector::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { SelectablePixmapItem::mouseMoveEvent(event); this->updateSelectedMetatile(); - - QPoint pos = this->getCellPos(event->pos()); - uint16_t metatileId = this->getMetatileId(pos.x(), pos.y()); - emit hoveredMetatileChanged(metatileId); - emit selectedMetatileChanged(metatileId); + emit hoveredMetatileChanged(this->selectedMetatile); + emit selectedMetatileChanged(this->selectedMetatile); } void TilesetEditorMetatileSelector::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {