53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#ifndef YAZE_APP_EDITOR_SPRITE_EDITOR_H
|
|
#define YAZE_APP_EDITOR_SPRITE_EDITOR_H
|
|
|
|
#include "absl/status/status.h"
|
|
#include "app/gui/canvas.h"
|
|
#include "app/rom.h"
|
|
|
|
namespace yaze {
|
|
namespace app {
|
|
namespace editor {
|
|
|
|
/**
|
|
* @class SpriteEditor
|
|
* @brief 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.
|
|
*/
|
|
class SpriteEditor : public SharedROM {
|
|
public:
|
|
/**
|
|
* @brief Updates the sprite editor.
|
|
*
|
|
* @return An absl::Status indicating the success or failure of the update.
|
|
*/
|
|
absl::Status Update();
|
|
|
|
private:
|
|
/**
|
|
* @brief Draws the editor table.
|
|
*/
|
|
void DrawEditorTable();
|
|
|
|
/**
|
|
* @brief Draws the sprite canvas.
|
|
*/
|
|
void DrawSpriteCanvas();
|
|
|
|
/**
|
|
* @brief Draws the current sheets.
|
|
*/
|
|
void DrawCurrentSheets();
|
|
|
|
uint8_t current_sheets_[8]; /**< Array to store the current sheets. */
|
|
bool sheets_loaded_ =
|
|
false; /**< Flag indicating whether the sheets are loaded or not. */
|
|
};
|
|
|
|
} // namespace editor
|
|
} // namespace app
|
|
} // namespace yaze
|
|
|
|
#endif // YAZE_APP_EDITOR_SPRITE_EDITOR_H
|