Fix OverworldMap canvas slowness
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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_; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user