Fix OverworldMap canvas slowness

This commit is contained in:
scawful
2024-01-23 10:18:06 -05:00
parent d183f1d784
commit da06f46596
2 changed files with 7 additions and 6 deletions

View File

@@ -316,12 +316,13 @@ void OverworldEditor::DrawOverworldProperties() {
if (!init_properties) { if (!init_properties) {
for (int i = 0; i < 0x40; i++) { for (int i = 0; i < 0x40; i++) {
std::string area_graphics_str = absl::StrFormat( std::string area_graphics_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i).area_graphics());
"0x%02hX", overworld_.overworld_map(i)->area_graphics());
properties_canvas_.mutable_labels(0)->push_back(area_graphics_str); properties_canvas_.mutable_labels(0)->push_back(area_graphics_str);
} }
for (int i = 0; i < 0x40; i++) { for (int i = 0; i < 0x40; i++) {
std::string area_palette_str = absl::StrFormat( std::string area_palette_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i).area_palette()); "0x%02hX", overworld_.overworld_map(i)->area_palette());
properties_canvas_.mutable_labels(1)->push_back(area_palette_str); properties_canvas_.mutable_labels(1)->push_back(area_palette_str);
} }
init_properties = true; init_properties = true;
@@ -713,8 +714,8 @@ void OverworldEditor::CheckForCurrentMap() {
auto current_map_x = current_map_ % 8; auto current_map_x = current_map_ % 8;
auto current_map_y = current_map_ / 8; auto current_map_y = current_map_ / 8;
if (overworld_.overworld_map(current_map_).IsLargeMap()) { if (overworld_.overworld_map(current_map_)->IsLargeMap()) {
int parent_id = overworld_.overworld_map(current_map_).Parent(); int parent_id = overworld_.overworld_map(current_map_)->Parent();
int parent_map_x = parent_id % 8; int parent_map_x = parent_id % 8;
int parent_map_y = parent_id / 8; int parent_map_y = parent_id / 8;
ow_map_canvas_.DrawOutline(parent_map_x * small_map_size, ow_map_canvas_.DrawOutline(parent_map_x * small_map_size,
@@ -764,7 +765,7 @@ void OverworldEditor::DrawOverworldCanvas() {
if (flags()->kDrawOverworldSprites) { if (flags()->kDrawOverworldSprites) {
DrawOverworldSprites(); DrawOverworldSprites();
} }
// CheckForCurrentMap(); Performance Bottleneck CheckForCurrentMap();
CheckForOverworldEdits(); CheckForOverworldEdits();
} }
ow_map_canvas_.DrawGrid(); ow_map_canvas_.DrawGrid();

View File

@@ -353,7 +353,7 @@ class Overworld : public SharedROM, public core::ExperimentFlags {
absl::Status SaveMap32Tiles(); absl::Status SaveMap32Tiles();
auto overworld_maps() const { return overworld_maps_; } auto overworld_maps() const { return overworld_maps_; }
auto overworld_map(int i) const { return overworld_maps_[i]; } auto overworld_map(int i) const { return &overworld_maps_[i]; }
auto mutable_overworld_map(int i) { return &overworld_maps_[i]; } auto mutable_overworld_map(int i) { return &overworld_maps_[i]; }
auto mutable_exits() { return &all_exits_; } auto mutable_exits() { return &all_exits_; }