1#ifndef YAZE_APP_EDITOR_SPRITE_EDITOR_H
2#define YAZE_APP_EDITOR_SPRITE_EDITOR_H
8#include "absl/status/status.h"
24 ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip;
27 ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
28 ImGuiTabBarFlags_FittingPolicyResizeDown |
29 ImGuiTabBarFlags_TabListPopupButton;
32 ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
33 ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
34 ImGuiTableFlags_BordersV;
51 absl::Status
Load()
override;
52 absl::Status
Update()
override;
55 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Cut"); }
56 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Copy"); }
57 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Paste"); }
58 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
59 absl::Status
Save()
override;
190 ImVec2(0x80 * 2 + 2, 0x40 * 8 + 2),
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_
Draws sprite OAM tiles to bitmaps for preview rendering.
Allows the user to edit sprites.
ImVector< int > active_sprites_
absl::Status Find() override
int current_custom_sprite_index_
void UpdateAnimationPlayback(float delta_time)
void DrawAnimationFrames()
void DrawAnimationPanel()
void EnsureCustomSpritePaths()
void BeginUndoTransaction()
void RenderZSpriteFrame(int frame_index)
void LoadSheetsForSprite(const std::array< uint8_t, 4 > &sheets)
absl::Status Paste() override
bool preview_needs_update_
void DrawZSpriteOnCanvas()
bool vanilla_preview_needs_update_
absl::Status Update() override
void HandleEditorShortcuts()
gfx::PaletteGroup sprite_palettes_
void LoadZsmFile(const std::string &path)
bool sprite_mutated_this_frame_
absl::Status Redo() override
void DrawUserRoutinesPanel()
absl::Status Cut() override
absl::Status Undo() override
void RenderVanillaSprite(const zelda3::SpriteOamLayout &layout)
void Initialize() override
void DrawVanillaSpriteEditor()
int selected_routine_index_
const std::string & GetCurrentZsmPath() const
uint8_t current_sheets_[8]
SpriteDrawer sprite_drawer_
gui::Canvas graphics_sheet_canvas_
void RestoreFromSnapshot(const SpriteSnapshot &snapshot)
bool undo_snapshot_pending_
std::vector< zsprite::ZSprite > custom_sprites_
std::vector< uint8_t > sprite_gfx_buffer_
gfx::Bitmap sprite_preview_bitmap_
int current_animation_index_
void DrawBooleanProperties()
void DrawSpritePropertiesPanel()
void SetCurrentZsmPath(const std::string &path)
absl::Status Copy() override
absl::Status Save() override
void DrawCustomSpritesMetadata()
SpriteSnapshot undo_before_snapshot_
void SaveZsmFile(const std::string &path)
gui::Canvas sprite_canvas_
void CommitUndoTransaction()
SpriteSnapshot CaptureCurrentSpriteSnapshot() const
void DrawStatProperties()
absl::Status Load() override
void LoadSpriteGraphicsBuffer()
std::vector< std::string > custom_sprite_paths_
void LoadSpritePalettes()
SpriteEditor(Rom *rom=nullptr)
gfx::Bitmap vanilla_preview_bitmap_
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.
Modern, robust canvas for drawing and manipulating graphics.
constexpr ImGuiTableFlags kSpriteTableFlags
constexpr ImGuiTabItemFlags kSpriteTabFlags
constexpr ImGuiTabBarFlags kSpriteTabBarFlags
Snapshot of a custom ZSprite's editable state for undo/redo.
Represents a group of palettes.
Complete OAM layout for a vanilla sprite.