mirror of
https://github.com/huderlem/porymap.git
synced 2026-09-08 00:45:39 -05:00
Support 8BPP tileset tile images
This commit is contained in:
@@ -13,6 +13,7 @@ QImage getMetatileImage(Metatile*, Tileset*, Tileset*, QList<int>, QList<float>,
|
||||
QImage getTileImage(uint16_t, Tileset*, Tileset*);
|
||||
QImage getPalettedTileImage(uint16_t, Tileset*, Tileset*, int, bool useTruePalettes = false);
|
||||
QImage getGreyscaleTileImage(uint16_t tile, Tileset *primaryTileset, Tileset *secondaryTileset);
|
||||
void flattenTo4bppImage(QImage * image);
|
||||
|
||||
static QList<QRgb> greyscalePalette({
|
||||
qRgb(0, 0, 0),
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include "selectablepixmapitem.h"
|
||||
#include "paletteutil.h"
|
||||
#include "imageproviders.h"
|
||||
|
||||
#include <memory>
|
||||
using std::shared_ptr;
|
||||
@@ -127,10 +128,7 @@ public:
|
||||
this->tileset = QImage(tilesetFilepath);
|
||||
this->format = format;
|
||||
if (this->tileset.format() == QImage::Format::Format_Indexed8 && this->format == TilemapFormat::BPP_4) {
|
||||
// Squash pixel data to fit 4BPP. Allows project repo to use 8BPP images for 4BPP tilemaps
|
||||
uchar * pixel = this->tileset.bits();
|
||||
for (int i = 0; i < this->tileset.sizeInBytes(); i++, pixel++)
|
||||
*pixel %= 16;
|
||||
flattenTo4bppImage(&this->tileset);
|
||||
}
|
||||
bool err;
|
||||
if (!palFilepath.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user