1#ifndef YAZE_SRC_CLI_HANDLERS_DUNGEON_GRAPH_COMMANDS_H_
2#define YAZE_SRC_CLI_HANDLERS_DUNGEON_GRAPH_COMMANDS_H_
6#include "absl/status/status.h"
22 std::string
GetName()
const {
return "dungeon-graph"; }
24 return "Generate room connectivity graph from staircase and holewarp data";
27 return "dungeon-graph --rom <path> [--room <room_id>] [--dungeon <id>] "
28 "[--format <json|text>]";
34 return absl::OkStatus();
50 std::string
GetName()
const override {
return "entrance-info"; }
52 return "Get entrance table data for an entrance ID";
55 return "entrance-info --rom <path> --entrance <entrance_id> [--spawn] "
56 "[--format <json|text>]";
76 std::string
GetName()
const override {
return "dungeon-discover"; }
78 return "Auto-discover all rooms reachable from an entrance";
81 return "dungeon-discover --rom <path> --entrance <entrance_id> "
82 "[--depth <max_depth>] [--format <json|text>]";
112 std::string
GetName()
const override {
return "dungeon-room-graph"; }
114 return "Build full room graph (doors + staircases) from an entrance";
117 return "dungeon-room-graph --entrance <id> [--depth <max>] "
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Command handler for auto-discovering dungeon rooms.
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.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
std::string GetName() const override
Get the command name.
std::string GetDescription() const
Command handler for generating a room connectivity graph.
std::string GetUsage() const
Get the command usage string.
std::string GetName() const
Get the command name.
absl::Status ValidateArgs(const resources::ArgumentParser &) override
Validate command arguments.
std::string GetDescription() const
absl::Status Execute(Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override
Execute the command business logic.
Full room connectivity graph including door edges.
std::string GetDescription() const
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.
absl::Status ValidateArgs(const resources::ArgumentParser &parser) override
Validate command arguments.
Command handler for reading entrance table data.
std::string GetDescription() const
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.
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.