Allows the user to edit sprites. More...
#include <sprite_editor.h>
Classes | |
struct | OAMConfig |
Public Member Functions | |
SpriteEditor (Rom *rom=nullptr) | |
void | Initialize () override |
absl::Status | Load () override |
absl::Status | Update () override |
absl::Status | Undo () override |
absl::Status | Redo () override |
absl::Status | Cut () override |
absl::Status | Copy () override |
absl::Status | Paste () override |
absl::Status | Find () override |
absl::Status | Save () override |
void | set_rom (Rom *rom) |
Rom * | rom () const |
![]() | |
Editor ()=default | |
virtual | ~Editor ()=default |
virtual absl::Status | Clear () |
EditorType | type () const |
void | set_context (EditorContext *context) |
bool * | active () |
void | set_active (bool active) |
Private Member Functions | |
void | DrawVanillaSpriteEditor () |
void | DrawSpritesList () |
Draws the sprites list. | |
void | DrawSpriteCanvas () |
Draws the sprite canvas. | |
void | DrawCurrentSheets () |
Draws the current sheets. | |
void | DrawCustomSprites () |
void | DrawCustomSpritesMetadata () |
void | DrawAnimationFrames () |
Draws the animation frames manager. | |
Private Attributes | |
ImVector< int > | active_sprites_ |
int | current_sprite_id_ |
uint8_t | current_sheets_ [8] = {0x00, 0x0A, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00} |
bool | sheets_loaded_ |
OAMConfig | oam_config_ |
gui::Bitmap | oam_bitmap_ |
gui::Canvas | sprite_canvas_ |
gui::Canvas | graphics_sheet_canvas_ |
std::vector< zsprite::ZSprite > | custom_sprites_ |
absl::Status | status_ |
Rom * | rom_ |
Additional Inherited Members | |
![]() | |
bool | active_ = false |
EditorType | type_ |
EditorContext * | context_ = nullptr |
Allows the user to edit sprites.
This class provides functionality for updating the sprite editor, drawing the editor table, drawing the sprite canvas, and drawing the current sheets.
Definition at line 36 of file sprite_editor.h.
|
inlineexplicit |
Definition at line 38 of file sprite_editor.h.
References yaze::editor::kSprite, rom(), rom_, and yaze::editor::Editor::type_.
|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 25 of file sprite_editor.cc.
|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 27 of file sprite_editor.cc.
|
overridevirtual |
Implements yaze::editor::Editor.
Definition at line 29 of file sprite_editor.cc.
References DrawCustomSprites(), DrawVanillaSpriteEditor(), rom(), sheets_loaded_, and status_.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 45 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 46 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 47 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 48 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 49 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 50 of file sprite_editor.h.
|
inlineoverridevirtual |
Implements yaze::editor::Editor.
Definition at line 51 of file sprite_editor.h.
|
inline |
|
inline |
Definition at line 57 of file sprite_editor.h.
References rom_.
Referenced by DrawSpritesList(), set_rom(), SpriteEditor(), and Update().
|
private |
Definition at line 50 of file sprite_editor.cc.
References active_sprites_, current_sprite_id_, DrawCurrentSheets(), DrawSpriteCanvas(), DrawSpritesList(), ICON_MD_ADD, yaze::editor::kSpriteTabBarFlags, and sheets_loaded_.
Referenced by Update().
|
private |
Draws the sprites list.
Definition at line 193 of file sprite_editor.cc.
References active_sprites_, current_sprite_id_, yaze::gui::GetID(), yaze::util::HexByte(), yaze::Rom::resource_label(), rom(), and yaze::ResourceLabelManager::SelectableLabelWithNameEdit().
Referenced by DrawVanillaSpriteEditor().
|
private |
Draws the sprite canvas.
Definition at line 109 of file sprite_editor.cc.
References DrawAnimationFrames(), DrawCustomSpritesMetadata(), yaze::gui::GetID(), yaze::gui::InputHexByte(), yaze::gui::InputHexWord(), oam_config_, and sprite_canvas_.
Referenced by DrawCustomSprites(), and DrawVanillaSpriteEditor().
|
private |
Draws the current sheets.
Definition at line 169 of file sprite_editor.cc.
References current_sheets_, yaze::gfx::Arena::Get(), yaze::gui::GetID(), graphics_sheet_canvas_, and yaze::gui::InputHexByte().
Referenced by DrawCustomSprites(), and DrawVanillaSpriteEditor().
|
private |
Definition at line 223 of file sprite_editor.cc.
References DrawCurrentSheets(), DrawCustomSpritesMetadata(), and DrawSpriteCanvas().
Referenced by Update().
|
private |
Definition at line 249 of file sprite_editor.cc.
References active_sprites_, current_sprite_id_, custom_sprites_, yaze::core::FileDialogWrapper::ShowOpenFileDialog(), and status_.
Referenced by DrawCustomSprites(), and DrawSpriteCanvas().
|
private |
Draws the animation frames manager.
Definition at line 214 of file sprite_editor.cc.
Referenced by DrawSpriteCanvas().
|
private |
Active sprites.
Definition at line 84 of file sprite_editor.h.
Referenced by DrawCustomSpritesMetadata(), DrawSpritesList(), and DrawVanillaSpriteEditor().
|
private |
Current sprite ID.
Definition at line 86 of file sprite_editor.h.
Referenced by DrawCustomSpritesMetadata(), DrawSpritesList(), and DrawVanillaSpriteEditor().
|
private |
Definition at line 87 of file sprite_editor.h.
Referenced by DrawCurrentSheets().
|
private |
Flag indicating whether the sheets are loaded or not.
Definition at line 88 of file sprite_editor.h.
Referenced by DrawVanillaSpriteEditor(), and Update().
|
private |
OAM configuration.
Definition at line 102 of file sprite_editor.h.
Referenced by DrawSpriteCanvas().
|
private |
OAM bitmap.
Definition at line 103 of file sprite_editor.h.
|
private |
Sprite canvas.
Definition at line 105 of file sprite_editor.h.
Referenced by DrawSpriteCanvas().
|
private |
Graphics sheet canvas.
Definition at line 109 of file sprite_editor.h.
Referenced by DrawCurrentSheets().
|
private |
|
private |
Status.
Definition at line 115 of file sprite_editor.h.
Referenced by DrawCustomSpritesMetadata(), and Update().
|
private |
Definition at line 117 of file sprite_editor.h.
Referenced by rom(), set_rom(), and SpriteEditor().