yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_edit_commands.h
Go to the documentation of this file.
1#ifndef YAZE_SRC_CLI_HANDLERS_GAME_DUNGEON_EDIT_COMMANDS_H_
2#define YAZE_SRC_CLI_HANDLERS_GAME_DUNGEON_EDIT_COMMANDS_H_
3
5
6namespace yaze {
7namespace cli {
8namespace handlers {
9
16 public:
17 std::string GetName() const override { return "dungeon-place-sprite"; }
18 std::string GetDescription() const {
19 return "Place a sprite in a dungeon room";
20 }
21 std::string GetUsage() const override {
22 return "dungeon-place-sprite --room <hex> --id <hex> --x <int> --y <int> "
23 "[--subtype <int>] [--layer <0|1>] "
24 "[--write] [--format <json|text>]";
25 }
26
27 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
28 return parser.RequireArgs({"room", "id", "x", "y"});
29 }
30
31 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
32 resources::OutputFormatter& formatter) override;
33};
34
41 public:
42 std::string GetName() const override { return "dungeon-remove-sprite"; }
43 std::string GetDescription() const {
44 return "Remove a sprite from a dungeon room";
45 }
46 std::string GetUsage() const override {
47 return "dungeon-remove-sprite --room <hex> "
48 "[--index <int> | --x <int> --y <int>] "
49 "[--write] [--format <json|text>]";
50 }
51
52 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
53 return parser.RequireArgs({"room"});
54 }
55
56 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
57 resources::OutputFormatter& formatter) override;
58};
59
66 public:
67 std::string GetName() const override { return "dungeon-place-object"; }
68 std::string GetDescription() const {
69 return "Place a dungeon object in a room";
70 }
71 std::string GetUsage() const override {
72 return "dungeon-place-object --room <hex> --id <hex> --x <int> --y <int> "
73 "[--size <int>] [--layer <0|1|2>] "
74 "[--manifest <path>] "
75 "[--write] [--format <json|text>]";
76 }
77
78 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
79 return parser.RequireArgs({"room", "id", "x", "y"});
80 }
81
82 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
83 resources::OutputFormatter& formatter) override;
84};
85
92 public:
93 std::string GetName() const override { return "dungeon-remove-object"; }
94 std::string GetDescription() const {
95 return "Remove a guarded dungeon object from a room";
96 }
97 std::string GetUsage() const override {
98 return "dungeon-remove-object --room <hex> --index <int> "
99 "--expect-id <hex> --expect-x <int> --expect-y <int> "
100 "--expect-size <int> --expect-layer <0|1|2> "
101 "[--manifest <path>] "
102 "[--write] [--format <json|text>]";
103 }
104
105 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
106 return parser.RequireArgs({"room", "index", "expect-id", "expect-x",
107 "expect-y", "expect-size", "expect-layer"});
108 }
109
110 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
111 resources::OutputFormatter& formatter) override;
112};
113
122 public:
123 std::string GetName() const override { return "dungeon-get-palette"; }
124 std::string GetDescription() const {
125 return "Inspect a room's resolved shared dungeon palette in a US/OOS ROM";
126 }
127 std::string GetUsage() const override {
128 return "dungeon-get-palette --room <hex> [--index <0..89>] "
129 "[--format <json|text>]";
130 }
131
132 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
133 return parser.RequireArgs({"room"});
134 }
135
136 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
137 resources::OutputFormatter& formatter) override;
138};
139
147 public:
148 std::string GetName() const override { return "dungeon-set-palette-color"; }
149 std::string GetDescription() const {
150 return "Change one US/OOS shared dungeon palette color with safety guards";
151 }
152 std::string GetUsage() const override {
153 return "dungeon-set-palette-color --room <hex> --index <0..89> "
154 "--expect-palette-set <hex> --expect-palette-index <0..19> "
155 "--expect-color <hex> --color <hex> --manifest <path> "
156 "[--write] [--format <json|text>]";
157 }
158
159 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
160 return parser.RequireArgs({"room", "index", "expect-palette-set",
161 "expect-palette-index", "expect-color", "color",
162 "manifest"});
163 }
164
165 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
166 resources::OutputFormatter& formatter) override;
167};
168
176 public:
177 std::string GetName() const override { return "dungeon-set-door-type"; }
178 std::string GetDescription() const {
179 return "Change an existing dungeon door type";
180 }
181 std::string GetUsage() const override {
182 return "dungeon-set-door-type --room <hex> --x <int> --y <int> "
183 "--type <hex> --expect-type <hex> --manifest <path> "
184 "[--write] [--format <json|text>]";
185 }
186
187 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
188 return parser.RequireArgs(
189 {"room", "x", "y", "type", "expect-type", "manifest"});
190 }
191
192 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
193 resources::OutputFormatter& formatter) override;
194};
195
200 public:
201 std::string GetName() const override { return "dungeon-list-pot-items"; }
202 std::string GetDescription() const {
203 return "List existing dungeon pot-item entries";
204 }
205 std::string GetUsage() const override {
206 return "dungeon-list-pot-items --room <hex> "
207 "[--format <json|text>]";
208 }
209
210 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
211 return parser.RequireArgs({"room"});
212 }
213
214 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
215 resources::OutputFormatter& formatter) override;
216};
217
225 public:
226 std::string GetName() const override { return "dungeon-set-pot-item"; }
227 std::string GetDescription() const {
228 return "Change an existing dungeon pot item";
229 }
230 std::string GetUsage() const override {
231 return "dungeon-set-pot-item --room <hex> --index <int> "
232 "--expect-position <hex> --expect-item <hex> --item <hex> "
233 "--manifest <path> [--write] [--format <json|text>]";
234 }
235
236 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
237 return parser.RequireArgs({"room", "index", "expect-position",
238 "expect-item", "item", "manifest"});
239 }
240
241 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
242 resources::OutputFormatter& formatter) override;
243};
244
252 public:
253 std::string GetName() const override { return "dungeon-set-collision-tile"; }
254 std::string GetDescription() const {
255 return "Set custom collision tiles in a dungeon room";
256 }
257 std::string GetUsage() const override {
258 return "dungeon-set-collision-tile --room <hex> "
259 "--tiles <x,y,tile>[;<x,y,tile>...] "
260 "[--write] [--format <json|text>]";
261 }
262
263 absl::Status ValidateArgs(const resources::ArgumentParser& parser) override {
264 return parser.RequireArgs({"room", "tiles"});
265 }
266
267 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
268 resources::OutputFormatter& formatter) override;
269};
270
271} // namespace handlers
272} // namespace cli
273} // namespace yaze
274
275#endif // YAZE_SRC_CLI_HANDLERS_GAME_DUNGEON_EDIT_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
Resolve and inspect the shared dungeon palette used by one room.
std::string GetUsage() const override
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
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.
List existing pot-item entries and their exact ROM addresses.
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.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const override
Get the command name.
Place a dungeon object (track segment, door, etc.) in a room.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
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.
Place a sprite in a dungeon room and optionally write to ROM.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const override
Get the command name.
std::string GetUsage() const override
Get the command usage string.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Remove one ordinary dungeon object with exact identity guards.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
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.
Remove a sprite from a dungeon room by index or position.
std::string GetName() const override
Get the command name.
std::string GetUsage() const override
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Set individual custom collision tiles in a dungeon room.
std::string GetName() const override
Get the command name.
std::string GetUsage() const override
Get the command usage string.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Change one existing dungeon door's fixed-width type byte.
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.
Change one color in a room's resolved shared dungeon palette.
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.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetUsage() const override
Get the command usage string.
Change one existing pot item's fixed-width item byte.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const override
Get the command name.
std::string GetUsage() const override
Get the command usage string.
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Utility for parsing common CLI argument patterns.
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.