fix new map from layout extra files
This commit is contained in:
parent
bc75cff5c6
commit
ca03167377
3 changed files with 12 additions and 9 deletions
|
@ -43,6 +43,7 @@ public:
|
|||
QString battle_scene;
|
||||
MapLayout *layout;
|
||||
bool isPersistedToFile = true;
|
||||
bool needsLayoutDir = true;
|
||||
QImage collision_image;
|
||||
QPixmap collision_pixmap;
|
||||
QImage image;
|
||||
|
|
|
@ -841,9 +841,14 @@ void Project::saveMap(Map *map) {
|
|||
logError(QString("Error: failed to create directory for new map: '%1'").arg(newMapDataDir));
|
||||
}
|
||||
|
||||
QString newLayoutDir = QString(root + "/data/layouts/%1").arg(map->name);
|
||||
if (!QDir::root().mkdir(newLayoutDir)) {
|
||||
logError(QString("Error: failed to create directory for new layout: '%1'").arg(newLayoutDir));
|
||||
if (map->needsLayoutDir) {
|
||||
QString newLayoutDir = QString(root + "/data/layouts/%1").arg(map->name);
|
||||
if (!QDir::root().mkdir(newLayoutDir)) {
|
||||
logError(QString("Error: failed to create directory for new layout: '%1'").arg(newLayoutDir));
|
||||
}
|
||||
// Simply append to data/layouts.inc.
|
||||
QString layout_text = QString("\t.include \"data/layouts/%1/layout.inc\"\n").arg(map->layout->name);
|
||||
appendTextFile(root + "/data/layouts.inc", layout_text);
|
||||
}
|
||||
|
||||
// TODO: In the future, these files needs more structure to allow for proper parsing/saving.
|
||||
|
@ -866,10 +871,6 @@ void Project::saveMap(Map *map) {
|
|||
// Simply append to data/maps/headers.inc.
|
||||
text = QString("\t.include \"data/maps/%1/header.inc\"\n").arg(map->name);
|
||||
appendTextFile(root + "/data/maps/headers.inc", text);
|
||||
|
||||
// Simply append to data/layouts.inc.
|
||||
text = QString("\t.include \"data/layouts/%1/layout.inc\"\n").arg(map->layout->name);
|
||||
appendTextFile(root + "/data/layouts.inc", text);
|
||||
}
|
||||
|
||||
saveMapBorder(map);
|
||||
|
|
|
@ -127,9 +127,7 @@ void NewMapPopup::on_pushButton_NewMap_Accept_clicked() {
|
|||
layout->tileset_primary_label = this->ui->comboBox_NewMap_Primary_Tileset->currentText();
|
||||
layout->tileset_secondary_label = this->ui->comboBox_NewMap_Secondary_Tileset->currentText();
|
||||
layout->border_label = QString("%1_MapBorder").arg(newMap->name);
|
||||
layout->border_path = QString("data/layouts/%1/border.bin").arg(newMap->name);
|
||||
layout->blockdata_label = QString("%1_MapBlockdata").arg(newMap->name);
|
||||
layout->blockdata_path = QString("data/layouts/%1/map.bin").arg(newMap->name);
|
||||
|
||||
if (changeLayout) {
|
||||
layout->label = layoutName;
|
||||
|
@ -138,7 +136,10 @@ void NewMapPopup::on_pushButton_NewMap_Accept_clicked() {
|
|||
QString border_path = QString("%1/data/layout/%2/border.bin").arg(project->root).arg(MapLayout::getNameFromLabel(layoutName));
|
||||
layout->blockdata = project->readBlockdata(block_path);
|
||||
layout->border = project->readBlockdata(border_path);
|
||||
newMap->needsLayoutDir = false;
|
||||
} else {
|
||||
layout->border_path = QString("data/layouts/%1/border.bin").arg(newMap->name);
|
||||
layout->blockdata_path = QString("data/layouts/%1/map.bin").arg(newMap->name);
|
||||
layout->label = QString("%1_Layout").arg(newMap->name);
|
||||
layout->name = MapLayout::getNameFromLabel(layout->label);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue