1#ifndef YAZE_APP_EDITOR_DUNGEON_EDITOR_V2_H
2#define YAZE_APP_EDITOR_DUNGEON_EDITOR_V2_H
5#include <unordered_map>
7#include "absl/status/status.h"
8#include "absl/strings/str_format.h"
23#include "imgui/imgui.h"
58 absl::Status
Update()
override;
59 absl::Status
Undo()
override {
return absl::UnimplementedError(
"Undo"); }
60 absl::Status
Redo()
override {
return absl::UnimplementedError(
"Redo"); }
61 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Cut"); }
62 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Copy"); }
63 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Paste"); }
64 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
65 absl::Status
Save()
override;
85 if (!
rom_)
return "No ROM loaded";
87 return absl::StrFormat(
"ROM loaded: %s",
rom_->
title());
130 std::unordered_map<int, std::shared_ptr<gui::EditorCard>>
room_cards_;
The Rom class is used to load, save, and modify Rom data.
Handles the main dungeon canvas rendering and interaction.
DungeonEditorV2 - Simplified dungeon editor using component delegation.
std::array< zelda3::Room, 0x128 > rooms_
void DrawEntrancesListCard()
uint64_t current_palette_group_id_
void DrawDebugControlsCard()
void add_room(int room_id)
std::unique_ptr< ObjectEditorCard > object_editor_card_
std::array< zelda3::RoomEntrance, 0x8C > entrances_
bool show_palette_editor_
gfx::PaletteGroup current_palette_group_
void OnEntranceSelected(int entrance_id)
absl::Status Save() override
gfx::IRenderer * renderer_
void FocusRoom(int room_id)
std::string GetRomStatus() const override
absl::Status Copy() override
void Initialize() override
gui::DungeonObjectEmulatorPreview object_emulator_preview_
void DrawRoomMatrixCard()
DungeonCanvasViewer canvas_viewer_
void ProcessDeferredTextures()
gfx::SnesPalette current_palette_
ImVector< int > active_rooms_
absl::Status Cut() override
bool show_entrances_list_
bool IsRomLoaded() const override
gui::PaletteEditorWidget palette_editor_
absl::Status Paste() override
bool show_debug_controls_
void DrawRoomTab(int room_id)
absl::Status Update() override
absl::Status Undo() override
absl::Status Find() override
ImGuiWindowClass room_window_class_
DungeonRoomLoader room_loader_
absl::Status Redo() override
DungeonObjectSelector object_selector_
DungeonRoomSelector room_selector_
std::unordered_map< int, std::shared_ptr< gui::EditorCard > > room_cards_
bool control_panel_minimized_
void DrawRoomGraphicsCard()
DungeonEditorV2(Rom *rom=nullptr)
void OnRoomSelected(int room_id)
uint64_t current_palette_id_
Handles object selection, preview, and editing UI.
Manages loading and saving of dungeon room data.
Handles room and entrance selection UI.
Interface for editor classes.
Defines an abstract interface for all rendering operations.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
void Initialize(gfx::IRenderer *renderer, Rom *rom)
Main namespace for the application.
Represents a group of palettes.