yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
overworld_graph_commands.h
Go to the documentation of this file.
1#ifndef YAZE_CLI_HANDLERS_OVERWORLD_GRAPH_COMMANDS_H_
2#define YAZE_CLI_HANDLERS_OVERWORLD_GRAPH_COMMANDS_H_
3
4#include <string>
5
6#include "absl/status/status.h"
8
9namespace yaze {
10namespace cli {
11namespace handlers {
12
25 public:
26 std::string GetName() const override { return "overworld-export-graph"; }
27 std::string GetDescription() const {
28 return "Export overworld connectivity graph for navigation";
29 }
30 std::string GetUsage() const override {
31 return "overworld-export-graph [--world <light|dark|all>] "
32 "[--output <path>] [--format <json|text>]";
33 }
34
35 protected:
36 absl::Status ValidateArgs(
37 const resources::ArgumentParser& /*parser*/) override {
38 return absl::OkStatus(); // All args are optional
39 }
40
41 absl::Status Execute(Rom* rom, const resources::ArgumentParser& parser,
42 resources::OutputFormatter& formatter) override;
43
44 private:
45 // Structures for graph data
46 struct AreaInfo {
47 int id;
48 std::string name;
49 int world;
50 int grid_x;
51 int grid_y;
52 std::string size;
54 int min_x, min_y, max_x, max_y; // Pixel bounds
55 };
56
60 std::string direction;
61 int edge_x;
62 int edge_y;
64 };
65
66 struct EntranceInfo {
67 int id;
68 std::string name;
73 bool is_hole;
74 };
75
76 struct ExitInfo {
78 std::string name;
82 };
83};
84
85} // namespace handlers
86} // namespace cli
87} // namespace yaze
88
89#endif // YAZE_CLI_HANDLERS_OVERWORLD_GRAPH_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 exporting overworld connectivity graph.
absl::Status ValidateArgs(const resources::ArgumentParser &) override
Validate command arguments.
std::string GetUsage() const override
Get the command usage string.
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.
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.
Utility for consistent output formatting across commands.