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;
|
QString battle_scene;
|
||||||
MapLayout *layout;
|
MapLayout *layout;
|
||||||
bool isPersistedToFile = true;
|
bool isPersistedToFile = true;
|
||||||
|
bool needsLayoutDir = true;
|
||||||
QImage collision_image;
|
QImage collision_image;
|
||||||
QPixmap collision_pixmap;
|
QPixmap collision_pixmap;
|
||||||
QImage image;
|
QImage image;
|
||||||
|
|
|
@ -841,10 +841,15 @@ void Project::saveMap(Map *map) {
|
||||||
logError(QString("Error: failed to create directory for new map: '%1'").arg(newMapDataDir));
|
logError(QString("Error: failed to create directory for new map: '%1'").arg(newMapDataDir));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (map->needsLayoutDir) {
|
||||||
QString newLayoutDir = QString(root + "/data/layouts/%1").arg(map->name);
|
QString newLayoutDir = QString(root + "/data/layouts/%1").arg(map->name);
|
||||||
if (!QDir::root().mkdir(newLayoutDir)) {
|
if (!QDir::root().mkdir(newLayoutDir)) {
|
||||||
logError(QString("Error: failed to create directory for new layout: '%1'").arg(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.
|
// TODO: In the future, these files needs more structure to allow for proper parsing/saving.
|
||||||
// Create file data/maps/<map_name>/scripts.inc
|
// Create file data/maps/<map_name>/scripts.inc
|
||||||
|
@ -866,10 +871,6 @@ void Project::saveMap(Map *map) {
|
||||||
// Simply append to data/maps/headers.inc.
|
// Simply append to data/maps/headers.inc.
|
||||||
text = QString("\t.include \"data/maps/%1/header.inc\"\n").arg(map->name);
|
text = QString("\t.include \"data/maps/%1/header.inc\"\n").arg(map->name);
|
||||||
appendTextFile(root + "/data/maps/headers.inc", text);
|
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);
|
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_primary_label = this->ui->comboBox_NewMap_Primary_Tileset->currentText();
|
||||||
layout->tileset_secondary_label = this->ui->comboBox_NewMap_Secondary_Tileset->currentText();
|
layout->tileset_secondary_label = this->ui->comboBox_NewMap_Secondary_Tileset->currentText();
|
||||||
layout->border_label = QString("%1_MapBorder").arg(newMap->name);
|
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_label = QString("%1_MapBlockdata").arg(newMap->name);
|
||||||
layout->blockdata_path = QString("data/layouts/%1/map.bin").arg(newMap->name);
|
|
||||||
|
|
||||||
if (changeLayout) {
|
if (changeLayout) {
|
||||||
layout->label = layoutName;
|
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));
|
QString border_path = QString("%1/data/layout/%2/border.bin").arg(project->root).arg(MapLayout::getNameFromLabel(layoutName));
|
||||||
layout->blockdata = project->readBlockdata(block_path);
|
layout->blockdata = project->readBlockdata(block_path);
|
||||||
layout->border = project->readBlockdata(border_path);
|
layout->border = project->readBlockdata(border_path);
|
||||||
|
newMap->needsLayoutDir = false;
|
||||||
} else {
|
} 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->label = QString("%1_Layout").arg(newMap->name);
|
||||||
layout->name = MapLayout::getNameFromLabel(layout->label);
|
layout->name = MapLayout::getNameFromLabel(layout->label);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue