Reflect palette changes in TE metatile selection

This commit is contained in:
GriffinR 2020-07-14 03:02:01 -04:00 committed by huderlem
parent 5798ef7fda
commit cf9314eaa6
2 changed files with 6 additions and 0 deletions

View file

@ -14,6 +14,7 @@ public:
this->paletteId = 0; this->paletteId = 0;
this->xFlip = false; this->xFlip = false;
this->yFlip = false; this->yFlip = false;
this->paletteChanged = false;
setAcceptHoverEvents(true); setAcceptHoverEvents(true);
} }
QPoint getSelectionDimensions(); QPoint getSelectionDimensions();
@ -48,6 +49,7 @@ private:
int paletteId; int paletteId;
bool xFlip; bool xFlip;
bool yFlip; bool yFlip;
bool paletteChanged;
void updateSelectedTiles(); void updateSelectedTiles();
uint16_t getTileId(int x, int y); uint16_t getTileId(int x, int y);
QPoint getTileCoords(uint16_t); QPoint getTileCoords(uint16_t);

View file

@ -71,6 +71,7 @@ void TilesetEditorTileSelector::setTilesets(Tileset *primaryTileset, Tileset *se
void TilesetEditorTileSelector::setPaletteId(int paletteId) { void TilesetEditorTileSelector::setPaletteId(int paletteId) {
this->paletteId = paletteId; this->paletteId = paletteId;
this->paletteChanged = true;
this->draw(); this->draw();
} }
@ -118,6 +119,8 @@ QList<Tile> TilesetEditorTileSelector::buildSelectedTiles(int width, int height,
Tile tile = selected.at(index); Tile tile = selected.at(index);
tile.xflip ^= this->xFlip; tile.xflip ^= this->xFlip;
tile.yflip ^= this->yFlip; tile.yflip ^= this->yFlip;
if (this->paletteChanged)
tile.palette = this->paletteId;
if (this->xFlip) if (this->xFlip)
layerRow.prepend(tile); layerRow.prepend(tile);
else else
@ -145,6 +148,7 @@ QList<Tile> TilesetEditorTileSelector::buildSelectedTiles(int width, int height,
void TilesetEditorTileSelector::setExternalSelection(int width, int height, QList<Tile> tiles) { void TilesetEditorTileSelector::setExternalSelection(int width, int height, QList<Tile> tiles) {
this->externalSelection = true; this->externalSelection = true;
this->paletteChanged = false;
this->externalSelectionWidth = width; this->externalSelectionWidth = width;
this->externalSelectionHeight = height; this->externalSelectionHeight = height;
this->externalSelectedTiles.clear(); this->externalSelectedTiles.clear();