OverworldEditor housekeeping
This commit is contained in:
@@ -28,7 +28,12 @@ namespace yaze {
|
|||||||
namespace app {
|
namespace app {
|
||||||
namespace editor {
|
namespace editor {
|
||||||
|
|
||||||
|
using ImGui::BeginTabBar;
|
||||||
|
using ImGui::BeginTabItem;
|
||||||
|
using ImGui::BeginTable;
|
||||||
using ImGui::Button;
|
using ImGui::Button;
|
||||||
|
using ImGui::EndTabBar;
|
||||||
|
using ImGui::EndTabItem;
|
||||||
using ImGui::Separator;
|
using ImGui::Separator;
|
||||||
using ImGui::TableHeadersRow;
|
using ImGui::TableHeadersRow;
|
||||||
using ImGui::TableNextColumn;
|
using ImGui::TableNextColumn;
|
||||||
@@ -37,12 +42,12 @@ using ImGui::TableSetupColumn;
|
|||||||
using ImGui::Text;
|
using ImGui::Text;
|
||||||
|
|
||||||
absl::Status OverworldEditor::Update() {
|
absl::Status OverworldEditor::Update() {
|
||||||
if (rom()->isLoaded() && !all_gfx_loaded_) {
|
if (rom()->is_loaded() && !all_gfx_loaded_) {
|
||||||
RETURN_IF_ERROR(tile16_editor_.InitBlockset(
|
RETURN_IF_ERROR(tile16_editor_.InitBlockset(
|
||||||
tile16_blockset_bmp_, current_gfx_bmp_, tile16_individual_));
|
tile16_blockset_bmp_, current_gfx_bmp_, tile16_individual_));
|
||||||
gfx_group_editor_.InitBlockset(tile16_blockset_bmp_);
|
gfx_group_editor_.InitBlockset(tile16_blockset_bmp_);
|
||||||
all_gfx_loaded_ = true;
|
all_gfx_loaded_ = true;
|
||||||
} else if (!rom()->isLoaded() && all_gfx_loaded_) {
|
} else if (!rom()->is_loaded() && all_gfx_loaded_) {
|
||||||
// TODO: Destroy the overworld graphics canvas.
|
// TODO: Destroy the overworld graphics canvas.
|
||||||
// Reset the editor if the ROM is unloaded
|
// Reset the editor if the ROM is unloaded
|
||||||
Shutdown();
|
Shutdown();
|
||||||
@@ -55,16 +60,13 @@ absl::Status OverworldEditor::Update() {
|
|||||||
status_ = UpdateOverworldEdit();
|
status_ = UpdateOverworldEdit();
|
||||||
END_TAB_ITEM()
|
END_TAB_ITEM()
|
||||||
TAB_ITEM("Usage Statistics")
|
TAB_ITEM("Usage Statistics")
|
||||||
|
if (rom()->is_loaded()) {
|
||||||
status_ = UpdateUsageStats();
|
status_ = UpdateUsageStats();
|
||||||
|
}
|
||||||
END_TAB_ITEM()
|
END_TAB_ITEM()
|
||||||
END_TAB_BAR()
|
END_TAB_BAR()
|
||||||
|
|
||||||
if (!status_.ok()) {
|
CLEAR_AND_RETURN_STATUS(status_);
|
||||||
auto temp = status_;
|
|
||||||
status_ = absl::OkStatus();
|
|
||||||
return temp;
|
|
||||||
}
|
|
||||||
|
|
||||||
return absl::OkStatus();
|
return absl::OkStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +74,7 @@ absl::Status OverworldEditor::UpdateOverworldEdit() {
|
|||||||
// Draws the toolset for editing the Overworld.
|
// Draws the toolset for editing the Overworld.
|
||||||
RETURN_IF_ERROR(DrawToolset())
|
RETURN_IF_ERROR(DrawToolset())
|
||||||
|
|
||||||
if (ImGui::BeginTable(kOWEditTable.data(), 2, kOWEditFlags, ImVec2(0, 0))) {
|
if (BeginTable(kOWEditTable.data(), 2, kOWEditFlags, ImVec2(0, 0))) {
|
||||||
TableSetupColumn("Canvas", ImGuiTableColumnFlags_WidthStretch,
|
TableSetupColumn("Canvas", ImGuiTableColumnFlags_WidthStretch,
|
||||||
ImGui::GetContentRegionAvail().x);
|
ImGui::GetContentRegionAvail().x);
|
||||||
TableSetupColumn("Tile Selector", ImGuiTableColumnFlags_WidthFixed, 256);
|
TableSetupColumn("Tile Selector", ImGuiTableColumnFlags_WidthFixed, 256);
|
||||||
@@ -88,7 +90,7 @@ absl::Status OverworldEditor::UpdateOverworldEdit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
absl::Status OverworldEditor::UpdateUsageStats() {
|
absl::Status OverworldEditor::UpdateUsageStats() {
|
||||||
if (ImGui::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);
|
||||||
@@ -186,7 +188,7 @@ absl::Status OverworldEditor::DrawToolset() {
|
|||||||
static bool show_tile16 = false;
|
static bool show_tile16 = false;
|
||||||
static bool show_properties = false;
|
static bool show_properties = false;
|
||||||
|
|
||||||
if (ImGui::BeginTable("OWToolset", 20, kToolsetTableFlags, ImVec2(0, 0))) {
|
if (BeginTable("OWToolset", 20, kToolsetTableFlags, ImVec2(0, 0))) {
|
||||||
for (const auto &name : kToolsetColumnNames)
|
for (const auto &name : kToolsetColumnNames)
|
||||||
ImGui::TableSetupColumn(name.data());
|
ImGui::TableSetupColumn(name.data());
|
||||||
|
|
||||||
@@ -269,7 +271,7 @@ absl::Status OverworldEditor::DrawToolset() {
|
|||||||
TEXT_COLUMN(ICON_MD_MORE_VERT) // Separator
|
TEXT_COLUMN(ICON_MD_MORE_VERT) // Separator
|
||||||
|
|
||||||
TableNextColumn(); // Palette
|
TableNextColumn(); // Palette
|
||||||
palette_editor_.DisplayPalette(palette_, overworld_.isLoaded());
|
palette_editor_.DisplayPalette(palette_, overworld_.is_loaded());
|
||||||
|
|
||||||
TEXT_COLUMN(ICON_MD_MORE_VERT) // Separator
|
TEXT_COLUMN(ICON_MD_MORE_VERT) // Separator
|
||||||
|
|
||||||
@@ -339,7 +341,7 @@ void OverworldEditor::DrawOverworldProperties() {
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void OverworldEditor::DrawOverworldMapSettings() {
|
void OverworldEditor::DrawOverworldMapSettings() {
|
||||||
if (ImGui::BeginTable(kOWMapTable.data(), 7, kOWMapFlags, ImVec2(0, 0), -1)) {
|
if (BeginTable(kOWMapTable.data(), 7, kOWMapFlags, ImVec2(0, 0), -1)) {
|
||||||
for (const auto &name : {"##1stCol", "##gfxCol", "##palCol", "##sprgfxCol",
|
for (const auto &name : {"##1stCol", "##gfxCol", "##palCol", "##sprgfxCol",
|
||||||
"##sprpalCol", "##msgidCol", "##2ndCol"})
|
"##sprpalCol", "##msgidCol", "##2ndCol"})
|
||||||
ImGui::TableSetupColumn(name);
|
ImGui::TableSetupColumn(name);
|
||||||
@@ -752,7 +754,7 @@ void OverworldEditor::DrawOverworldCanvas() {
|
|||||||
ow_map_canvas_.DrawBackground(ImVec2(0x200 * 8, 0x200 * 8));
|
ow_map_canvas_.DrawBackground(ImVec2(0x200 * 8, 0x200 * 8));
|
||||||
ImGui::PopStyleVar(2);
|
ImGui::PopStyleVar(2);
|
||||||
ow_map_canvas_.DrawContextMenu();
|
ow_map_canvas_.DrawContextMenu();
|
||||||
if (overworld_.isLoaded()) {
|
if (overworld_.is_loaded()) {
|
||||||
DrawOverworldMaps();
|
DrawOverworldMaps();
|
||||||
DrawOverworldEntrances(ow_map_canvas_.zero_point(),
|
DrawOverworldEntrances(ow_map_canvas_.zero_point(),
|
||||||
ow_map_canvas_.Scrolling());
|
ow_map_canvas_.Scrolling());
|
||||||
@@ -761,7 +763,7 @@ void OverworldEditor::DrawOverworldCanvas() {
|
|||||||
if (flags()->kDrawOverworldSprites) {
|
if (flags()->kDrawOverworldSprites) {
|
||||||
DrawOverworldSprites();
|
DrawOverworldSprites();
|
||||||
}
|
}
|
||||||
CheckForCurrentMap();
|
//CheckForCurrentMap();
|
||||||
CheckForOverworldEdits();
|
CheckForOverworldEdits();
|
||||||
}
|
}
|
||||||
ow_map_canvas_.DrawGrid(64.0f);
|
ow_map_canvas_.DrawGrid(64.0f);
|
||||||
@@ -797,29 +799,29 @@ void OverworldEditor::DrawTile8Selector() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OverworldEditor::DrawTileSelector() {
|
void OverworldEditor::DrawTileSelector() {
|
||||||
if (ImGui::BeginTabBar(kTileSelectorTab.data(),
|
if (BeginTabBar(kTileSelectorTab.data(),
|
||||||
ImGuiTabBarFlags_FittingPolicyScroll)) {
|
ImGuiTabBarFlags_FittingPolicyScroll)) {
|
||||||
if (ImGui::BeginTabItem("Tile16")) {
|
if (BeginTabItem("Tile16")) {
|
||||||
gui::BitmapCanvasPipeline(blockset_canvas_, tile16_blockset_bmp_, 0x100,
|
gui::BitmapCanvasPipeline(blockset_canvas_, tile16_blockset_bmp_, 0x100,
|
||||||
(8192 * 2), 0x20, map_blockset_loaded_, true,
|
(8192 * 2), 0x20, map_blockset_loaded_, true,
|
||||||
1);
|
1);
|
||||||
ImGui::EndTabItem();
|
EndTabItem();
|
||||||
}
|
}
|
||||||
if (ImGui::BeginTabItem("Tile8")) {
|
if (BeginTabItem("Tile8")) {
|
||||||
if (ImGui::BeginChild("##tile8viewer", ImGui::GetContentRegionAvail(),
|
if (ImGui::BeginChild("##tile8viewer", ImGui::GetContentRegionAvail(),
|
||||||
true, ImGuiWindowFlags_AlwaysVerticalScrollbar)) {
|
true, ImGuiWindowFlags_AlwaysVerticalScrollbar)) {
|
||||||
DrawTile8Selector();
|
DrawTile8Selector();
|
||||||
}
|
}
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
ImGui::EndTabItem();
|
EndTabItem();
|
||||||
}
|
}
|
||||||
if (ImGui::BeginTabItem("Area Graphics")) {
|
if (BeginTabItem("Area Graphics")) {
|
||||||
gui::BitmapCanvasPipeline(current_gfx_canvas_, current_gfx_bmp_, 256,
|
gui::BitmapCanvasPipeline(current_gfx_canvas_, current_gfx_bmp_, 256,
|
||||||
0x10 * 0x40, 0x20, overworld_.isLoaded(), true,
|
0x10 * 0x40, 0x20, overworld_.is_loaded(), true,
|
||||||
3);
|
3);
|
||||||
ImGui::EndTabItem();
|
EndTabItem();
|
||||||
}
|
}
|
||||||
ImGui::EndTabBar();
|
EndTabBar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -373,7 +373,7 @@ class Overworld : public SharedROM, public core::ExperimentFlags {
|
|||||||
auto Tile16Blockset() const {
|
auto Tile16Blockset() const {
|
||||||
return overworld_maps_[current_map_].Tile16Blockset();
|
return overworld_maps_[current_map_].Tile16Blockset();
|
||||||
}
|
}
|
||||||
auto isLoaded() const { return is_loaded_; }
|
auto is_loaded() const { return is_loaded_; }
|
||||||
void SetCurrentMap(int i) { current_map_ = i; }
|
void SetCurrentMap(int i) { current_map_ = i; }
|
||||||
|
|
||||||
auto MapTiles() const { return map_tiles_; }
|
auto MapTiles() const { return map_tiles_; }
|
||||||
|
|||||||
Reference in New Issue
Block a user