diff --git a/src/app/editor/overworld_editor.cc b/src/app/editor/overworld_editor.cc index 0a6c0d5c..293fcee7 100644 --- a/src/app/editor/overworld_editor.cc +++ b/src/app/editor/overworld_editor.cc @@ -281,11 +281,16 @@ void OverworldEditor::DrawTile8Selector() { void OverworldEditor::DrawAreaGraphics() { if (overworld_.isLoaded()) { + static bool set_loaded = false; + if (!set_loaded) { + current_graphics_set_ = + overworld_.GetOverworldMap(0).GetCurrentGraphicsSet(); + set_loaded = true; + } current_gfx_canvas_.DrawBackground(ImVec2(256 + 1, 16 * 64 + 1)); current_gfx_canvas_.UpdateContext(); current_gfx_canvas_.DrawGrid(); - for (const auto &[key, value] : - overworld_.GetOverworldMap(0).GetCurrentGraphicsSet()) { + for (const auto &[key, value] : current_graphics_set_) { int offset = 64 * (key + 1); int top_left_y = current_gfx_canvas_.GetZeroPoint().y + 2; if (key >= 1) { diff --git a/src/app/editor/overworld_editor.h b/src/app/editor/overworld_editor.h index 1916d9c6..f8ac75ee 100644 --- a/src/app/editor/overworld_editor.h +++ b/src/app/editor/overworld_editor.h @@ -72,6 +72,7 @@ class OverworldEditor { std::unordered_map graphics_bin_; absl::flat_hash_map graphics_bin_v2_; + absl::flat_hash_map current_graphics_set_; ROM rom_; zelda3::Overworld overworld_;