1#ifndef YAZE_APP_EDITOR_DUNGEONEDITOR_H
2#define YAZE_APP_EDITOR_DUNGEONEDITOR_H
4#include "absl/container/flat_hash_map.h"
10#include "imgui/imgui.h"
19 ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip;
22 ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
23 ImGuiTabBarFlags_FittingPolicyResizeDown |
24 ImGuiTabBarFlags_TabListPopupButton;
27 ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
28 ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
29 ImGuiTableFlags_BordersV;
48 absl::Status
Load()
override;
49 absl::Status
Update()
override;
50 absl::Status
Undo()
override {
return absl::UnimplementedError(
"Undo"); }
51 absl::Status
Redo()
override {
return absl::UnimplementedError(
"Redo"); }
52 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Cut"); }
53 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Copy"); }
54 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Paste"); }
55 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
56 absl::Status
Save()
override {
return absl::UnimplementedError(
"Save"); }
87 void RenderSetUsage(
const absl::flat_hash_map<uint16_t, int>& usage_map,
88 uint16_t& selected_set,
int spriteset_offset = 0x00);
The Rom class is used to load, save, and modify Rom data.
absl::flat_hash_map< uint16_t, int > spriteset_usage_
void LoadDungeonRoomSize()
uint16_t selected_blockset_
absl::Status RefreshGraphics()
absl::Status Update() override
uint64_t current_palette_group_id_
void DrawEntranceSelector()
std::vector< zelda3::RoomEntrance > entrances_
std::unordered_map< int, ImVec4 > room_palette_
uint16_t current_room_id_
absl::Status Cut() override
gfx::Bitmap room_gfx_bmp_
absl::flat_hash_map< uint16_t, int > blockset_usage_
uint64_t current_palette_id_
absl::flat_hash_map< uint16_t, int > palette_usage_
std::vector< zelda3::Room > rooms_
void RenderSetUsage(const absl::flat_hash_map< uint16_t, int > &usage_map, uint16_t &selected_set, int spriteset_offset=0x00)
uint16_t selected_spriteset_
std::vector< gfx::Bitmap * > room_gfx_sheets_
PaletteEditor palette_editor_
GfxGroupEditor gfx_group_editor_
uint16_t selected_palette_
uint64_t total_room_size_
gfx::SnesPalette current_palette_
gfx::PaletteGroup current_palette_group_
void DrawDungeonCanvas(int room_id)
uint16_t current_entrance_id_
std::unordered_map< int, int > room_size_addresses_
absl::Status Redo() override
DungeonEditor(Rom *rom=nullptr)
void Initialize() override
zelda3::DungeonObjectRenderer object_renderer_
gui::Canvas room_gfx_canvas_
gfx::SnesPalette full_palette_
gui::Canvas object_canvas_
void DrawDungeonTabView()
absl::Status Paste() override
std::vector< int64_t > room_sizes_
void CalculateUsageStats()
absl::Status Save() override
std::vector< int64_t > room_size_pointers_
absl::Status Load() override
std::array< gfx::Bitmap, kNumGfxSheets > graphics_bin_
void DrawObjectRenderer()
absl::Status Copy() override
ImVector< int > active_rooms_
absl::Status UpdateDungeonRoomView()
absl::Status Find() override
absl::Status Undo() override
Manage graphics group configurations in a Rom.
Allows the user to view and edit in game palettes.
Represents a bitmap image.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Represents a canvas for drawing and manipulating graphics.
Renders dungeon objects from Link to the Past.
Editors are the view controllers for the application.
constexpr ImGuiTableFlags kDungeonTableFlags
constexpr ImGuiTabItemFlags kDungeonTabFlags
constexpr ImGuiTabBarFlags kDungeonTabBarFlags
Main namespace for the application.
Represents a group of palettes.