From 9e7611d3aeb5e200b70d3d79fecfe85970c08f64 Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 25 Feb 2019 14:36:59 -0500 Subject: [PATCH 01/15] fix metatile selector selection when zoomed --- src/mainwindow.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 982f3be8..d3e99138 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -875,7 +875,9 @@ void MainWindow::currentMetatilesSelectionChanged() QPoint size = editor->metatile_selector_item->getSelectionDimensions(); if (size.x() == 1 && size.y() == 1) { QPoint pos = editor->metatile_selector_item->getMetatileIdCoordsOnWidget(editor->metatile_selector_item->getSelectedMetatiles()->at(0)); - ui->scrollArea_2->ensureVisible(pos.x(), pos.y(), 8, 8); + double scale = pow(3.0, static_cast(porymapConfig.getMetatilesZoom() - 30) / 30.0); + pos *= scale; + ui->scrollArea_2->ensureVisible(pos.x(), pos.y(), 8 * scale, 8 * scale); } } From 3ab64f493d34f9be57fe7531de8bc5ea6f5b4b6c Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 25 Feb 2019 15:09:36 -0500 Subject: [PATCH 02/15] scale metatile selection and border with selector --- forms/mainwindow.ui | 2 +- src/mainwindow.cpp | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index 1aa69cdd..ca3a5c2a 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -1166,7 +1166,7 @@ 10 - 100 + 90 30 diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d3e99138..730925b9 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -869,13 +869,13 @@ void MainWindow::updateTilesetEditor() { void MainWindow::currentMetatilesSelectionChanged() { - ui->graphicsView_currentMetatileSelection->setFixedSize(editor->scene_current_metatile_selection_item->pixmap().width() + 2, editor->scene_current_metatile_selection_item->pixmap().height() + 2); - ui->graphicsView_currentMetatileSelection->setSceneRect(0, 0, editor->scene_current_metatile_selection_item->pixmap().width(), editor->scene_current_metatile_selection_item->pixmap().height()); + double scale = pow(3.0, static_cast(porymapConfig.getMetatilesZoom() - 30) / 30.0); + ui->graphicsView_currentMetatileSelection->setFixedSize(editor->scene_current_metatile_selection_item->pixmap().width() * scale + 2, editor->scene_current_metatile_selection_item->pixmap().height() * scale + 2); + ui->graphicsView_currentMetatileSelection->setSceneRect(0, 0, editor->scene_current_metatile_selection_item->pixmap().width() * scale, editor->scene_current_metatile_selection_item->pixmap().height() * scale); QPoint size = editor->metatile_selector_item->getSelectionDimensions(); if (size.x() == 1 && size.y() == 1) { QPoint pos = editor->metatile_selector_item->getMetatileIdCoordsOnWidget(editor->metatile_selector_item->getSelectedMetatiles()->at(0)); - double scale = pow(3.0, static_cast(porymapConfig.getMetatilesZoom() - 30) / 30.0); pos *= scale; ui->scrollArea_2->ensureVisible(pos.x(), pos.y(), 8 * scale, 8 * scale); } @@ -1979,6 +1979,13 @@ void MainWindow::on_horizontalSlider_MetatileZoom_valueChanged(int value) { ui->graphicsView_Metatiles->setResizeAnchor(QGraphicsView::NoAnchor); ui->graphicsView_Metatiles->setMatrix(matrix); ui->graphicsView_Metatiles->setFixedSize(size.width() + 2, size.height() + 2); + + ui->graphicsView_BorderMetatile->setMatrix(matrix); + ui->graphicsView_BorderMetatile->setFixedSize(ceil(static_cast(editor->selected_border_metatiles_item->pixmap().width()) * scale) + 2, + ceil(static_cast(editor->selected_border_metatiles_item->pixmap().height()) * scale) + 2); + + ui->graphicsView_currentMetatileSelection->setMatrix(matrix); + currentMetatilesSelectionChanged(); } void MainWindow::closeEvent(QCloseEvent *event) { From 34cc6fe5c7883c280ad7bfafc29aebca2b736341 Mon Sep 17 00:00:00 2001 From: garak Date: Mon, 25 Feb 2019 20:40:46 -0500 Subject: [PATCH 03/15] fix map icons in mapList --- include/mainwindow.h | 4 ++-- src/mainwindow.cpp | 39 +++++++++++++++++---------------------- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/include/mainwindow.h b/include/mainwindow.h index bb7d98c1..4fbb2d22 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -171,6 +171,7 @@ private: Editor *editor = nullptr; QIcon* mapIcon; QIcon* mapEditedIcon; + QIcon* mapOpenedIcon; QWidget *eventTabObjectWidget; QWidget *eventTabWarpWidget; @@ -200,8 +201,7 @@ private: void setRecentMap(QString map_name); QStandardItem* createMapItem(QString mapName, int groupNum, int inGroupNum); - void markAllEdited(QAbstractItemModel *model); - void markEdited(QModelIndex index); + void drawMapListIcons(QAbstractItemModel *model); void updateMapList(); void displayMapProperties(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 730925b9..42ee5900 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -101,13 +101,9 @@ void MainWindow::initEditor() { } void MainWindow::initMiscHeapObjects() { - mapIcon = new QIcon; - mapIcon->addFile(QStringLiteral(":/icons/map.ico"), QSize(), QIcon::Normal, QIcon::Off); - mapIcon->addFile(QStringLiteral(":/icons/map_opened.ico"), QSize(), QIcon::Normal, QIcon::On); - - mapEditedIcon = new QIcon; - mapEditedIcon->addFile(QStringLiteral(":/icons/map_edited.ico"), QSize(), QIcon::Normal, QIcon::Off); - mapEditedIcon->addFile(QStringLiteral(":/icons/map_opened.ico"), QSize(), QIcon::Normal , QIcon::On); + mapIcon = new QIcon(QStringLiteral(":/icons/map.ico")); + mapEditedIcon = new QIcon(QStringLiteral(":/icons/map_edited.ico")); + mapOpenedIcon = new QIcon(QStringLiteral(":/icons/map_opened.ico")); mapListModel = new QStandardItemModel; mapGroupItemsList = new QList; @@ -889,7 +885,7 @@ void MainWindow::on_mapList_activated(const QModelIndex &index) } } -void MainWindow::markAllEdited(QAbstractItemModel *model) { +void MainWindow::drawMapListIcons(QAbstractItemModel *model) { QList list; list.append(QModelIndex()); while (list.length()) { @@ -899,19 +895,18 @@ void MainWindow::markAllEdited(QAbstractItemModel *model) { if (model->hasChildren(index)) { list.append(index); } - markEdited(index); - } - } -} - -void MainWindow::markEdited(QModelIndex index) { - QVariant data = index.data(Qt::UserRole); - if (!data.isNull()) { - QString map_name = data.toString(); - if (editor->project) { - if (editor->project->map_cache->contains(map_name)) { - if (editor->project->map_cache->value(map_name)->hasUnsavedChanges()) { - mapListModel->itemFromIndex(mapListIndexes.value(map_name))->setIcon(*mapEditedIcon); + QVariant data = index.data(Qt::UserRole); + if (!data.isNull()) { + QString map_name = data.toString(); + if (editor->project && editor->project->map_cache->contains(map_name)) { + QStandardItem *map = mapListModel->itemFromIndex(mapListIndexes.value(map_name)); + map->setIcon(*mapIcon); + if (editor->project->map_cache->value(map_name)->hasUnsavedChanges()) { + map->setIcon(*mapEditedIcon); + } + if (editor->map->name == map_name) { + map->setIcon(*mapOpenedIcon); + } } } } @@ -920,7 +915,7 @@ void MainWindow::markEdited(QModelIndex index) { void MainWindow::updateMapList() { QAbstractItemModel *model = ui->mapList->model(); - markAllEdited(model); + drawMapListIcons(model); } void MainWindow::on_action_Save_Project_triggered() From 4dc9ebada90780a75ef64e5378fe3f9d416179ba Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 17 Mar 2019 11:56:47 -0500 Subject: [PATCH 04/15] Preserve x/y flip status when selecting a single tile from the metatile picker --- src/ui/tileseteditor.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/tileseteditor.cpp b/src/ui/tileseteditor.cpp index 58d07217..1df9f2b9 100644 --- a/src/ui/tileseteditor.cpp +++ b/src/ui/tileseteditor.cpp @@ -253,6 +253,8 @@ void TilesetEditor::onMetatileLayerSelectionChanged(QPoint selectionOrigin, int if (width == 1 && height == 1) { this->tileSelector->select(static_cast(tiles[0].tile)); ui->spinBox_paletteSelector->setValue(tiles[0].palette); + ui->checkBox_xFlip->setChecked(tiles[0].xflip); + ui->checkBox_yFlip->setChecked(tiles[0].yflip); QPoint pos = tileSelector->getTileCoordsOnWidget(static_cast(tiles[0].tile)); ui->scrollArea_Tiles->ensureVisible(pos.x(), pos.y()); } From d456847f438fcd8e54239a66208c43b434c3a139 Mon Sep 17 00:00:00 2001 From: huderlem Date: Sun, 17 Mar 2019 12:06:48 -0500 Subject: [PATCH 05/15] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a57764b..efc31aab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,10 @@ and this project somewhat adheres to [Semantic Versioning](https://semver.org/sp The **"Breaking Changes"** listed below are changes that have been made in the decompilation projects (e.g. pokeemerald), which porymap requires in order to work properly. If porymap is used on a project that is not up-to-date with the breaking changes, then porymap will likely break or behave improperly. ## [Unreleased] -- None +### Fixed +- Fix bug in zoomed metatile selector where a large selection rectangle was being rendered. +- Fix bug where edited map icons were not rendered properly. +- Fix bug where right-click copying a tile from the tileset editor's metatile layers wouldn't copy the x/y flip status. ## [1.2.1] - 2019-02-16 ### Added @@ -77,7 +80,7 @@ The **"Breaking Changes"** listed below are changes that have been made in the d ## [1.0.0] - 2018-10-26 This was the initial release. -[Unreleased]: https://github.com/huderlem/porymap/compare/1.2.0...HEAD +[Unreleased]: https://github.com/huderlem/porymap/compare/1.2.1...HEAD [1.2.1]: https://github.com/huderlem/porymap/compare/1.2.0...1.2.1 [1.2.0]: https://github.com/huderlem/porymap/compare/1.1.0...1.2.0 [1.1.0]: https://github.com/huderlem/porymap/compare/1.0.0...1.1.0 From 1b62c15ba42dfe22c2ad029c3de1bb5c804ddcae Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 00:50:50 +0100 Subject: [PATCH 06/15] add dialog to add tilesets --- forms/mainwindow.ui | 32 +++-- forms/newmappopup.ui | 55 ++++--- forms/newtilesetdialog.ui | 222 +++++++++++++++++++++++++++++ include/core/tileset.h | 4 + include/mainwindow.h | 2 + include/project.h | 8 +- include/ui/newtilesetdialog.h | 32 +++++ porymap.pro | 9 +- resources/images.qrc | 1 + resources/images/blank_tileset.png | Bin 0 -> 176 bytes src/core/tileset.cpp | 68 +++++++++ src/mainwindow.cpp | 92 ++++++++++++ src/ui/newtilesetdialog.cpp | 40 ++++++ 13 files changed, 516 insertions(+), 49 deletions(-) create mode 100644 forms/newtilesetdialog.ui create mode 100644 include/ui/newtilesetdialog.h create mode 100644 resources/images/blank_tileset.png create mode 100644 src/ui/newtilesetdialog.cpp diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index ca3a5c2a..dbe3bc20 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -561,8 +561,8 @@ 0 0 - 545 - 587 + 522 + 601 @@ -876,8 +876,8 @@ 0 0 - 256 - 74 + 259 + 70 @@ -1064,10 +1064,10 @@ - 8 + 0 0 - 221 - 328 + 263 + 338 @@ -1344,8 +1344,8 @@ 0 0 - 371 - 643 + 385 + 652 @@ -1617,8 +1617,8 @@ 0 0 - 430 - 534 + 432 + 554 @@ -2531,8 +2531,8 @@ 0 0 - 818 - 539 + 829 + 543 @@ -2748,6 +2748,7 @@ + @@ -2976,6 +2977,11 @@ Cursor Tile Outline + + + New Tileset + + diff --git a/forms/newmappopup.ui b/forms/newmappopup.ui index 9cab8872..50208a48 100644 --- a/forms/newmappopup.ui +++ b/forms/newmappopup.ui @@ -7,25 +7,22 @@ 0 0 410 - 508 + 515 New Map Options + + false + false - - - 0 - 0 - - QFrame::StyledPanel @@ -39,13 +36,6 @@ 12 - - - - Name - - - @@ -196,20 +186,6 @@ - - - - Allow Biking - - - - - - - Allow Escape Rope - - - @@ -217,6 +193,13 @@ + + + + Allow Biking + + + @@ -224,6 +207,13 @@ + + + + Allow Escape Rope + + + @@ -231,6 +221,13 @@ + + + + Name + + + @@ -249,7 +246,7 @@ 0 0 410 - 21 + 22 diff --git a/forms/newtilesetdialog.ui b/forms/newtilesetdialog.ui new file mode 100644 index 00000000..c0aa791d --- /dev/null +++ b/forms/newtilesetdialog.ui @@ -0,0 +1,222 @@ + + + NewTilesetDialog + + + + 0 + 0 + 400 + 190 + + + + + 0 + 0 + + + + Add new Tileset + + + + + 0 + 0 + 400 + 190 + + + + + 0 + 0 + + + + + 10 + + + 10 + + + 10 + + + 10 + + + 6 + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + 0 + 0 + + + + + 380 + 135 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 0 + 0 + 380 + 129 + + + + + 6 + + + 10 + + + 10 + + + 10 + + + + + Name + + + + + + + + + + Type + + + + + + + + Primary + + + + + Secondary + + + + + + + + Path + + + + + + + false + + + + + + + Symbol Name + + + + + + + false + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + false + + + + + + + + + + buttonBox + accepted() + NewTilesetDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + NewTilesetDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/include/core/tileset.h b/include/core/tileset.h index ce735e35..37a9ee78 100644 --- a/include/core/tileset.h +++ b/include/core/tileset.h @@ -35,6 +35,10 @@ public: static Metatile* getMetatile(int, Tileset*, Tileset*); static QList> getBlockPalettes(Tileset*, Tileset*); static QList getPalette(int, Tileset*, Tileset*); + + bool appendToHeaders(QString headerFile, QString friendlyName); + bool appendToGraphics(QString graphicsFile, QString friendlyName, bool primary); + bool appendToMetatiles(QString metatileFile, QString friendlyName, bool primary); }; #endif // TILESET_H diff --git a/include/mainwindow.h b/include/mainwindow.h index 4fbb2d22..84ba958d 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -17,6 +17,7 @@ #include "tileseteditor.h" #include "filterchildrenproxymodel.h" #include "newmappopup.h" +#include "newtilesetdialog.h" namespace Ui { class MainWindow; @@ -52,6 +53,7 @@ private slots: void onNewMapCreated(); void on_action_NewMap_triggered(); + void on_actionNew_Tileset_triggered(); void on_action_Save_triggered(); void on_tabWidget_2_currentChanged(int index); void on_action_Exit_triggered(); diff --git a/include/project.h b/include/project.h index 89306895..ee431a3c 100644 --- a/include/project.h +++ b/include/project.h @@ -90,6 +90,10 @@ public: void saveMapConstantsHeader(); void saveHealLocationStruct(Map*); void saveTilesets(Tileset*, Tileset*); + void saveTilesetMetatileAttributes(Tileset*); + void saveTilesetMetatiles(Tileset*); + void saveTilesetTilesImage(Tileset*); + void saveTilesetPalettes(Tileset*, bool); QList* parseAsm(QString text); QStringList getSongNames(); @@ -129,10 +133,6 @@ public: static int getNumPalettesPrimary(); static int getNumPalettesTotal(); private: - void saveTilesetMetatileAttributes(Tileset*); - void saveTilesetMetatiles(Tileset*); - void saveTilesetTilesImage(Tileset*); - void saveTilesetPalettes(Tileset*, bool); void updateMapLayout(Map*); void readCDefinesSorted(QString, QStringList, QStringList*); void readCDefinesSorted(QString, QStringList, QStringList*, QString, int); diff --git a/include/ui/newtilesetdialog.h b/include/ui/newtilesetdialog.h new file mode 100644 index 00000000..a292c67e --- /dev/null +++ b/include/ui/newtilesetdialog.h @@ -0,0 +1,32 @@ +#ifndef NEWTILESETDIALOG_H +#define NEWTILESETDIALOG_H + +#include +#include "project.h" + +namespace Ui { +class NewTilesetDialog; +} + +class NewTilesetDialog : public QDialog +{ + Q_OBJECT + +public: + explicit NewTilesetDialog(Project *project, QWidget *parent = nullptr); + ~NewTilesetDialog(); + QString path; + QString fullSymbolName; + QString friendlyName; + bool isSecondary; + +private slots: + void NameOrSecondaryChanged(); + void SecondaryChanged(); + +private: + Ui::NewTilesetDialog *ui; + Project *project = nullptr; +}; + +#endif // NEWTILESETDIALOG_H diff --git a/porymap.pro b/porymap.pro index cfd02755..eaf6da10 100644 --- a/porymap.pro +++ b/porymap.pro @@ -60,7 +60,8 @@ SOURCES += src/core/block.cpp \ src/mainwindow.cpp \ src/project.cpp \ src/settings.cpp \ - src/log.cpp + src/log.cpp \ + src/ui/newtilesetdialog.cpp HEADERS += include/core/block.h \ include/core/blockdata.h \ @@ -109,14 +110,16 @@ HEADERS += include/core/block.h \ include/mainwindow.h \ include/project.h \ include/settings.h \ - include/log.h + include/log.h \ + include/ui/newtilesetdialog.h FORMS += forms/mainwindow.ui \ forms/eventpropertiesframe.ui \ forms/tileseteditor.ui \ forms/paletteeditor.ui \ forms/newmappopup.ui \ - forms/aboutporymap.ui + forms/aboutporymap.ui \ + forms/newtilesetdialog.ui RESOURCES += \ resources/images.qrc diff --git a/resources/images.qrc b/resources/images.qrc index 2955b156..1f4fbf12 100644 --- a/resources/images.qrc +++ b/resources/images.qrc @@ -30,5 +30,6 @@ icons/sort_number.ico icons/collapse_all.ico icons/expand_all.ico + images/blank_tileset.png diff --git a/resources/images/blank_tileset.png b/resources/images/blank_tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..f71b1459edb5bebbc1b04c440e60d5568c7f16e8 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Et#0(_4@}`~wQk(%kA+G;{fZ;!o=Q4pM0VG)9 z5n0T@z%2~Ij105pNB{-dOFVsD*&j2D@(D25*ek9A3dv@MM3gw^=jNv7l>oU649-QV zi6yBi3gww484B*6z5ywEsq8>;K~ERQ5RU7~9IQ>D4hIY@Bp8nJ+aJ^y`s@wT<>~6@ Jvd$@?2>=z1DWw1a literal 0 HcmV?d00001 diff --git a/src/core/tileset.cpp b/src/core/tileset.cpp index 430f2582..710eedfb 100644 --- a/src/core/tileset.cpp +++ b/src/core/tileset.cpp @@ -1,6 +1,7 @@ #include "tileset.h" #include "metatile.h" #include "project.h" +#include "log.h" #include #include @@ -86,3 +87,70 @@ QList Tileset::getPalette(int paletteId, Tileset *primaryTileset, Tileset } return paletteTable; } + +bool Tileset::appendToHeaders(QString headerFile, QString friendlyName){ + QFile file(headerFile); + if (!file.open(QIODevice::WriteOnly | QIODevice::Append)) { + logError(QString("Could not write to file \"%1\"").arg(headerFile)); + return false; + } + QString dataString = "\r\n\t.align 2\r\n"; + dataString.append(QString("%1::\r\n").arg(this->name)); + dataString.append(QString("\t.byte %1 @ is compressed\r\n").arg(this->is_compressed)); + dataString.append(QString("\t.byte %1 @ is secondary\r\n").arg(this->is_secondary)); + dataString.append(QString("\t.byte %1\r\n").arg(this->padding)); + dataString.append(QString("\t.4byte gTilesetTiles_%1\r\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gTilesetPalettes_%1\r\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gMetatiles_%1\r\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gMetatileAttributes_%1\r\n").arg(friendlyName)); + dataString.append("\t.4byte NULL\r\n"); + file.write(dataString.toUtf8()); + file.flush(); + file.close(); + return true; +} + +bool Tileset::appendToGraphics(QString graphicsFile, QString friendlyName, bool primary) { + int startPaletteId = primary ? 0 : Project::getNumPalettesPrimary(); + int endPaletteId = primary ? Project::getNumPalettesPrimary() : Project::getNumPalettesTotal(); + QString primaryString = primary ? "primary" : "secondary"; + QFile file(graphicsFile); + if (!file.open(QIODevice::WriteOnly | QIODevice::Append)) { + logError(QString("Could not write to file \"%1\"").arg(graphicsFile)); + return false; + } + QString dataString = "\r\n\t.align 2\r\n"; + dataString.append(QString("gTilesetPalettes_%1::\r\n").arg(friendlyName)); + for(int i = startPaletteId; i < endPaletteId; ++i) { + QString paletteString; + paletteString.sprintf("%02d.gbapal", i); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/palettes/%3\"\r\n").arg(primaryString, friendlyName.toLower(), paletteString)); + + } + dataString.append("\r\n\t.align 2\r\n"); + dataString.append(QString("gTilesetTiles_%1::\r\n").arg(friendlyName)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/tiles.4bpp.lz\"\r\n").arg(primaryString, friendlyName.toLower())); + file.write(dataString.toUtf8()); + file.flush(); + file.close(); + return true; +} + +bool Tileset::appendToMetatiles(QString metatileFile, QString friendlyName, bool primary) { + QString primaryString = primary ? "primary" : "secondary"; + QFile file(metatileFile); + if (!file.open(QIODevice::WriteOnly | QIODevice::Append)) { + logError(QString("Could not write to file \"%1\"").arg(metatileFile)); + return false; + } + QString dataString = "\r\n\t.align 1\r\n"; + dataString.append(QString("gMetatiles_%1::\r\n").arg(friendlyName)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/metatiles.bin\"\r\n").arg(primaryString, friendlyName.toLower())); + dataString.append(QString("\r\n\t.align 1\r\n")); + dataString.append(QString("gMetatileAttributes_%1::\r\n").arg(friendlyName)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/metatile_attributes.bin\"").arg(primaryString, friendlyName.toLower())); + file.write(dataString.toUtf8()); + file.flush(); + file.close(); + return true; +} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 42ee5900..bd2586c7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -10,6 +10,7 @@ #include "currentselectedmetatilespixmapitem.h" #include "customattributestable.h" + #include #include #include @@ -852,6 +853,97 @@ void MainWindow::on_action_NewMap_triggered() { openNewMapPopupWindow(MapSortOrder::Group, 0); } +void MainWindow::on_actionNew_Tileset_triggered() { + NewTilesetDialog *createTilesetDialog = new NewTilesetDialog(editor->project, this); + if(createTilesetDialog->exec() == QDialog::Accepted){ + if(createTilesetDialog->friendlyName.isEmpty()) { + logError(QString("Tried to create a directory with an empty name.")); + QMessageBox msgBox(this); + msgBox.setText("Failed to add new tileset."); + QString message = QString("The given name was empty."); + msgBox.setInformativeText(message); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setIcon(QMessageBox::Icon::Critical); + msgBox.exec(); + return; + } + QString fullDirectoryPath = editor->project->root + createTilesetDialog->path; + QDir directory; + if(directory.exists(fullDirectoryPath)) { + logError(QString("Could not create tileset, could not create directory \"%1\", it already exists.").arg(fullDirectoryPath)); + QMessageBox msgBox(this); + msgBox.setText("Failed to add new tileset."); + QString message = QString("The tileset already exists, view porymap.log for a complete description of the error."); + msgBox.setInformativeText(message); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setIcon(QMessageBox::Icon::Critical); + msgBox.exec(); + return; + } + directory.mkdir(fullDirectoryPath); + directory.mkdir(fullDirectoryPath + "/palettes"); + Tileset *newSet = new Tileset(); + newSet->name = createTilesetDialog->fullSymbolName; + newSet->tilesImagePath = fullDirectoryPath + "/tiles.png"; + newSet->metatiles_path = fullDirectoryPath + "/metatiles.bin"; + newSet->metatile_attrs_path = fullDirectoryPath + "/metatile_attributes.bin"; + newSet->is_secondary = createTilesetDialog->isSecondary ? "TRUE" : "FALSE"; + int numMetaTiles = createTilesetDialog->isSecondary ? (Project::getNumTilesTotal() - Project::getNumTilesPrimary()) : Project::getNumTilesPrimary(); + QImage *tilesImage = new QImage(":/images/blank_tileset.png"); + editor->project->loadTilesetTiles(newSet, *tilesImage); + newSet->metatiles = new QList(); + for(int i = 0; i < numMetaTiles; ++i) { + Metatile *mt = new Metatile(); + for(int j = 0; j < 8; ++j){ + Tile *tile = new Tile(); + //Create a checkerboard-style dummy tileset + if(((i / 8) % 2) == 0) + tile->tile = ((i % 2) == 0) ? 1 : 2; + else + tile->tile = ((i % 2) == 1) ? 1 : 2; + tile->xflip = false; + tile->yflip = false; + tile->palette = 0; + mt->tiles->append(*tile); + } + mt->behavior = 0; + mt->layerType = 0; + + newSet->metatiles->append(mt); + } + newSet->palettes = new QList>(); + newSet->palettePaths = *new QList(); + for(int i = 0; i < 16; ++i) { + QList *currentPal = new QList(); + for(int i = 0; i < 16;++i) { + currentPal->append(qRgb(0,0,0)); + } + newSet->palettes->append(*currentPal); + QString fileName; + fileName.sprintf("%02d.pal", i); + newSet->palettePaths.append(fullDirectoryPath+"/palettes/" + fileName); + } + (*newSet->palettes)[0][1] = qRgb(255,0,255); + newSet->is_compressed = "TRUE"; + newSet->padding = "0"; + editor->project->saveTilesetTilesImage(newSet); + editor->project->saveTilesetMetatiles(newSet); + editor->project->saveTilesetMetatileAttributes(newSet); + editor->project->saveTilesetPalettes(newSet, !createTilesetDialog->isSecondary); + + //append to tileset specific files + + newSet->appendToHeaders(editor->project->root + "/data/tilesets/headers.inc", createTilesetDialog->friendlyName); + newSet->appendToGraphics(editor->project->root + "/data/tilesets/graphics.inc", createTilesetDialog->friendlyName, !createTilesetDialog->isSecondary); + newSet->appendToMetatiles(editor->project->root + "/data/tilesets/metatiles.inc", createTilesetDialog->friendlyName, !createTilesetDialog->isSecondary); + if(!createTilesetDialog->isSecondary) { + this->ui->comboBox_PrimaryTileset->addItem(createTilesetDialog->fullSymbolName); + } else { + this->ui->comboBox_SecondaryTileset->addItem(createTilesetDialog->fullSymbolName); + } + } +} + void MainWindow::onTilesetChanged(QString mapName) { setMap(mapName); diff --git a/src/ui/newtilesetdialog.cpp b/src/ui/newtilesetdialog.cpp new file mode 100644 index 00000000..a2d5f3f4 --- /dev/null +++ b/src/ui/newtilesetdialog.cpp @@ -0,0 +1,40 @@ +#include "newtilesetdialog.h" +#include "ui_newtilesetdialog.h" +#include +#include "project.h" + +NewTilesetDialog::NewTilesetDialog(Project* project, QWidget *parent) : + QDialog(parent), + ui(new Ui::NewTilesetDialog) +{ + ui->setupUi(this); + this->setFixedSize(this->width(), this->height()); + this->project = project; + //only allow characters valid for a symbol + QRegExp expression("[-_.A-Za-z0-9]+$"); + QRegExpValidator *validator = new QRegExpValidator(expression); + this->ui->nameLineEdit->setValidator(validator); + + connect(this->ui->nameLineEdit, &QLineEdit::textChanged, this, &NewTilesetDialog::NameOrSecondaryChanged); + connect(this->ui->typeComboBox, &QComboBox::currentTextChanged, this, &NewTilesetDialog::SecondaryChanged); + //connect(this->ui->toolButton, &QToolButton::clicked, this, &NewTilesetDialog::ChangeFilePath); + this->SecondaryChanged(); +} + +NewTilesetDialog::~NewTilesetDialog() +{ + delete ui; +} + +void NewTilesetDialog::SecondaryChanged(){ + this->isSecondary = (this->ui->typeComboBox->currentIndex() == 1); + NameOrSecondaryChanged(); +} + +void NewTilesetDialog::NameOrSecondaryChanged() { + this->friendlyName = this->ui->nameLineEdit->text(); + this->fullSymbolName = "gTileset_" + this->friendlyName; + this->ui->symbolNameLineEdit->setText(this->fullSymbolName); + this->path = QString("/data/tilesets/") + (this->isSecondary ? "secondary/" : "primary/") + this->friendlyName.toLower(); + this->ui->pathLineEdit->setText(this->path); +} From af96054bafcf7a548f355e79a7e6257d2e4097ee Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 01:56:00 +0100 Subject: [PATCH 07/15] Save all tilesets because the loader wants to have them all --- forms/newmappopup.ui | 51 +++++++++++++++++++++++--------------------- src/core/tileset.cpp | 4 +--- src/project.cpp | 4 +--- 3 files changed, 29 insertions(+), 30 deletions(-) diff --git a/forms/newmappopup.ui b/forms/newmappopup.ui index 50208a48..9cab8872 100644 --- a/forms/newmappopup.ui +++ b/forms/newmappopup.ui @@ -7,22 +7,25 @@ 0 0 410 - 515 + 508 New Map Options - - false - false + + + 0 + 0 + + QFrame::StyledPanel @@ -36,6 +39,13 @@ 12 + + + + Name + + + @@ -186,13 +196,6 @@ - - - - - - - @@ -200,13 +203,6 @@ - - - - - - - @@ -214,17 +210,24 @@ - - + + - - + + - Name + + + + + + + + @@ -246,7 +249,7 @@ 0 0 410 - 22 + 21 diff --git a/src/core/tileset.cpp b/src/core/tileset.cpp index 710eedfb..ae84733f 100644 --- a/src/core/tileset.cpp +++ b/src/core/tileset.cpp @@ -111,8 +111,6 @@ bool Tileset::appendToHeaders(QString headerFile, QString friendlyName){ } bool Tileset::appendToGraphics(QString graphicsFile, QString friendlyName, bool primary) { - int startPaletteId = primary ? 0 : Project::getNumPalettesPrimary(); - int endPaletteId = primary ? Project::getNumPalettesPrimary() : Project::getNumPalettesTotal(); QString primaryString = primary ? "primary" : "secondary"; QFile file(graphicsFile); if (!file.open(QIODevice::WriteOnly | QIODevice::Append)) { @@ -121,7 +119,7 @@ bool Tileset::appendToGraphics(QString graphicsFile, QString friendlyName, bool } QString dataString = "\r\n\t.align 2\r\n"; dataString.append(QString("gTilesetPalettes_%1::\r\n").arg(friendlyName)); - for(int i = startPaletteId; i < endPaletteId; ++i) { + for(int i = 0; i < Project::getNumPalettesTotal(); ++i) { QString paletteString; paletteString.sprintf("%02d.gbapal", i); dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/palettes/%3\"\r\n").arg(primaryString, friendlyName.toLower(), paletteString)); diff --git a/src/project.cpp b/src/project.cpp index d763efba..07c7393f 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -721,9 +721,7 @@ void Project::saveTilesetTilesImage(Tileset *tileset) { } void Project::saveTilesetPalettes(Tileset *tileset, bool primary) { - int startPaletteId = primary ? 0 : Project::getNumPalettesPrimary(); - int endPaletteId = primary ? Project::getNumPalettesPrimary() : Project::getNumPalettesTotal(); - for (int i = startPaletteId; i < endPaletteId; i++) { + for (int i = 0; i < Project::getNumPalettesTotal(); i++) { QString filepath = tileset->palettePaths.at(i); QString content = "JASC-PAL\r\n"; content += "0100\r\n"; From 092eb2b9aac5d2ff04e3784426e7cd9822b592aa Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 02:40:41 +0100 Subject: [PATCH 08/15] add ellipsis to new map and new tileset --- forms/mainwindow.ui | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index dbe3bc20..5c16d225 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -2798,7 +2798,7 @@ - New Map + New Map... Ctrl+N @@ -2979,7 +2979,7 @@ - New Tileset + New Tileset... From 45be05426cd2a940e236c04433eb6aa8fd2c382a Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 02:49:45 +0100 Subject: [PATCH 09/15] add shortcut for adding a tileset --- forms/mainwindow.ui | 3 +++ 1 file changed, 3 insertions(+) diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index 5c16d225..28fe1aa7 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -2981,6 +2981,9 @@ New Tileset... + + Ctrl+Shift+N + From cf9a4bc0fcd6fd9770150b4a53fb1b95cc6e4fa3 Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 02:56:04 +0100 Subject: [PATCH 10/15] dont allow primary/secondary tileset with the same (friendly) name, clearify duplicate error message --- src/mainwindow.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index bd2586c7..b2649230 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -868,12 +868,13 @@ void MainWindow::on_actionNew_Tileset_triggered() { return; } QString fullDirectoryPath = editor->project->root + createTilesetDialog->path; + QString auxilaryPath = editor->project->root + "/data/tilesets/" + (createTilesetDialog->isSecondary ? "primary/" : "secondary/") + createTilesetDialog->friendlyName.toLower(); QDir directory; - if(directory.exists(fullDirectoryPath)) { - logError(QString("Could not create tileset, could not create directory \"%1\", it already exists.").arg(fullDirectoryPath)); + if(directory.exists(fullDirectoryPath) || directory.exists(auxilaryPath)) { + logError(QString("Could not create tileset \"%1\", it already exists.").arg(createTilesetDialog->friendlyName)); QMessageBox msgBox(this); msgBox.setText("Failed to add new tileset."); - QString message = QString("The tileset already exists, view porymap.log for a complete description of the error."); + QString message = QString("The tileset \"%1\" already exists.").arg(createTilesetDialog->friendlyName); msgBox.setInformativeText(message); msgBox.setDefaultButton(QMessageBox::Ok); msgBox.setIcon(QMessageBox::Icon::Critical); From be371aed17b0d5b5099b271e6ae49a52a576029c Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 03:01:38 +0100 Subject: [PATCH 11/15] add success message to tileset creation --- src/mainwindow.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index b2649230..309b533c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -942,6 +942,13 @@ void MainWindow::on_actionNew_Tileset_triggered() { } else { this->ui->comboBox_SecondaryTileset->addItem(createTilesetDialog->fullSymbolName); } + QMessageBox msgBox(this); + msgBox.setText("Successfully created tileset."); + QString message = QString("Tileset \"%1\" was created successfully.").arg(createTilesetDialog->friendlyName); + msgBox.setInformativeText(message); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setIcon(QMessageBox::Icon::Information); + msgBox.exec(); } } From b8915995b9536fa6c39b4a93f0faa21a31bf8cf1 Mon Sep 17 00:00:00 2001 From: Karathan Date: Fri, 22 Mar 2019 03:33:53 +0100 Subject: [PATCH 12/15] fix line endings --- src/core/tileset.cpp | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/core/tileset.cpp b/src/core/tileset.cpp index ae84733f..be6792b9 100644 --- a/src/core/tileset.cpp +++ b/src/core/tileset.cpp @@ -94,16 +94,16 @@ bool Tileset::appendToHeaders(QString headerFile, QString friendlyName){ logError(QString("Could not write to file \"%1\"").arg(headerFile)); return false; } - QString dataString = "\r\n\t.align 2\r\n"; - dataString.append(QString("%1::\r\n").arg(this->name)); - dataString.append(QString("\t.byte %1 @ is compressed\r\n").arg(this->is_compressed)); - dataString.append(QString("\t.byte %1 @ is secondary\r\n").arg(this->is_secondary)); - dataString.append(QString("\t.byte %1\r\n").arg(this->padding)); - dataString.append(QString("\t.4byte gTilesetTiles_%1\r\n").arg(friendlyName)); - dataString.append(QString("\t.4byte gTilesetPalettes_%1\r\n").arg(friendlyName)); - dataString.append(QString("\t.4byte gMetatiles_%1\r\n").arg(friendlyName)); - dataString.append(QString("\t.4byte gMetatileAttributes_%1\r\n").arg(friendlyName)); - dataString.append("\t.4byte NULL\r\n"); + QString dataString = "\n\t.align 2\n"; + dataString.append(QString("%1::\n").arg(this->name)); + dataString.append(QString("\t.byte %1 @ is compressed\n").arg(this->is_compressed)); + dataString.append(QString("\t.byte %1 @ is secondary\n").arg(this->is_secondary)); + dataString.append(QString("\t.byte %1\n").arg(this->padding)); + dataString.append(QString("\t.4byte gTilesetTiles_%1\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gTilesetPalettes_%1\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gMetatiles_%1\n").arg(friendlyName)); + dataString.append(QString("\t.4byte gMetatileAttributes_%1\n").arg(friendlyName)); + dataString.append("\t.4byte NULL\n"); file.write(dataString.toUtf8()); file.flush(); file.close(); @@ -117,17 +117,17 @@ bool Tileset::appendToGraphics(QString graphicsFile, QString friendlyName, bool logError(QString("Could not write to file \"%1\"").arg(graphicsFile)); return false; } - QString dataString = "\r\n\t.align 2\r\n"; - dataString.append(QString("gTilesetPalettes_%1::\r\n").arg(friendlyName)); + QString dataString = "\n\t.align 2\n"; + dataString.append(QString("gTilesetPalettes_%1::\n").arg(friendlyName)); for(int i = 0; i < Project::getNumPalettesTotal(); ++i) { QString paletteString; paletteString.sprintf("%02d.gbapal", i); - dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/palettes/%3\"\r\n").arg(primaryString, friendlyName.toLower(), paletteString)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/palettes/%3\"\n").arg(primaryString, friendlyName.toLower(), paletteString)); } - dataString.append("\r\n\t.align 2\r\n"); - dataString.append(QString("gTilesetTiles_%1::\r\n").arg(friendlyName)); - dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/tiles.4bpp.lz\"\r\n").arg(primaryString, friendlyName.toLower())); + dataString.append("\n\t.align 2\n"); + dataString.append(QString("gTilesetTiles_%1::\n").arg(friendlyName)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/tiles.4bpp.lz\"\n").arg(primaryString, friendlyName.toLower())); file.write(dataString.toUtf8()); file.flush(); file.close(); @@ -141,11 +141,11 @@ bool Tileset::appendToMetatiles(QString metatileFile, QString friendlyName, bool logError(QString("Could not write to file \"%1\"").arg(metatileFile)); return false; } - QString dataString = "\r\n\t.align 1\r\n"; - dataString.append(QString("gMetatiles_%1::\r\n").arg(friendlyName)); - dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/metatiles.bin\"\r\n").arg(primaryString, friendlyName.toLower())); - dataString.append(QString("\r\n\t.align 1\r\n")); - dataString.append(QString("gMetatileAttributes_%1::\r\n").arg(friendlyName)); + QString dataString = "\n\t.align 1\n"; + dataString.append(QString("gMetatiles_%1::\n").arg(friendlyName)); + dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/metatiles.bin\"\n").arg(primaryString, friendlyName.toLower())); + dataString.append(QString("\n\t.align 1\n")); + dataString.append(QString("gMetatileAttributes_%1::\n").arg(friendlyName)); dataString.append(QString("\t.incbin \"data/tilesets/%1/%2/metatile_attributes.bin\"").arg(primaryString, friendlyName.toLower())); file.write(dataString.toUtf8()); file.flush(); From 37a688b32a83f8499c1d1a6e47795ec9ccf43946 Mon Sep 17 00:00:00 2001 From: Karathan Date: Sat, 23 Mar 2019 15:17:44 +0100 Subject: [PATCH 13/15] fix nasty padding misalign --- src/core/tileset.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/tileset.cpp b/src/core/tileset.cpp index be6792b9..a6a04229 100644 --- a/src/core/tileset.cpp +++ b/src/core/tileset.cpp @@ -98,7 +98,7 @@ bool Tileset::appendToHeaders(QString headerFile, QString friendlyName){ dataString.append(QString("%1::\n").arg(this->name)); dataString.append(QString("\t.byte %1 @ is compressed\n").arg(this->is_compressed)); dataString.append(QString("\t.byte %1 @ is secondary\n").arg(this->is_secondary)); - dataString.append(QString("\t.byte %1\n").arg(this->padding)); + dataString.append(QString("\t.2byte %1\n").arg(this->padding)); dataString.append(QString("\t.4byte gTilesetTiles_%1\n").arg(friendlyName)); dataString.append(QString("\t.4byte gTilesetPalettes_%1\n").arg(friendlyName)); dataString.append(QString("\t.4byte gMetatiles_%1\n").arg(friendlyName)); From 8c3c498ac95f46ea9e8a9b4885b519085605d961 Mon Sep 17 00:00:00 2001 From: Karathan Date: Sat, 23 Mar 2019 15:44:21 +0100 Subject: [PATCH 14/15] further clearify error messages, and add sanity symbol checking --- src/mainwindow.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 309b533c..7e1dc184 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -868,13 +868,24 @@ void MainWindow::on_actionNew_Tileset_triggered() { return; } QString fullDirectoryPath = editor->project->root + createTilesetDialog->path; - QString auxilaryPath = editor->project->root + "/data/tilesets/" + (createTilesetDialog->isSecondary ? "primary/" : "secondary/") + createTilesetDialog->friendlyName.toLower(); QDir directory; - if(directory.exists(fullDirectoryPath) || directory.exists(auxilaryPath)) { - logError(QString("Could not create tileset \"%1\", it already exists.").arg(createTilesetDialog->friendlyName)); + if(directory.exists(fullDirectoryPath)) { + logError(QString("Could not create tileset \"%1\", the folder \"%2\" already exists.").arg(createTilesetDialog->friendlyName, fullDirectoryPath)); QMessageBox msgBox(this); msgBox.setText("Failed to add new tileset."); - QString message = QString("The tileset \"%1\" already exists.").arg(createTilesetDialog->friendlyName); + QString message = QString("The folder for tileset \"%1\" already exists. View porymap.log for specific errors.").arg(createTilesetDialog->friendlyName); + msgBox.setInformativeText(message); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setIcon(QMessageBox::Icon::Critical); + msgBox.exec(); + return; + } + QMap tilesets = this->editor->project->getTilesets(); + if(tilesets.value("primary").contains(createTilesetDialog->fullSymbolName) || tilesets.value("secondary").contains(createTilesetDialog->fullSymbolName)) { + logError(QString("Could not create tileset \"%1\", the symbol \"%2\" already exists.").arg(createTilesetDialog->friendlyName, createTilesetDialog->fullSymbolName)); + QMessageBox msgBox(this); + msgBox.setText("Failed to add new tileset."); + QString message = QString("The symbol for tileset \"%1\" (\"%2\") already exists.").arg(createTilesetDialog->friendlyName, createTilesetDialog->fullSymbolName); msgBox.setInformativeText(message); msgBox.setDefaultButton(QMessageBox::Ok); msgBox.setIcon(QMessageBox::Icon::Critical); From e305e42e6114093bb0adb313b82dfd559cf65ebc Mon Sep 17 00:00:00 2001 From: Karathan Date: Sat, 23 Mar 2019 15:49:30 +0100 Subject: [PATCH 15/15] rename getTilesets->getTilesetLabels --- include/project.h | 2 +- src/mainwindow.cpp | 4 ++-- src/project.cpp | 2 +- src/ui/newmappopup.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/project.h b/include/project.h index ee431a3c..c63ff766 100644 --- a/include/project.h +++ b/include/project.h @@ -98,7 +98,7 @@ public: QList* parseAsm(QString text); QStringList getSongNames(); QStringList getVisibilities(); - QMap getTilesets(); + QMap getTilesetLabels(); void readTilesetProperties(); void readRegionMapSections(); void readItemNames(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7e1dc184..c112fff0 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -469,7 +469,7 @@ void MainWindow::displayMapProperties() { ui->comboBox_Location->addItems(*project->regionMapSections); ui->comboBox_Location->setCurrentText(map->location); - QMap tilesets = project->getTilesets(); + QMap tilesets = project->getTilesetLabels(); ui->comboBox_PrimaryTileset->addItems(tilesets.value("primary")); ui->comboBox_PrimaryTileset->setCurrentText(map->layout->tileset_primary_label); ui->comboBox_SecondaryTileset->addItems(tilesets.value("secondary")); @@ -880,7 +880,7 @@ void MainWindow::on_actionNew_Tileset_triggered() { msgBox.exec(); return; } - QMap tilesets = this->editor->project->getTilesets(); + QMap tilesets = this->editor->project->getTilesetLabels(); if(tilesets.value("primary").contains(createTilesetDialog->fullSymbolName) || tilesets.value("secondary").contains(createTilesetDialog->fullSymbolName)) { logError(QString("Could not create tileset \"%1\", the symbol \"%2\" already exists.").arg(createTilesetDialog->friendlyName, createTilesetDialog->fullSymbolName)); QMessageBox msgBox(this); diff --git a/src/project.cpp b/src/project.cpp index 07c7393f..60ff3273 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -1407,7 +1407,7 @@ QStringList Project::getVisibilities() { return names; } -QMap Project::getTilesets() { +QMap Project::getTilesetLabels() { QMap allTilesets; QStringList primaryTilesets; QStringList secondaryTilesets; diff --git a/src/ui/newmappopup.cpp b/src/ui/newmappopup.cpp index 6978932b..db2d9134 100644 --- a/src/ui/newmappopup.cpp +++ b/src/ui/newmappopup.cpp @@ -48,7 +48,7 @@ void NewMapPopup::useLayout(QString layoutId) { void NewMapPopup::setDefaultValues(int groupNum, QString mapSec) { ui->lineEdit_NewMap_Name->setText(project->getNewMapName()); - QMap tilesets = project->getTilesets(); + QMap tilesets = project->getTilesetLabels(); ui->comboBox_NewMap_Primary_Tileset->addItems(tilesets.value("primary")); ui->comboBox_NewMap_Secondary_Tileset->addItems(tilesets.value("secondary"));