1#ifndef YAZE_APP_EDITOR_PALETTE_EDITOR_H
2#define YAZE_APP_EDITOR_PALETTE_EDITOR_H
8#include "absl/status/status.h"
16#include "imgui/imgui.h"
21namespace palette_internal {
33 void RecordChange(
const std::string& group_name,
size_t palette_index,
41 {group_name, palette_index, color_index, original_color, new_color});
46 size_t color_index)
const {
48 if (change.group_name == group_name &&
49 change.palette_index == palette_index &&
50 change.color_index == color_index) {
51 return change.original_color;
90 absl::Status
Load()
override;
91 absl::Status
Update()
override;
92 absl::Status
Cut()
override {
return absl::OkStatus(); }
93 absl::Status
Copy()
override {
return absl::OkStatus(); }
94 absl::Status
Paste()
override {
return absl::OkStatus(); }
95 absl::Status
Undo()
override;
96 absl::Status
Redo()
override;
97 absl::Status
Find()
override {
return absl::OkStatus(); }
98 absl::Status
Save()
override;
114 void JumpToPalette(
const std::string& group_name,
int palette_index);
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Dungeon Main palette group panel.
Interface for editor classes.
virtual void SetGameData(zelda3::GameData *game_data)
zelda3::GameData * game_data() const
Equipment/Armor palette group panel.
Manage graphics group configurations in a Rom.
void SetGameData(zelda3::GameData *data)
Overworld Animated palette group panel.
Overworld Main palette group panel.
Allows the user to view and edit in game palettes.
void DrawCategorizedPaletteList()
void Initialize() override
absl::Status DrawPaletteGroup(int category, bool right_side=false)
void DrawCustomPalettePanel()
bool * GetShowFlagForGroup(const std::string &group_name)
OverworldAnimatedPalettePanel * ow_anim_panel_
absl::Status ResetColorToOriginal(gfx::SnesPalette &palette, int index, const gfx::SnesPalette &originalPalette)
std::vector< gfx::SnesColor > custom_palette_
SpritesAux1PalettePanel * sprite_aux1_panel_
absl::Status Find() override
void DrawCustomPalette()
Draw custom palette editor with enhanced ROM hacking features.
bool show_sprites_aux3_panel_
ImVec4 saved_palette_[256]
bool show_sprites_aux1_panel_
void AddRecentlyUsedColor(const gfx::SnesColor &color)
absl::Status Update() override
bool PassesSearchFilter(const std::string &group_name) const
PaletteEditor(Rom *rom=nullptr)
absl::Status Undo() override
bool show_dungeon_main_panel_
bool show_equipment_panel_
absl::Status Copy() override
EquipmentPalettePanel * equipment_panel_
bool show_custom_palette_
SpritePalettePanel * sprite_global_panel_
absl::Status HandleColorPopup(gfx::SnesPalette &palette, int i, int j, int n)
bool show_ow_animated_panel_
gfx::SnesColor current_color_
void DrawQuickAccessPanel()
SpritesAux2PalettePanel * sprite_aux2_panel_
void DrawQuickAccessTab()
std::vector< gfx::SnesColor > recently_used_colors_
palette_internal::PaletteEditorHistory history_
absl::Status Save() override
bool show_sprites_aux2_panel_
absl::Status Paste() override
absl::Status Load() override
absl::Status Cut() override
GfxGroupEditor gfx_group_editor_
void JumpToPalette(const std::string &group_name, int palette_index)
Jump to a specific palette by group and index.
DungeonMainPalettePanel * dungeon_main_panel_
bool control_panel_minimized_
void SetGameData(zelda3::GameData *game_data) override
SpritesAux3PalettePanel * sprite_aux3_panel_
OverworldMainPalettePanel * ow_main_panel_
absl::Status Redo() override
absl::Status EditColorInPalette(gfx::SnesPalette &palette, int index)
Global Sprite palette group panel.
Sprites Aux1 palette group panel.
Sprites Aux2 palette group panel.
Sprites Aux3 palette group panel.
gfx::SnesColor & GetOriginalColor(size_t index)
gfx::SnesColor RestoreOriginalColor(const std::string &group_name, size_t palette_index, size_t color_index) const
std::deque< PaletteChange > recent_changes_
static const size_t kMaxHistorySize
gfx::SnesColor & GetModifiedColor(size_t index)
void RecordChange(const std::string &group_name, size_t palette_index, size_t color_index, const gfx::SnesColor &original_color, const gfx::SnesColor &new_color)
const std::deque< PaletteChange > & GetRecentChanges() const
Represents a palette of colors for the Super Nintendo Entertainment System (SNES).
absl::Status DisplayPalette(gfx::SnesPalette &palette, bool loaded)
Display SNES palette with enhanced ROM hacking features.
gfx::SnesColor original_color