mirror of
https://github.com/huderlem/porymap.git
synced 2026-09-30 20:06:56 -05:00
region maps: save layouts, save tilemaps
This commit is contained in:
@@ -84,6 +84,7 @@ public:
|
||||
void save();
|
||||
void saveTilemap();
|
||||
void saveLayout();
|
||||
void saveConfig();// ? or do this in the editor only?
|
||||
void saveOptions(int id, QString sec, QString name, int x, int y);
|
||||
|
||||
void resize(int width, int height);
|
||||
@@ -98,6 +99,7 @@ public:
|
||||
shared_ptr<TilemapTile> getTile(int x, int y);
|
||||
bool squareHasMap(int index);
|
||||
QString squareMapSection(int index);
|
||||
void setSquareMapSection(int index, QString section);
|
||||
int squareX(int index);
|
||||
int squareY(int index);
|
||||
bool squareInLayout(int x, int y);
|
||||
@@ -116,6 +118,9 @@ public:
|
||||
QVector<uint8_t> getTiles();
|
||||
void setTiles(QVector<uint8_t> tileIds);
|
||||
|
||||
QByteArray getTilemap();
|
||||
void setTilemap(QByteArray newTilemap);
|
||||
|
||||
QStringList getLayers() { return this->layout_layers; }
|
||||
void setLayer(QString layer) { this->current_layer = layer; }
|
||||
QString getLayer() { return this->current_layer; }
|
||||
@@ -142,7 +147,7 @@ public:
|
||||
QString fullPath(QString local);
|
||||
|
||||
private:
|
||||
|
||||
// TODO: defaults needed?
|
||||
tsl::ordered_map<QString, MapSectionEntry> *region_map_entries = nullptr;
|
||||
|
||||
QString alias;
|
||||
@@ -150,18 +155,14 @@ private:
|
||||
int tilemap_width;
|
||||
int tilemap_height;
|
||||
|
||||
// default is 32x20 (or 30x20 / screen size??)
|
||||
int region_width;
|
||||
int region_height;
|
||||
|
||||
// default is 28x15
|
||||
int layout_width;
|
||||
int layout_height;
|
||||
|
||||
int offset_left;
|
||||
int offset_top;
|
||||
//int ;
|
||||
//int img_height_;
|
||||
|
||||
TilemapFormat tilemap_format;
|
||||
|
||||
@@ -175,30 +176,22 @@ private:
|
||||
QString entries_path;
|
||||
QString layout_path;
|
||||
|
||||
// TODO: default values?
|
||||
QString layout_array_label;
|
||||
bool layout_uses_layers = false;
|
||||
//QList<QString> layout_layers;
|
||||
QStringList layout_constants;
|
||||
QString layout_qualifiers;
|
||||
|
||||
//QList<RegionMapSquare> map_squares;
|
||||
QList<shared_ptr<TilemapTile>> tilemap;
|
||||
|
||||
// what about separate array for layout
|
||||
// and a pointer to an entries / map sections object (from project? or editor?)
|
||||
QStringList layout_layers;
|
||||
QStringList layout_layers; // TODO: is this used?
|
||||
QString current_layer;
|
||||
|
||||
// TODO: qstring, or {section name, x, y, section_id, has_map}
|
||||
QMap<QString, QList<LayoutSquare>> layouts; // key: layer, value: layout list
|
||||
// TODO: just use ordered map?
|
||||
QMap<QString, QList<LayoutSquare>> layouts; // key: layer, value: layout
|
||||
|
||||
// TODO
|
||||
QString city_map_tiles_path;
|
||||
|
||||
// todo: no???? why would i be doing this it's pointless
|
||||
// let the user figure this shit out
|
||||
bool region_map_png_needs_saving = false;
|
||||
bool city_map_png_needs_saving = false;
|
||||
|
||||
int get_tilemap_index(int x, int y);
|
||||
int get_layout_index(int x, int y);
|
||||
};
|
||||
|
||||
@@ -60,7 +60,7 @@ public:
|
||||
virtual void setVFlip(bool vFlip) { this->vFlip_ = vFlip; }
|
||||
virtual void setPalette(int palette) { this->palette_ = palette; }
|
||||
|
||||
virtual QString info() {
|
||||
virtual QString info() const {
|
||||
return QString("Tile: 0x") + QString("%1 ").arg(this->id(), 4, 16, QChar('0')).toUpper();
|
||||
}
|
||||
};
|
||||
@@ -70,6 +70,8 @@ public:
|
||||
PlainTile(unsigned raw) : TilemapTile(raw, raw, false, false, 0) {}
|
||||
|
||||
~PlainTile() {}
|
||||
|
||||
virtual unsigned raw () const override { return id(); }
|
||||
};
|
||||
|
||||
class BPP4Tile : public TilemapTile {
|
||||
@@ -84,7 +86,11 @@ public:
|
||||
|
||||
~BPP4Tile() {}
|
||||
|
||||
virtual QString info() override {
|
||||
virtual unsigned raw () const override {
|
||||
return (id()) | (hFlip() << 10) | (vFlip() << 11) | (palette() << 12);
|
||||
}
|
||||
|
||||
virtual QString info() const override {
|
||||
return TilemapTile::info() + QString("hFlip: %1 vFlip: %2 palette: %3").arg(this->hFlip()).arg(this->vFlip()).arg(this->palette());
|
||||
}
|
||||
};
|
||||
@@ -101,7 +107,11 @@ public:
|
||||
|
||||
~BPP8Tile() {}
|
||||
|
||||
virtual QString info() override {
|
||||
virtual unsigned raw () const override {
|
||||
return (id()) | (hFlip() << 10) | (vFlip() << 11);
|
||||
}
|
||||
|
||||
virtual QString info() const override {
|
||||
return TilemapTile::info() + QString("hFlip: %1 vFlip: %2").arg(this->hFlip()).arg(this->vFlip());
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user