Files
yaze/src/cli/handlers/game/dialogue_commands.cc
scawful 31d0337b11 feat(command-abstraction): refactor CLI command architecture and introduce new documentation
- Implemented a Command Abstraction Layer to eliminate ~1300 lines of duplicated code across tool commands, enhancing maintainability and consistency.
- Established a unified structure for argument parsing, ROM loading, and output formatting across all commands.
- Added comprehensive documentation, including a Command Abstraction Guide with migration checklists and testing strategies.
- Introduced better testing capabilities for command components, making them AI-friendly and easier to validate.
- Removed legacy command classes and integrated new command handlers for improved functionality.

Benefits:
- Streamlined command handling and improved code quality.
- Enhanced developer experience with clear documentation and testing strategies.
- Maintained backward compatibility with no breaking changes to existing command interfaces.
2025-10-10 22:24:20 -04:00

61 lines
2.0 KiB
C++

#include "cli/handlers/game/dialogue_commands.h"
#include "absl/strings/str_format.h"
namespace yaze {
namespace cli {
namespace handlers {
absl::Status DialogueListCommandHandler::Execute(Rom* rom, const resources::ArgumentParser& parser,
resources::OutputFormatter& formatter) {
auto limit = parser.GetInt("limit").value_or(10);
formatter.BeginObject("Dialogue Messages");
formatter.AddField("total_messages", 0);
formatter.AddField("limit", limit);
formatter.AddField("status", "not_implemented");
formatter.AddField("message", "Dialogue listing requires dialogue system integration");
formatter.BeginArray("messages");
formatter.EndArray();
formatter.EndObject();
return absl::OkStatus();
}
absl::Status DialogueReadCommandHandler::Execute(Rom* rom, const resources::ArgumentParser& parser,
resources::OutputFormatter& formatter) {
auto message_id = parser.GetString("id").value();
formatter.BeginObject("Dialogue Message");
formatter.AddField("message_id", message_id);
formatter.AddField("status", "not_implemented");
formatter.AddField("message", "Dialogue reading requires dialogue system integration");
formatter.EndObject();
return absl::OkStatus();
}
absl::Status DialogueSearchCommandHandler::Execute(Rom* rom, const resources::ArgumentParser& parser,
resources::OutputFormatter& formatter) {
auto query = parser.GetString("query").value();
auto limit = parser.GetInt("limit").value_or(10);
formatter.BeginObject("Dialogue Search Results");
formatter.AddField("query", query);
formatter.AddField("limit", limit);
formatter.AddField("matches_found", 0);
formatter.AddField("status", "not_implemented");
formatter.AddField("message", "Dialogue search requires dialogue system integration");
formatter.BeginArray("matches");
formatter.EndArray();
formatter.EndObject();
return absl::OkStatus();
}
} // namespace handlers
} // namespace cli
} // namespace yaze