yaze 0.2.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
sprite_editor.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_SPRITE_EDITOR_H
2#define YAZE_APP_EDITOR_SPRITE_EDITOR_H
3
4#include <cstdint>
5#include <vector>
6
7#include "absl/status/status.h"
9#include "app/editor/editor.h"
10#include "app/gui/canvas.h"
11#include "app/rom.h"
12
13namespace yaze {
14namespace editor {
15
16constexpr ImGuiTabItemFlags kSpriteTabFlags =
17 ImGuiTabItemFlags_Trailing | ImGuiTabItemFlags_NoTooltip;
18
19constexpr ImGuiTabBarFlags kSpriteTabBarFlags =
20 ImGuiTabBarFlags_AutoSelectNewTabs | ImGuiTabBarFlags_Reorderable |
21 ImGuiTabBarFlags_FittingPolicyResizeDown |
22 ImGuiTabBarFlags_TabListPopupButton;
23
24constexpr ImGuiTableFlags kSpriteTableFlags =
25 ImGuiTableFlags_Resizable | ImGuiTableFlags_Reorderable |
26 ImGuiTableFlags_Hideable | ImGuiTableFlags_BordersOuter |
27 ImGuiTableFlags_BordersV;
28
36class SpriteEditor : public SharedRom, public Editor {
37 public:
39
45 absl::Status Update() override;
46
47 absl::Status Undo() override { return absl::UnimplementedError("Undo"); }
48 absl::Status Redo() override { return absl::UnimplementedError("Redo"); }
49 absl::Status Cut() override { return absl::UnimplementedError("Cut"); }
50 absl::Status Copy() override { return absl::UnimplementedError("Copy"); }
51 absl::Status Paste() override { return absl::UnimplementedError("Paste"); }
52 absl::Status Find() override { return absl::UnimplementedError("Find"); }
53
54 private:
56
60 void DrawSpritesList();
61
65 void DrawSpriteCanvas();
66
70 void DrawCurrentSheets();
71
72 void DrawCustomSprites();
73
75
80
81 ImVector<int> active_sprites_;
82
84 uint8_t current_sheets_[8] = {0x00, 0x0A, 0x06, 0x07, 0x00, 0x00, 0x00, 0x00};
86 false;
87
88 // OAM Configuration
89 struct OAMConfig {
90 uint16_t x;
91 uint16_t y;
92 uint8_t tile;
93 uint8_t palette;
94 uint8_t priority;
95 bool flip_x;
96 bool flip_y;
97 };
98
101
103 "SpriteCanvas", ImVec2(0x200, 0x200),
105
107 "GraphicsSheetCanvas", ImVec2(0x80 * 2 + 2, 0x40 * 8 + 2),
109
110 std::vector<zsprite::ZSprite> custom_sprites_;
111
112 absl::Status status_;
113};
114
115} // namespace editor
116} // namespace yaze
117
118#endif // YAZE_APP_EDITOR_SPRITE_EDITOR_H
SharedRom()=default
EditorType type_
Definition editor.h:68
ImVector< int > active_sprites_
absl::Status Find() override
void DrawAnimationFrames()
Draws the animation frames manager.
void DrawCurrentSheets()
Draws the current sheets.
void DrawSpriteCanvas()
Draws the sprite canvas.
absl::Status Paste() override
absl::Status Update() override
Updates the sprite editor.
void DrawSpritesList()
Draws the sprites list.
absl::Status Redo() override
absl::Status Cut() override
absl::Status Undo() override
std::vector< zsprite::ZSprite > custom_sprites_
absl::Status Copy() override
Represents a bitmap image.
Definition bitmap.h:66
Represents a canvas for drawing and manipulating graphics.
Definition canvas.h:34
Editors are the view controllers for the application.
constexpr ImGuiTableFlags kSpriteTableFlags
constexpr ImGuiTabItemFlags kSpriteTabFlags
constexpr ImGuiTabBarFlags kSpriteTabBarFlags
Main namespace for the application.
Definition controller.cc:18