1#ifndef YAZE_APP_EDITOR_SCREEN_EDITOR_H
2#define YAZE_APP_EDITOR_SCREEN_EDITOR_H
7#include "absl/status/status.h"
16#include "imgui/imgui.h"
46 absl::Status
Load()
override;
47 absl::Status
Update()
override;
50 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Cut"); }
51 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Copy"); }
52 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Paste"); }
53 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
54 absl::Status
Save()
override;
102 bool bin_mode =
false);
178 std::make_unique<zelda3::Inventory>();
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Interface for editor classes.
UndoManager undo_manager_
The ScreenEditor class allows the user to edit a variety of screens in the game or create a custom me...
void DrawTitleScreenEditor()
absl::Status LoadDungeonMapTile16(const std::vector< uint8_t > &gfx_data, bool bin_mode=false)
void DrawDungeonMapsRoomGfx()
Draw dungeon room graphics editor with enhanced tile16 editing.
absl::Status RefreshRomBackedState()
gfx::SnesPalette palette_
absl::Status Undo() override
void DrawTitleScreenBlocksetSelector()
void MarkOverworldMapModified()
bool title_screen_loaded_
ScreenSnapshot CaptureTile16CompSnapshot() const
gui::Canvas ow_map_canvas_
absl::Status SaveOverworldMapToRom()
gfx::Bitmap * GetOrCreateSheet(int index)
friend class ScreenEditorSaveStoplossTestPeer
gfx::Tilemap tile16_blockset_
ScreenSnapshot pending_dungeon_before_
bool pending_overworld_map_palette_changes_
void DrawTitleScreenBG2Canvas()
bool HasPendingOverworldMapChanges() const
absl::Status Paste() override
bool pending_dungeon_map_tile16_changes_
bool HasPendingDungeonMapChanges() const
gui::Canvas tilemap_canvas_
absl::Status Cut() override
void DrawInventoryItemIcons()
std::array< gfx::TileInfo, 4 > current_tile16_info
absl::Status Save() override
absl::Status Load() override
void SaveDungeonMapUndoState(const std::string &description)
void InvalidateRomBackedState()
bool pending_dungeon_map_changes_
absl::Status Update() override
gui::Canvas screen_canvas_
std::string pending_tile16_desc_
void DrawTitleScreenBG1Canvas()
bool HasValidDungeonFloorSelection(int floor) const
absl::Status Copy() override
gui::Canvas title_bg1_canvas_
absl::Status Find() override
void RestoreFromSnapshot(const ScreenSnapshot &snapshot)
zelda3::OverworldMapScreen ow_map_screen_
void MarkTitleScreenModified()
ScreenSnapshot pending_tile16_before_
void Initialize() override
bool HasValidDungeonSelection() const
int selected_title_tile16_
ScreenSnapshot CaptureDungeonMapSnapshot() const
bool pending_title_screen_changes_
gui::Canvas current_tile_canvas_
void DrawDungeonMapsEditor()
Draw dungeon maps editor with enhanced ROM hacking features.
gui::Canvas title_bg2_canvas_
absl::Status Redo() override
void SaveTile16CompUndoState(const std::string &description)
void DrawInventoryToolset()
bool HasPendingDungeonMapTile16Changes() const
void MarkOverworldMapPaletteModified()
void CommitTile16CompUndo()
gfx::Tilemap tile8_tilemap_
bool has_pending_dungeon_undo_
ScreenEditor(Rom *rom=nullptr)
void DrawTitleScreenCompositeCanvas()
absl::Status SaveTitleScreenToRom()
void ResetRomBackedStateForLoad()
bool HasPendingTitleScreenChanges() const
zelda3::TitleScreen title_screen_
void DrawOverworldMapEditor()
EditingMode current_mode_
std::unique_ptr< zelda3::Inventory > inventory_
zelda3::DungeonMapLabels dungeon_map_labels_
bool paste_button_pressed
gui::Canvas ow_tileset_canvas_
gui::Canvas title_blockset_canvas_
bool rom_backed_state_valid_
bool HasPendingScreenChanges() const
void DrawDungeonMapToolset()
gui::Canvas tilesheet_canvas_
void DrawNamingScreenEditor()
void MarkDungeonMapModified()
void DrawDungeonMapScreen(int i)
bool has_pending_tile16_undo_
void DrawDungeonMapsTabs()
void RefreshTileCacheForReload(gfx::Tilemap &tilemap)
bool IsRomBackedStateValid() const
std::vector< zelda3::DungeonMap > dungeon_maps_
std::string pending_dungeon_desc_
void CommitDungeonMapUndo()
void DrawInventoryMenuEditor()
bool pending_overworld_map_changes_
void MarkDungeonMapTile16Modified()
absl::Status Redo()
Redo the top action. Returns error if stack is empty.
absl::Status Undo()
Undo the top action. Returns error if stack is empty.
Represents a bitmap image optimized for SNES ROM hacking.
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
Modern, robust canvas for drawing and manipulating graphics.
void SetCanvasSize(ImVec2 canvas_size)
OverworldMapScreen manages the overworld map (pause menu) graphics.
TitleScreen manages the title screen graphics and tilemap data.
std::unordered_map< int, std::unique_ptr< gfx::Bitmap > > BitmapTable
std::array< std::vector< std::array< std::string, kNumRooms > >, kNumDungeons > DungeonMapLabels
Unified screen editor snapshot.
Tilemap structure for SNES tile-based graphics management.