Add a way to name metatiles, for use in c code

Metatiles can be given a name. The name becomes a constant in
includes/contstants/metatile_labels.h.

The plan is to be able to reference metatiles in code using a macro
like `METATILE(Building, TV_ON, Primary)`, which will evaluate to the
value 0x003, or `METATILE(BrendansMaysHouse, MOVING_BOX_OPEN, Secondary)`,
which will evaluate to the value 0x270.
This commit is contained in:
Phlosioneer
2019-04-04 01:44:31 -04:00
parent e305e42e61
commit 01c6d09bc2
8 changed files with 148 additions and 6 deletions

View File

@@ -3,6 +3,7 @@
#include "tile.h"
#include <QImage>
#include <QString>
class Metatile
{
@@ -12,6 +13,7 @@ public:
QList<Tile> *tiles = nullptr;
uint8_t behavior;
uint8_t layerType;
QString label;
Metatile *copy();
void copyInPlace(Metatile*);

View File

@@ -78,6 +78,7 @@ public:
void loadTilesetAssets(Tileset*);
void loadTilesetTiles(Tileset*, QImage);
void loadTilesetMetatiles(Tileset*);
void loadTilesetMetatileLabels(Tileset*);
void saveLayoutBlockdata(Map*);
void saveLayoutBorder(Map*);
@@ -90,6 +91,7 @@ public:
void saveMapConstantsHeader();
void saveHealLocationStruct(Map*);
void saveTilesets(Tileset*, Tileset*);
void saveTilesetMetatileLabels(Tileset*, Tileset*);
void saveTilesetMetatileAttributes(Tileset*);
void saveTilesetMetatiles(Tileset*);
void saveTilesetTilesImage(Tileset*);

View File

@@ -73,6 +73,8 @@ private slots:
void on_comboBox_metatileBehaviors_activated(const QString &arg1);
void on_lineEdit_metatileLabel_editingFinished();
void on_comboBox_layerType_activated(int arg1);
void on_actionExport_Primary_Tiles_Image_triggered();