From 239f3935bfb3cd964dcd46d1f67580d86c84811d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 14 Oct 2022 18:11:11 -0400 Subject: [PATCH] Stop treating map header bools as strings --- forms/mainwindow.ui | 4 +-- include/core/map.h | 12 ++++---- include/mainwindow.h | 2 +- src/mainwindow.cpp | 65 +++++++++++++--------------------------- src/project.cpp | 35 ++++++++++------------ src/scriptapi/apimap.cpp | 12 ++++---- src/ui/newmappopup.cpp | 12 ++++---- 7 files changed, 57 insertions(+), 85 deletions(-) diff --git a/forms/mainwindow.ui b/forms/mainwindow.ui index f7e9e245..0a71bce5 100644 --- a/forms/mainwindow.ui +++ b/forms/mainwindow.ui @@ -2013,14 +2013,14 @@ - + Allow Dig & Escape Rope - + <html><head/><body><p>Allows the player to use Dig or Escape Rope</p></body></html> diff --git a/include/core/map.h b/include/core/map.h index 717fd0f3..f87dec07 100644 --- a/include/core/map.h +++ b/include/core/map.h @@ -42,14 +42,13 @@ public: QString song; QString layoutId; QString location; - QString requiresFlash; - QString isFlyable; + bool requiresFlash; QString weather; QString type; - QString show_location; - QString allowRunning; - QString allowBiking; - QString allowEscapeRope; + bool show_location; + bool allowRunning; + bool allowBiking; + bool allowEscaping; int floorNumber = 0; QString battle_scene; QString sharedEventsMap = ""; @@ -59,6 +58,7 @@ public: bool isPersistedToFile = true; bool hasUnsavedDataChanges = false; bool needsLayoutDir = true; + bool needsHealLocation = false; QImage collision_image; QPixmap collision_pixmap; QImage image; diff --git a/include/mainwindow.h b/include/mainwindow.h index 89319d0e..16bc3cc8 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -194,7 +194,7 @@ private slots: void on_checkBox_ShowLocation_stateChanged(int selected); void on_checkBox_AllowRunning_stateChanged(int selected); void on_checkBox_AllowBiking_stateChanged(int selected); - void on_checkBox_AllowEscapeRope_stateChanged(int selected); + void on_checkBox_AllowEscaping_stateChanged(int selected); void on_spinBox_FloorNumber_valueChanged(int offset); void on_actionUse_Encounter_Json_triggered(bool checked); void on_actionMonitor_Project_Files_triggered(bool checked); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 1262face..9d8d87e5 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -366,28 +366,28 @@ void MainWindow::setProjectSpecificUIVisibility() case BaseGameVersion::pokeruby: ui->checkBox_AllowRunning->setVisible(false); ui->checkBox_AllowBiking->setVisible(false); - ui->checkBox_AllowEscapeRope->setVisible(false); + ui->checkBox_AllowEscaping->setVisible(false); ui->label_AllowRunning->setVisible(false); ui->label_AllowBiking->setVisible(false); - ui->label_AllowEscapeRope->setVisible(false); + ui->label_AllowEscaping->setVisible(false); ui->actionRegion_Map_Editor->setVisible(true); break; case BaseGameVersion::pokeemerald: ui->checkBox_AllowRunning->setVisible(true); ui->checkBox_AllowBiking->setVisible(true); - ui->checkBox_AllowEscapeRope->setVisible(true); + ui->checkBox_AllowEscaping->setVisible(true); ui->label_AllowRunning->setVisible(true); ui->label_AllowBiking->setVisible(true); - ui->label_AllowEscapeRope->setVisible(true); + ui->label_AllowEscaping->setVisible(true); ui->actionRegion_Map_Editor->setVisible(true); break; case BaseGameVersion::pokefirered: ui->checkBox_AllowRunning->setVisible(true); ui->checkBox_AllowBiking->setVisible(true); - ui->checkBox_AllowEscapeRope->setVisible(true); + ui->checkBox_AllowEscaping->setVisible(true); ui->label_AllowRunning->setVisible(true); ui->label_AllowBiking->setVisible(true); - ui->label_AllowEscapeRope->setVisible(true); + ui->label_AllowEscaping->setVisible(true); // TODO: pokefirered is not set up for the Region Map Editor and vice versa. // porymap will crash on attempt. Remove below once resolved ui->actionRegion_Map_Editor->setVisible(true); @@ -763,13 +763,13 @@ void MainWindow::displayMapProperties() { const QSignalBlocker blockerA(ui->checkBox_AllowRunning); const QSignalBlocker blockerB(ui->checkBox_AllowBiking); const QSignalBlocker blockerC(ui->spinBox_FloorNumber); - const QSignalBlocker blockerD(ui->checkBox_AllowEscapeRope); + const QSignalBlocker blockerD(ui->checkBox_AllowEscaping); ui->checkBox_Visibility->setChecked(false); ui->checkBox_ShowLocation->setChecked(false); ui->checkBox_AllowRunning->setChecked(false); ui->checkBox_AllowBiking->setChecked(false); - ui->checkBox_AllowEscapeRope->setChecked(false); + ui->checkBox_AllowEscaping->setChecked(false); if (!editor || !editor->map || !editor->project) { ui->frame_3->setEnabled(false); return; @@ -787,15 +787,15 @@ void MainWindow::displayMapProperties() { ui->comboBox_Song->setCurrentText(map->song); ui->comboBox_Location->setCurrentText(map->location); - ui->checkBox_Visibility->setChecked(ParseUtil::gameStringToBool(map->requiresFlash)); + ui->checkBox_Visibility->setChecked(map->requiresFlash); ui->comboBox_Weather->setCurrentText(map->weather); ui->comboBox_Type->setCurrentText(map->type); ui->comboBox_BattleScene->setCurrentText(map->battle_scene); - ui->checkBox_ShowLocation->setChecked(ParseUtil::gameStringToBool(map->show_location)); + ui->checkBox_ShowLocation->setChecked(map->show_location); if (projectConfig.getBaseGameVersion() != BaseGameVersion::pokeruby) { - ui->checkBox_AllowRunning->setChecked(ParseUtil::gameStringToBool(map->allowRunning)); - ui->checkBox_AllowBiking->setChecked(ParseUtil::gameStringToBool(map->allowBiking)); - ui->checkBox_AllowEscapeRope->setChecked(ParseUtil::gameStringToBool(map->allowEscapeRope)); + ui->checkBox_AllowRunning->setChecked(map->allowRunning); + ui->checkBox_AllowBiking->setChecked(map->allowBiking); + ui->checkBox_AllowEscaping->setChecked(map->allowEscaping); } ui->spinBox_FloorNumber->setValue(map->floorNumber); @@ -854,12 +854,7 @@ void MainWindow::on_comboBox_BattleScene_currentTextChanged(const QString &battl void MainWindow::on_checkBox_Visibility_stateChanged(int selected) { if (editor && editor->map) { - bool checked = selected == Qt::Checked; - if (checked) { - editor->map->requiresFlash = "TRUE"; - } else { - editor->map->requiresFlash = "FALSE"; - } + editor->map->requiresFlash = (selected == Qt::Checked); markMapEdited(); } } @@ -867,12 +862,7 @@ void MainWindow::on_checkBox_Visibility_stateChanged(int selected) void MainWindow::on_checkBox_ShowLocation_stateChanged(int selected) { if (editor && editor->map) { - bool checked = selected == Qt::Checked; - if (checked) { - editor->map->show_location = "TRUE"; - } else { - editor->map->show_location = "FALSE"; - } + editor->map->show_location = (selected == Qt::Checked); markMapEdited(); } } @@ -880,12 +870,7 @@ void MainWindow::on_checkBox_ShowLocation_stateChanged(int selected) void MainWindow::on_checkBox_AllowRunning_stateChanged(int selected) { if (editor && editor->map) { - bool checked = selected == Qt::Checked; - if (checked) { - editor->map->allowRunning = "1"; - } else { - editor->map->allowRunning = "0"; - } + editor->map->allowRunning = (selected == Qt::Checked); markMapEdited(); } } @@ -893,25 +878,15 @@ void MainWindow::on_checkBox_AllowRunning_stateChanged(int selected) void MainWindow::on_checkBox_AllowBiking_stateChanged(int selected) { if (editor && editor->map) { - bool checked = selected == Qt::Checked; - if (checked) { - editor->map->allowBiking = "1"; - } else { - editor->map->allowBiking = "0"; - } + editor->map->allowBiking = (selected == Qt::Checked); markMapEdited(); } } -void MainWindow::on_checkBox_AllowEscapeRope_stateChanged(int selected) +void MainWindow::on_checkBox_AllowEscaping_stateChanged(int selected) { if (editor && editor->map) { - bool checked = selected == Qt::Checked; - if (checked) { - editor->map->allowEscapeRope = "1"; - } else { - editor->map->allowEscapeRope = "0"; - } + editor->map->allowEscaping = (selected == Qt::Checked); markMapEdited(); } } @@ -1196,7 +1171,7 @@ void MainWindow::onNewMapCreated() { sortMapList(); setMap(newMapName, true); - if (ParseUtil::gameStringToBool(newMap->isFlyable)) { + if (newMap->needsHealLocation) { addNewEvent(EventType::HealLocation); editor->project->saveHealLocationStruct(newMap); editor->save();// required diff --git a/src/project.cpp b/src/project.cpp index 55243012..0a3007ec 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -193,16 +193,15 @@ bool Project::loadMapData(Map* map) { map->song = mapObj["music"].toString(); map->layoutId = mapObj["layout"].toString(); map->location = mapObj["region_map_section"].toString(); - map->requiresFlash = QString::number(mapObj["requires_flash"].toBool()); + map->requiresFlash = mapObj["requires_flash"].toBool(); map->weather = mapObj["weather"].toString(); map->type = mapObj["map_type"].toString(); - map->requiresFlash = QString::number(mapObj["requires_flash"].toBool()); - map->show_location = QString::number(mapObj["show_map_name"].toBool()); + map->show_location = mapObj["show_map_name"].toBool(); map->battle_scene = mapObj["battle_scene"].toString(); if (projectConfig.getBaseGameVersion() != BaseGameVersion::pokeruby) { - map->allowBiking = QString::number(mapObj["allow_cycling"].toBool()); - map->allowEscapeRope = QString::number(mapObj["allow_escaping"].toBool()); - map->allowRunning = QString::number(mapObj["allow_running"].toBool()); + map->allowBiking = mapObj["allow_cycling"].toBool(); + map->allowEscaping = mapObj["allow_escaping"].toBool(); + map->allowRunning = mapObj["allow_running"].toBool(); } if (projectConfig.getFloorNumberEnabled()) { map->floorNumber = mapObj["floor_number"].toInt(); @@ -453,17 +452,15 @@ QString Project::readMapLocation(QString map_name) { void Project::setNewMapHeader(Map* map, int mapIndex) { map->layoutId = QString("%1").arg(mapIndex); map->location = mapSectionValueToName.value(0); - map->requiresFlash = "FALSE"; + map->requiresFlash = false; map->weather = weatherNames.value(0, "WEATHER_NONE"); map->type = mapTypes.value(0, "MAP_TYPE_NONE"); map->song = defaultSong; - if (projectConfig.getBaseGameVersion() == BaseGameVersion::pokeruby) { - map->show_location = "TRUE"; - } else { - map->allowBiking = "1"; - map->allowEscapeRope = "0"; - map->allowRunning = "1"; - map->show_location = "1"; + map->show_location = true; + if (projectConfig.getBaseGameVersion() != BaseGameVersion::pokeruby) { + map->allowBiking = true; + map->allowEscaping = false; + map->allowRunning = true; } if (projectConfig.getFloorNumberEnabled()) { map->floorNumber = 0; @@ -1341,15 +1338,15 @@ void Project::saveMap(Map *map) { mapObj["layout"] = map->layout->id; mapObj["music"] = map->song; mapObj["region_map_section"] = map->location; - mapObj["requires_flash"] = ParseUtil::gameStringToBool(map->requiresFlash); + mapObj["requires_flash"] = map->requiresFlash; mapObj["weather"] = map->weather; mapObj["map_type"] = map->type; if (projectConfig.getBaseGameVersion() != BaseGameVersion::pokeruby) { - mapObj["allow_cycling"] = ParseUtil::gameStringToBool(map->allowBiking); - mapObj["allow_escaping"] = ParseUtil::gameStringToBool(map->allowEscapeRope); - mapObj["allow_running"] = ParseUtil::gameStringToBool(map->allowRunning); + mapObj["allow_cycling"] = map->allowBiking; + mapObj["allow_escaping"] = map->allowEscaping; + mapObj["allow_running"] = map->allowRunning; } - mapObj["show_map_name"] = ParseUtil::gameStringToBool(map->show_location); + mapObj["show_map_name"] = map->show_location; if (projectConfig.getFloorNumberEnabled()) { mapObj["floor_number"] = map->floorNumber; } diff --git a/src/scriptapi/apimap.cpp b/src/scriptapi/apimap.cpp index 419ef1c6..2a2cbb28 100644 --- a/src/scriptapi/apimap.cpp +++ b/src/scriptapi/apimap.cpp @@ -815,7 +815,7 @@ void MainWindow::setLocation(QString location) { bool MainWindow::getRequiresFlash() { if (!this->editor || !this->editor->map) return false; - return ParseUtil::gameStringToBool(this->editor->map->requiresFlash); + return this->editor->map->requiresFlash; } void MainWindow::setRequiresFlash(bool require) { @@ -875,7 +875,7 @@ void MainWindow::setBattleScene(QString battleScene) { bool MainWindow::getShowLocationName() { if (!this->editor || !this->editor->map) return false; - return ParseUtil::gameStringToBool(this->editor->map->show_location); + return this->editor->map->show_location; } void MainWindow::setShowLocationName(bool show) { @@ -887,7 +887,7 @@ void MainWindow::setShowLocationName(bool show) { bool MainWindow::getAllowRunning() { if (!this->editor || !this->editor->map) return false; - return ParseUtil::gameStringToBool(this->editor->map->allowRunning); + return this->editor->map->allowRunning; } void MainWindow::setAllowRunning(bool allow) { @@ -899,7 +899,7 @@ void MainWindow::setAllowRunning(bool allow) { bool MainWindow::getAllowBiking() { if (!this->editor || !this->editor->map) return false; - return ParseUtil::gameStringToBool(this->editor->map->allowBiking); + return this->editor->map->allowBiking; } void MainWindow::setAllowBiking(bool allow) { @@ -911,13 +911,13 @@ void MainWindow::setAllowBiking(bool allow) { bool MainWindow::getAllowEscaping() { if (!this->editor || !this->editor->map) return false; - return ParseUtil::gameStringToBool(this->editor->map->allowEscapeRope); + return this->editor->map->allowEscaping; } void MainWindow::setAllowEscaping(bool allow) { if (!this->ui) return; - this->ui->checkBox_AllowEscapeRope->setChecked(allow); + this->ui->checkBox_AllowEscaping->setChecked(allow); } int MainWindow::getFloorNumber() { diff --git a/src/ui/newmappopup.cpp b/src/ui/newmappopup.cpp index a25e5613..8cd41b5a 100644 --- a/src/ui/newmappopup.cpp +++ b/src/ui/newmappopup.cpp @@ -266,9 +266,9 @@ void NewMapPopup::on_pushButton_NewMap_Accept_clicked() { newMap->type = this->ui->comboBox_NewMap_Type->currentText(); newMap->location = this->ui->comboBox_NewMap_Location->currentText(); newMap->song = this->ui->comboBox_Song->currentText(); - newMap->requiresFlash = "0"; + newMap->requiresFlash = false; newMap->weather = this->project->weatherNames.value(0, "WEATHER_NONE"); - newMap->show_location = this->ui->checkBox_NewMap_Show_Location->isChecked() ? "1" : "0"; + newMap->show_location = this->ui->checkBox_NewMap_Show_Location->isChecked(); newMap->battle_scene = this->project->mapBattleScenes.value(0, "MAP_BATTLE_SCENE_NORMAL"); if (this->existingLayout) { @@ -301,13 +301,13 @@ void NewMapPopup::on_pushButton_NewMap_Accept_clicked() { } if (this->ui->checkBox_NewMap_Flyable->isChecked()) { - newMap->isFlyable = "TRUE"; + newMap->needsHealLocation = true; } if (projectConfig.getBaseGameVersion() != BaseGameVersion::pokeruby) { - newMap->allowRunning = this->ui->checkBox_NewMap_Allow_Running->isChecked() ? "1" : "0"; - newMap->allowBiking = this->ui->checkBox_NewMap_Allow_Biking->isChecked() ? "1" : "0"; - newMap->allowEscapeRope = this->ui->checkBox_NewMap_Allow_Escape_Rope->isChecked() ? "1" : "0"; + newMap->allowRunning = this->ui->checkBox_NewMap_Allow_Running->isChecked(); + newMap->allowBiking = this->ui->checkBox_NewMap_Allow_Biking->isChecked(); + newMap->allowEscaping = this->ui->checkBox_NewMap_Allow_Escape_Rope->isChecked(); } if (projectConfig.getFloorNumberEnabled()) { newMap->floorNumber = this->ui->spinBox_NewMap_Floor_Number->value();