1#ifndef YAZE_APP_EDITOR_DUNGEONEDITOR_H
2#define YAZE_APP_EDITOR_DUNGEONEDITOR_H
5#include "absl/container/flat_hash_map.h"
11#include "imgui/imgui.h"
21 ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip;
24 ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
25 ImGuiTabBarFlags_FittingPolicyResizeDown |
26 ImGuiTabBarFlags_TabListPopupButton;
29 ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
30 ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
31 ImGuiTableFlags_BordersV;
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"); }
81 void RenderSetUsage(
const absl::flat_hash_map<uint16_t, int>& usage_map,
82 uint16_t& selected_set,
int spriteset_offset = 0x00);
123 std::vector<zelda3::dungeon::Room>
rooms_;
A class to hold a shared pointer to a Rom object.
A class to manage experimental feature flags.
DungeonEditor class for editing dungeons.
uint16_t current_room_id_
gfx::Bitmap room_gfx_bmp_
uint16_t selected_blockset_
std::unordered_map< int, int > room_size_addresses_
absl::flat_hash_map< uint16_t, int > blockset_usage_
void DrawDungeonTabView()
absl::Status Redo() override
uint64_t current_palette_group_id_
std::vector< zelda3::dungeon::Room > rooms_
uint16_t current_entrance_id_
void LoadDungeonRoomSize()
absl::Status Cut() override
void DrawDungeonCanvas(int room_id)
std::array< gfx::Bitmap, kNumGfxSheets > graphics_bin_
gfx::SnesPalette current_palette_
absl::Status Undo() override
gui::Canvas object_canvas_
gui::Canvas room_gfx_canvas_
ImVector< int > active_rooms_
absl::flat_hash_map< uint16_t, int > palette_usage_
gfx::PaletteGroup current_palette_group_
std::vector< zelda3::dungeon::RoomEntrance > entrances_
absl::Status Copy() override
absl::Status Paste() override
std::vector< gfx::Bitmap * > room_gfx_sheets_
PaletteEditor palette_editor_
uint16_t selected_palette_
void CalculateUsageStats()
uint64_t total_room_size_
gfx::SnesPalette full_palette_
absl::Status Update() override
std::unordered_map< int, ImVec4 > room_palette_
absl::Status RefreshGraphics()
uint16_t selected_spriteset_
void DrawObjectRenderer()
zelda3::dungeon::DungeonObjectRenderer object_renderer_
uint64_t current_palette_id_
absl::Status UpdateDungeonRoomView()
absl::Status Find() override
absl::Status Initialize()
std::vector< int64_t > room_size_pointers_
absl::flat_hash_map< uint16_t, int > spriteset_usage_
void DrawEntranceSelector()
GfxGroupEditor gfx_group_editor_
void RenderSetUsage(const absl::flat_hash_map< uint16_t, int > &usage_map, uint16_t &selected_set, int spriteset_offset=0x00)
Interface for editor classes.
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.
constexpr ImGuiTableFlags kDungeonTableFlags
constexpr ImGuiTabBarFlags kDungeonTabBarFlags
constexpr ImGuiTabItemFlags kDungeonTabFlags
Represents a group of palettes.