Skip to content

Commit

Permalink
Fix tileset editor grid layering
Browse files Browse the repository at this point in the history
  • Loading branch information
GriffinRichards committed Dec 31, 2023
1 parent 331dc1f commit 2fc906b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 18 deletions.
1 change: 1 addition & 0 deletions include/ui/tileseteditormetatileselector.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class TilesetEditorMetatileSelector: public SelectablePixmapItem {
bool shouldAcceptEvent(QGraphicsSceneMouseEvent*);
int numRows(int numMetatiles);
int numRows();
void drawGrid();
void drawFilters();
void drawUnused();
void drawCounts();
Expand Down
40 changes: 22 additions & 18 deletions src/ui/tileseteditormetatileselector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ QImage TilesetEditorMetatileSelector::buildImage(int metatileIdStart, int numMet

void TilesetEditorMetatileSelector::draw() {
this->setPixmap(QPixmap::fromImage(this->buildAllMetatilesImage()));
this->drawGrid();
this->drawSelection();

drawFilters();
this->drawFilters();
}

bool TilesetEditorMetatileSelector::select(uint16_t metatileId) {
Expand Down Expand Up @@ -166,23 +166,27 @@ QPoint TilesetEditorMetatileSelector::getMetatileIdCoordsOnWidget(uint16_t metat
return pos;
}

void TilesetEditorMetatileSelector::drawFilters() {
if (this->showGrid) {
QPixmap pixmap = this->pixmap();
QPainter painter(&pixmap);
const int numColumns = this->numMetatilesWide;
const int numRows = this->numRows();
for (int column = 1; column < numColumns; column++) {
int x = column * 32;
painter.drawLine(x, 0, x, numRows * 32);
}
for (int row = 1; row < numRows; row++) {
int y = row * 32;
painter.drawLine(0, y, numColumns * 32, y);
}
painter.end();
this->setPixmap(pixmap);
void TilesetEditorMetatileSelector::drawGrid() {
if (!this->showGrid)
return;

QPixmap pixmap = this->pixmap();
QPainter painter(&pixmap);
const int numColumns = this->numMetatilesWide;
const int numRows = this->numRows();
for (int column = 1; column < numColumns; column++) {
int x = column * 32;
painter.drawLine(x, 0, x, numRows * 32);
}
for (int row = 1; row < numRows; row++) {
int y = row * 32;
painter.drawLine(0, y, numColumns * 32, y);
}
painter.end();
this->setPixmap(pixmap);
}

void TilesetEditorMetatileSelector::drawFilters() {
if (selectorShowUnused) {
drawUnused();
}
Expand Down

0 comments on commit 2fc906b

Please sign in to comment.