yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
command_handlers.cc
Go to the documentation of this file.
2
5#ifdef YAZE_WITH_GRPC
7#endif
16
17#include <memory>
18
19namespace yaze {
20namespace cli {
21namespace handlers {
22
23std::vector<std::unique_ptr<resources::CommandHandler>> CreateCliCommandHandlers() {
24 std::vector<std::unique_ptr<resources::CommandHandler>> handlers;
25
26 // Graphics commands
27 handlers.push_back(std::make_unique<HexReadCommandHandler>());
28 handlers.push_back(std::make_unique<HexWriteCommandHandler>());
29 handlers.push_back(std::make_unique<HexSearchCommandHandler>());
30
31 // Palette commands
32 handlers.push_back(std::make_unique<PaletteGetColorsCommandHandler>());
33 handlers.push_back(std::make_unique<PaletteSetColorCommandHandler>());
34 handlers.push_back(std::make_unique<PaletteAnalyzeCommandHandler>());
35
36 // Sprite commands
37 handlers.push_back(std::make_unique<SpriteListCommandHandler>());
38 handlers.push_back(std::make_unique<SpritePropertiesCommandHandler>());
39 handlers.push_back(std::make_unique<SpritePaletteCommandHandler>());
40
41 // Music commands
42 handlers.push_back(std::make_unique<MusicListCommandHandler>());
43 handlers.push_back(std::make_unique<MusicInfoCommandHandler>());
44 handlers.push_back(std::make_unique<MusicTracksCommandHandler>());
45
46 // Dialogue commands
47 handlers.push_back(std::make_unique<DialogueListCommandHandler>());
48 handlers.push_back(std::make_unique<DialogueReadCommandHandler>());
49 handlers.push_back(std::make_unique<DialogueSearchCommandHandler>());
50
51 // Message commands
52 handlers.push_back(std::make_unique<MessageListCommandHandler>());
53 handlers.push_back(std::make_unique<MessageReadCommandHandler>());
54 handlers.push_back(std::make_unique<MessageSearchCommandHandler>());
55
56 return handlers;
57}
58
60
61std::vector<std::unique_ptr<resources::CommandHandler>> CreateAgentCommandHandlers() {
62 std::vector<std::unique_ptr<resources::CommandHandler>> handlers;
63
64 // Add simple-chat command handler
65 handlers.push_back(std::make_unique<SimpleChatCommandHandler>());
66
67 // Resource inspection tools
68 handlers.push_back(std::make_unique<ResourceListCommandHandler>());
69 handlers.push_back(std::make_unique<ResourceSearchCommandHandler>());
70
71 // Dungeon inspection
72 handlers.push_back(std::make_unique<DungeonListSpritesCommandHandler>());
73 handlers.push_back(std::make_unique<DungeonDescribeRoomCommandHandler>());
74 handlers.push_back(std::make_unique<DungeonExportRoomCommandHandler>());
75 handlers.push_back(std::make_unique<DungeonListObjectsCommandHandler>());
76 handlers.push_back(std::make_unique<DungeonGetRoomTilesCommandHandler>());
77 handlers.push_back(std::make_unique<DungeonSetRoomPropertyCommandHandler>());
78
79 // Overworld inspection
80 handlers.push_back(std::make_unique<OverworldFindTileCommandHandler>());
81 handlers.push_back(std::make_unique<OverworldDescribeMapCommandHandler>());
82 handlers.push_back(std::make_unique<OverworldListWarpsCommandHandler>());
83 handlers.push_back(std::make_unique<OverworldListSpritesCommandHandler>());
84 handlers.push_back(std::make_unique<OverworldGetEntranceCommandHandler>());
85 handlers.push_back(std::make_unique<OverworldTileStatsCommandHandler>());
86
87 // GUI automation tools
88 handlers.push_back(std::make_unique<GuiPlaceTileCommandHandler>());
89 handlers.push_back(std::make_unique<GuiClickCommandHandler>());
90 handlers.push_back(std::make_unique<GuiDiscoverToolCommandHandler>());
91 handlers.push_back(std::make_unique<GuiScreenshotCommandHandler>());
92
93 // Emulator & debugger commands
94#ifdef YAZE_WITH_GRPC
95 handlers.push_back(std::make_unique<EmulatorStepCommandHandler>());
96 handlers.push_back(std::make_unique<EmulatorRunCommandHandler>());
97 handlers.push_back(std::make_unique<EmulatorPauseCommandHandler>());
98 handlers.push_back(std::make_unique<EmulatorResetCommandHandler>());
99 handlers.push_back(std::make_unique<EmulatorGetStateCommandHandler>());
100 handlers.push_back(std::make_unique<EmulatorSetBreakpointCommandHandler>());
101 handlers.push_back(std::make_unique<EmulatorClearBreakpointCommandHandler>());
102 handlers.push_back(std::make_unique<EmulatorListBreakpointsCommandHandler>());
103 handlers.push_back(std::make_unique<EmulatorReadMemoryCommandHandler>());
104 handlers.push_back(std::make_unique<EmulatorWriteMemoryCommandHandler>());
105 handlers.push_back(std::make_unique<EmulatorGetRegistersCommandHandler>());
106 handlers.push_back(std::make_unique<EmulatorGetMetricsCommandHandler>());
107#endif
108
109 return handlers;
110}
111
112std::vector<std::unique_ptr<resources::CommandHandler>> CreateAllCommandHandlers() {
113 std::vector<std::unique_ptr<resources::CommandHandler>> handlers;
114
115 // Add CLI handlers
116 auto cli_handlers = CreateCliCommandHandlers();
117 for (auto& handler : cli_handlers) {
118 handlers.push_back(std::move(handler));
119 }
120
121 // Add agent handlers
122 auto agent_handlers = CreateAgentCommandHandlers();
123 for (auto& handler : agent_handlers) {
124 handlers.push_back(std::move(handler));
125 }
126
127 return handlers;
128}
129
130} // namespace handlers
131} // namespace cli
132} // namespace yaze
std::vector< std::unique_ptr< resources::CommandHandler > > CreateAllCommandHandlers()
Factory function to create all command handlers (CLI + agent)
std::vector< std::unique_ptr< resources::CommandHandler > > CreateCliCommandHandlers()
Factory function to create all CLI-level command handlers.
std::vector< std::unique_ptr< resources::CommandHandler > > CreateAgentCommandHandlers()
Factory function to create all agent-specific command handlers.
Main namespace for the application.
Definition controller.cc:20