yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
palette_commands.h
Go to the documentation of this file.
1#ifndef YAZE_SRC_CLI_HANDLERS_PALETTE_COMMANDS_H_
2#define YAZE_SRC_CLI_HANDLERS_PALETTE_COMMANDS_H_
3
5
6namespace yaze {
7namespace cli {
8namespace handlers {
9
25 public:
26 std::string GetName() const override { return "palette-get-colors"; }
27 std::string GetDescription() const {
28 return "Get colors from a ROM palette group";
29 }
30 std::string GetUsage() const override {
31 return "palette-get-colors --group <group_name> [--index <palette_index>] "
32 "[--format <json|text>]";
33 }
34
35 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
36 return parser.RequireArgs({"group"});
37 }
38
39 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
40 resources::OutputFormatter& formatter) override;
41};
42
56 public:
57 std::string GetName() const override { return "palette-set-color"; }
58 std::string GetDescription() const {
59 return "Preview a color replacement; persistent writes are disabled";
60 }
61 std::string GetUsage() const override {
62 return "palette-set-color --group <group_name> --palette <palette_index> "
63 "--index <color_index> --color <RRGGBB> "
64 "[--format <json|text>]";
65 }
66
67 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
68 if (parser.HasFlag("write")) {
69 return absl::FailedPreconditionError(
70 "palette-set-color --write is disabled because it cannot guarantee "
71 "durable, manifest-safe persistence; use "
72 "dungeon-set-palette-color for dungeon palette writes");
73 }
74 return parser.RequireArgs({"group", "palette", "index", "color"});
75 }
76
77 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
78 resources::OutputFormatter& formatter) override;
79};
80
92 public:
93 std::string GetName() const override { return "palette-analyze"; }
94 std::string GetDescription() const {
95 return "Analyze palette usage statistics and color properties";
96 }
97 std::string GetUsage() const override {
98 return "palette-analyze [--group <group_name>] [--format <json|text>]";
99 }
100
101 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
102 return absl::OkStatus(); // No required args
103 }
104
105 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
106 resources::OutputFormatter& formatter) override;
107};
108
109} // namespace handlers
110} // namespace cli
111} // namespace yaze
112
113#endif // YAZE_SRC_CLI_HANDLERS_PALETTE_COMMANDS_H_
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Definition rom.h:28
Command handler for analyzing palette usage statistics.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const override
Get the command name.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetUsage() const override
Get the command usage string.
Command handler for getting palette colors from a ROM.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetUsage() const override
Get the command usage string.
std::string GetName() const override
Get the command name.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
Legacy read-only preview for changing one palette color.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
std::string GetName() const override
Get the command name.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetUsage() const override
Get the command usage string.
Utility for parsing common CLI argument patterns.
bool HasFlag(const std::string &name) const
Check if a flag is present.
absl::Status RequireArgs(const std::vector< std::string > &required) const
Validate that required arguments are present.
Base class for CLI command handlers.
Utility for consistent output formatting across commands.