Command handler for auto-discovering dungeon rooms. More...
#include <dungeon_graph_commands.h>


Public Member Functions | |
| std::string | GetName () const override |
| Get the command name. | |
| 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. | |
| absl::Status | Execute (Rom *rom, const resources::ArgumentParser &parser, resources::OutputFormatter &formatter) override |
| Execute the command business logic. | |
Public Member Functions inherited from yaze::cli::resources::CommandHandler | |
| virtual | ~CommandHandler ()=default |
| absl::Status | Run (const std::vector< std::string > &args, Rom *rom_context, std::string *captured_output=nullptr) |
| Execute the command. | |
| virtual Descriptor | Describe () const |
| Provide metadata for TUI/help summaries. | |
| virtual bool | RequiresRom () const |
| Check if the command requires a loaded ROM. | |
| virtual bool | RequiresLabels () const |
| Check if the command requires ROM labels. | |
| virtual void | SetProjectContext (project::YazeProject *project) |
| Set the YazeProject context. Default implementation does nothing, override if tool needs project info. | |
| virtual void | SetAsarWrapper (core::AsarWrapper *asar_wrapper) |
| Set the AsarWrapper context. Default implementation does nothing, override if tool needs Asar access. | |
| virtual void | SetRomContext (Rom *rom) |
| Set the ROM context for tools that need ROM access. Default implementation stores the ROM pointer for subclass use. | |
| virtual void | SetSymbolProvider (emu::debug::SymbolProvider *provider) |
| Set the SymbolProvider context. | |
Additional Inherited Members | |
Protected Member Functions inherited from yaze::cli::resources::CommandHandler | |
| virtual std::string | GetDefaultFormat () const |
| Get the default output format ("json" or "text") | |
| virtual std::string | GetOutputTitle () const |
| Get the output title for formatting. | |
Protected Attributes inherited from yaze::cli::resources::CommandHandler | |
| Rom * | rom_ = nullptr |
| emu::debug::SymbolProvider * | symbol_provider_ = nullptr |
| project::YazeProject * | project_ = nullptr |
| core::AsarWrapper * | asar_wrapper_ = nullptr |
Command handler for auto-discovering dungeon rooms.
Starting from an entrance ID, performs BFS through staircase and holewarp connections to discover reachable rooms. Returns the room list and connection graph.
Definition at line 74 of file dungeon_graph_commands.h.
|
inlineoverridevirtual |
Get the command name.
Override this to provide a unique identifier for the command. This is used for command registration and lookup.
Implements yaze::cli::resources::CommandHandler.
Definition at line 76 of file dungeon_graph_commands.h.
|
inline |
Definition at line 77 of file dungeon_graph_commands.h.
|
inlineoverridevirtual |
Get the command usage string.
Implements yaze::cli::resources::CommandHandler.
Definition at line 80 of file dungeon_graph_commands.h.
|
inlineoverridevirtual |
Validate command arguments.
Implements yaze::cli::resources::CommandHandler.
Definition at line 85 of file dungeon_graph_commands.h.
References yaze::cli::resources::ArgumentParser::RequireArgs().

|
overridevirtual |
Execute the command business logic.
Override this to implement command-specific functionality. The ROM is guaranteed to be loaded and labels initialized.
Implements yaze::cli::resources::CommandHandler.
Definition at line 393 of file dungeon_graph_commands.cc.
References yaze::cli::resources::OutputFormatter::AddField(), yaze::cli::resources::OutputFormatter::BeginArray(), yaze::cli::resources::OutputFormatter::BeginObject(), yaze::zelda3::RoomEntrance::dungeon_id_, yaze::cli::resources::OutputFormatter::EndArray(), yaze::cli::resources::OutputFormatter::EndObject(), yaze::cli::resources::ArgumentParser::GetString(), yaze::zelda3::Room::holewarp(), yaze::zelda3::kRoomNames, yaze::zelda3::LoadRoomHeaderFromRom(), yaze::zelda3::RoomEntrance::room_, and yaze::zelda3::Room::staircase_room().