Add metatile attribute editing, and add tileset saving

This commit is contained in:
Marcus Huderle
2018-10-02 19:01:09 -05:00
parent 322238c7b8
commit 428548b7e1
9 changed files with 150 additions and 17 deletions

View File

@@ -10,6 +10,8 @@ public:
Metatile();
public:
QList<Tile> *tiles = nullptr;
uint8_t behavior;
uint8_t layerType;
static int getBlockIndex(int);
};

View File

@@ -17,8 +17,10 @@ public:
QString tiles_label;
QString palettes_label;
QString metatiles_label;
QString metatiles_path;
QString callback_label;
QString metatile_attrs_label;
QString metatile_attrs_path;
QList<QImage> *tiles = nullptr;
QList<Metatile*> *metatiles = nullptr;

View File

@@ -40,6 +40,8 @@ public:
QStringList *secretBaseIds = nullptr;
QStringList *bgEventFacingDirections = nullptr;
QStringList mapsWithConnections;
QMap<QString, int> metatileBehaviorMap;
QMap<int, QString> metatileBehaviorMapInverse;
QMap<QString, Map*> *map_cache;
Map* loadMap(QString);
@@ -83,6 +85,7 @@ public:
void saveMapGroupsTable();
void saveMapConstantsHeader();
void saveHealLocationStruct(Map*);
void saveTilesets(Tileset*, Tileset*);
QList<QStringList>* parseAsm(QString text);
QStringList getSongNames();
@@ -100,6 +103,7 @@ public:
void readCoordEventWeatherNames();
void readSecretBaseIds();
void readBgEventFacingDirections();
void readMetatileBehaviors();
void loadEventPixmaps(QList<Event*> objects);
QMap<QString, int> getEventObjGfxConstants();
@@ -127,6 +131,8 @@ private:
QString getMapLayoutFilepath(QString);
void saveMapHeader(Map*);
void saveMapConnections(Map*);
void saveTilesetMetatileAttributes(Tileset*);
void saveTilesetMetatiles(Tileset*);
void updateMapsWithConnections(Map*);
void saveMapsWithConnections();
void saveMapLayoutsTable();

View File

@@ -34,6 +34,12 @@ private slots:
void on_checkBox_yFlip_stateChanged(int arg1);
void on_comboBox_metatileBehaviors_currentIndexChanged(const QString &arg1);
void on_comboBox_layerType_currentIndexChanged(int index);
void on_actionSave_Tileset_triggered();
private:
void initMetatileSelector();
void initTileSelector();
@@ -44,8 +50,8 @@ private:
TilesetEditorMetatileSelector *metatileSelector = nullptr;
TilesetEditorTileSelector *tileSelector = nullptr;
MetatileLayersItem *metatileLayersItem = nullptr;
Project *project;
Metatile *metatile;
Project *project = nullptr;
Metatile *metatile = nullptr;
int paletteId;
bool tileXFlip;
bool tileYFlip;