update ow usage stats to show multiple grids

This commit is contained in:
scawful
2024-07-28 11:31:40 -04:00
parent 90ed9e1b86
commit 2b9aade189

View File

@@ -1055,46 +1055,62 @@ 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()); "%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);
area_graphics_str = absl::StrFormat( area_graphics_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i + 0x40)->area_graphics()); "%02hX", overworld_.overworld_map(i + 0x40)->area_graphics());
properties_canvas_.mutable_labels(3)->push_back(area_graphics_str); properties_canvas_.mutable_labels(3)->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 =
"0x%02hX", overworld_.overworld_map(i)->area_palette()); absl::StrFormat("%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);
area_palette_str = absl::StrFormat( area_palette_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i + 0x40)->area_palette()); "%02hX", overworld_.overworld_map(i + 0x40)->area_palette());
properties_canvas_.mutable_labels(4)->push_back(area_palette_str); properties_canvas_.mutable_labels(4)->push_back(area_palette_str);
} }
for (int i = 0; i < 0x40; i++) { for (int i = 0; i < 0x40; i++) {
std::string sprite_gfx_str = absl::StrFormat( std::string sprite_gfx_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i)->sprite_graphics(1)); "%02hX", overworld_.overworld_map(i)->sprite_graphics(1));
properties_canvas_.mutable_labels(6)->push_back(sprite_gfx_str); properties_canvas_.mutable_labels(6)->push_back(sprite_gfx_str);
sprite_gfx_str = absl::StrFormat( sprite_gfx_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i + 0x40)->sprite_graphics(1)); "%02hX", overworld_.overworld_map(i + 0x40)->sprite_graphics(1));
properties_canvas_.mutable_labels(7)->push_back(sprite_gfx_str); properties_canvas_.mutable_labels(7)->push_back(sprite_gfx_str);
} }
for (int i = 0; i < 0x40; i++) { for (int i = 0; i < 0x40; i++) {
std::string sprite_palette_str = absl::StrFormat( std::string sprite_palette_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i)->sprite_palette(1)); "%02hX", overworld_.overworld_map(i)->sprite_palette(1));
properties_canvas_.mutable_labels(2)->push_back(sprite_palette_str); properties_canvas_.mutable_labels(2)->push_back(sprite_palette_str);
sprite_palette_str = absl::StrFormat( sprite_palette_str = absl::StrFormat(
"0x%02hX", overworld_.overworld_map(i + 0x40)->sprite_palette(1)); "%02hX", overworld_.overworld_map(i + 0x40)->sprite_palette(1));
properties_canvas_.mutable_labels(5)->push_back(sprite_palette_str); properties_canvas_.mutable_labels(5)->push_back(sprite_palette_str);
} }
init_properties = true; init_properties = true;
} }
properties_canvas_.UpdateInfoGrid(ImVec2(512, 512), 16, 1.0f, 64); Text("Area Gfx LW/DW");
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 0);
SameLine();
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 1);
ImGui::Separator(); ImGui::Separator();
Text("Sprite Gfx LW/DW");
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 6);
SameLine();
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 7);
ImGui::Separator();
Text("Area Pal LW/DW");
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 2);
SameLine();
properties_canvas_.UpdateInfoGrid(ImVec2(256, 256), 8, 1.0f, 32, 3);
static bool dark_world = false; static bool dark_world = false;
int world = dark_world ? 3 : 0; int world = dark_world ? 3 : 0;
static int current = 0; static int current = 0;
static bool show_gfx_group = false;
Checkbox("Show Gfx Group Editor", &show_gfx_group);
if (Checkbox("Dark World", &dark_world)) { if (Checkbox("Dark World", &dark_world)) {
properties_canvas_.set_current_labels(current + world); properties_canvas_.set_current_labels(current + world);
} }
@@ -1120,6 +1136,12 @@ void OverworldEditor::DrawOverworldProperties() {
current = 2; current = 2;
properties_canvas_.set_current_labels(current + world); properties_canvas_.set_current_labels(current + world);
} }
if (show_gfx_group) {
gui::BeginWindowWithDisplaySettings("Gfx Group Editor", &show_gfx_group);
status_ = gfx_group_editor_.Update();
gui::EndWindowWithDisplaySettings();
}
} }
absl::Status OverworldEditor::DrawExperimentalModal() { absl::Status OverworldEditor::DrawExperimentalModal() {
@@ -1172,7 +1194,7 @@ absl::Status OverworldEditor::DrawExperimentalModal() {
} }
absl::Status OverworldEditor::UpdateUsageStats() { absl::Status OverworldEditor::UpdateUsageStats() {
if (BeginTable("##UsageStatsTable", 3, kOWEditFlags, ImVec2(0, 0))) { if (BeginTable("UsageStatsTable", 3, kOWEditFlags, ImVec2(0, 0))) {
TableSetupColumn("Entrances"); TableSetupColumn("Entrances");
TableSetupColumn("Grid", ImGuiTableColumnFlags_WidthStretch, TableSetupColumn("Grid", ImGuiTableColumnFlags_WidthStretch,
ImGui::GetContentRegionAvail().x); ImGui::GetContentRegionAvail().x);
@@ -1210,8 +1232,10 @@ absl::Status OverworldEditor::UpdateUsageStats() {
TableNextColumn(); TableNextColumn();
DrawUsageGrid(); DrawUsageGrid();
TableNextColumn(); TableNextColumn();
DrawOverworldProperties(); DrawOverworldProperties();
EndTable(); EndTable();
} }
return absl::OkStatus(); return absl::OkStatus();