From 96f1c9fb9e8d586d2853f64dc464bf5d2b285e40 Mon Sep 17 00:00:00 2001 From: myst6re Date: Tue, 16 Jan 2024 21:47:24 +0100 Subject: [PATCH] Allow to edit shifted tiles (by changing the shift to another value) --- src/core/field/BackgroundTiles.cpp | 6 ++++++ src/widgets/BackgroundEditor.cpp | 12 ++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/core/field/BackgroundTiles.cpp b/src/core/field/BackgroundTiles.cpp index 614f2d3a..c9f93d2e 100644 --- a/src/core/field/BackgroundTiles.cpp +++ b/src/core/field/BackgroundTiles.cpp @@ -24,6 +24,12 @@ void Tile::calcIDBig(CaFile *ca) if (manualIDBig) { return; } + + if (layerID >= 2) { + IDBig = 0; + + return; + } // Used for conversion to PC format if (ID == 0) { diff --git a/src/widgets/BackgroundEditor.cpp b/src/widgets/BackgroundEditor.cpp index 85102780..8410ca8b 100644 --- a/src/widgets/BackgroundEditor.cpp +++ b/src/widgets/BackgroundEditor.cpp @@ -430,11 +430,11 @@ void BackgroundEditor::refreshImage(int layer, int section, ParamState paramStat quint8 tileSize = layer > 1 ? 32 : 16; QRect area = layerTiles.rect(); QPoint shift = layerTiles.dstShift(tileSize); + + qDebug() << "BackgroundEditor::refreshImage" << "area" << area << shift; - qDebug() << "BackgroundEditor::refreshImage" << "area" << area; - - _shiftX->setMaximum(tileSize / 2); - _shiftY->setMaximum(tileSize / 2); + _shiftX->setMaximum(tileSize - 1); + _shiftY->setMaximum(tileSize - 1); _shiftX->setValue(shift.x()); _shiftY->setValue(shift.y()); _shiftX->setEnabled(true); @@ -520,9 +520,9 @@ void BackgroundEditor::updateSelectedTiles(const QList &cells) } else { tiles = _backgroundFile->tiles().tiles(layerID, ID); } - - qDebug() << "updateSelectedTiles" << cellSize << layerID << ID << paramState.param << paramState.state << tiles.size(); + QPoint shift(_shiftX->value(), _shiftY->value()); + qDebug() << "updateSelectedTiles" << "cellSize" << cellSize << "layerID" << layerID << "ID" << ID << "param" << paramState.param << "state" << paramState.state << "tilescount" << tiles.size() << "shift" << shift; for (const Tile &tile : std::as_const(tiles)) { if (layerID >= 1 && !effectTileIds.isEmpty() && !effectTileIds.contains(tile.tileID)) {