feat(editor): el SAVE_PATH segueix la sala carregada

El writer del tilemap deixa de fer servir la constant
Defaults::Editor::SAVE_PATH (que apuntava a data/maps/pyramid.yaml) i
demana al LevelManager el path actual. Resultat: editar i guardar
desa la sala que tens davant — no l'antic mapa monolític — i salts
debug entre sales canviaran també el destí del save.
This commit is contained in:
JailDesigner committed 2026-04-26 14:54:54 +02:00
1 parent 9d4f92c98b
commit d52cc1c509
2 files changed
+8 -7

No files matched your search

+8 -5
View File
@@ -14,6 +14,7 @@
#include "core/resources/resource_cache.hpp" #include "core/resources/resource_cache.hpp"
#include "core/resources/resource_helper.hpp" #include "core/resources/resource_helper.hpp"
#include "core/system/event_buffer.hpp" #include "core/system/event_buffer.hpp"
#include "game/levels/level_manager.hpp"
#include "game/map/tilemap.hpp" #include "game/map/tilemap.hpp"
#include "utils/defaults.hpp" #include "utils/defaults.hpp"
#include "utils/defines.hpp" #include "utils/defines.hpp"
@@ -76,11 +77,13 @@ void Editor::exit(Tilemap& tilemap) {
if (!active_) { return; } if (!active_) { return; }
active_ = false; active_ = false;
picker_open_ = false; picker_open_ = false;
// Resolem la ruta via Resource::Helper perquè en Debug el root de // El writer salva sempre sobre la sala actualment carregada (segons
// dades és AEE_SOURCE_DIR (ruta absoluta al repo), no el CWD. Sense // el LevelManager): així el "9" de l'editor desa el que tens davant,
// això, el writer obriria `data/maps/pyramid.yaml` relatiu al CWD // no una constant fixa. Resolem la ruta via Resource::Helper perquè
// i fallaria sempre excepte si el binari es llança des del repo root. // en Debug el root de dades és AEE_SOURCE_DIR (ruta absoluta al repo),
const auto ABS_PATH = Resource::Helper::resolve(Defaults::Editor::SAVE_PATH); // no el CWD; sense això, el writer obriria el path relatiu al CWD i
// fallaria si el binari no es llança des del repo root.
const auto ABS_PATH = Resource::Helper::resolve(Levels::LevelManager::get().currentPath());
const bool SAVED = tilemap.save(ABS_PATH); const bool SAVED = tilemap.save(ABS_PATH);
Notification::notify(Locale::get().text(SAVED ? "input.editor_off" : "input.editor_save_error")); Notification::notify(Locale::get().text(SAVED ? "input.editor_off" : "input.editor_save_error"));
} }
-2
View File
@@ -206,8 +206,6 @@ namespace Defaults {
namespace Editor { namespace Editor {
// Color del rectangle 1 px que envolta el canvas durant l'edició. // Color del rectangle 1 px que envolta el canvas durant l'edició.
constexpr std::uint32_t BORDER_ARGB = 0xFF2244FFU; constexpr std::uint32_t BORDER_ARGB = 0xFF2244FFU;
// Ruta de persistència: writer surgical sobre la font del repo.
constexpr const char* SAVE_PATH = "data/maps/pyramid.yaml";
// Píxels entre el canvas i el rectangle del TilePicker per totes // Píxels entre el canvas i el rectangle del TilePicker per totes
// les vores. Prou perquè el border blau de l'editor no es // les vores. Prou perquè el border blau de l'editor no es
// superpose amb la graella del picker. // superpose amb la graella del picker.