1#ifndef YAZE_APP_EDITOR_SPRITE_EDITOR_H
2#define YAZE_APP_EDITOR_SPRITE_EDITOR_H
8#include "absl/status/status.h"
23 ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip;
26 ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
27 ImGuiTabBarFlags_FittingPolicyResizeDown |
28 ImGuiTabBarFlags_TabListPopupButton;
31 ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
32 ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
33 ImGuiTableFlags_BordersV;
50 absl::Status
Load()
override;
51 absl::Status
Update()
override;
52 absl::Status
Undo()
override {
return absl::UnimplementedError(
"Undo"); }
53 absl::Status
Redo()
override {
return absl::UnimplementedError(
"Redo"); }
54 absl::Status
Cut()
override {
return absl::UnimplementedError(
"Cut"); }
55 absl::Status
Copy()
override {
return absl::UnimplementedError(
"Copy"); }
56 absl::Status
Paste()
override {
return absl::UnimplementedError(
"Paste"); }
57 absl::Status
Find()
override {
return absl::UnimplementedError(
"Find"); }
58 absl::Status
Save()
override;
177 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.
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 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)
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_
uint8_t current_sheets_[8]
SpriteDrawer sprite_drawer_
gui::Canvas graphics_sheet_canvas_
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()
absl::Status Copy() override
absl::Status Save() override
void DrawCustomSpritesMetadata()
void SaveZsmFile(const std::string &path)
gui::Canvas sprite_canvas_
void DrawStatProperties()
std::string current_zsm_path_
absl::Status Load() override
void LoadSpriteGraphicsBuffer()
void LoadSpritePalettes()
SpriteEditor(Rom *rom=nullptr)
gfx::Bitmap vanilla_preview_bitmap_
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
Represents a group of palettes.
Complete OAM layout for a vanilla sprite.