50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
#ifndef YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H
|
|
#define YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H
|
|
|
|
#include "absl/status/status.h"
|
|
#include "app/gfx/types/snes_palette.h"
|
|
#include "app/gui/canvas/canvas.h"
|
|
#include "app/rom.h"
|
|
|
|
namespace yaze {
|
|
namespace editor {
|
|
|
|
/**
|
|
* @class GfxGroupEditor
|
|
* @brief Manage graphics group configurations in a Rom.
|
|
*/
|
|
class GfxGroupEditor {
|
|
public:
|
|
absl::Status Update();
|
|
|
|
void DrawBlocksetViewer(bool sheet_only = false);
|
|
void DrawRoomsetViewer();
|
|
void DrawSpritesetViewer(bool sheet_only = false);
|
|
void DrawPaletteViewer();
|
|
|
|
void SetSelectedBlockset(uint8_t blockset) { selected_blockset_ = blockset; }
|
|
void SetSelectedRoomset(uint8_t roomset) { selected_roomset_ = roomset; }
|
|
void SetSelectedSpriteset(uint8_t spriteset) {
|
|
selected_spriteset_ = spriteset;
|
|
}
|
|
void set_rom(Rom* rom) { rom_ = rom; }
|
|
Rom* rom() const { return rom_; }
|
|
|
|
private:
|
|
uint8_t selected_blockset_ = 0;
|
|
uint8_t selected_roomset_ = 0;
|
|
uint8_t selected_spriteset_ = 0;
|
|
uint8_t selected_paletteset_ = 0;
|
|
|
|
gui::Canvas blockset_canvas_;
|
|
gui::Canvas roomset_canvas_;
|
|
gui::Canvas spriteset_canvas_;
|
|
|
|
gfx::SnesPalette palette_;
|
|
Rom* rom_ = nullptr;
|
|
};
|
|
|
|
} // namespace editor
|
|
} // namespace yaze
|
|
#endif // YAZE_APP_EDITOR_GFX_GROUP_EDITOR_H
|