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
3#include <memory>
4
29#ifdef YAZE_WITH_GRPC
31#endif
44
45namespace yaze {
46namespace cli {
47namespace handlers {
48
49std::vector<std::unique_ptr<resources::CommandHandler>>
51 std::vector<std::unique_ptr<resources::CommandHandler>> handlers;
52
53 // Graphics commands
54 handlers.push_back(std::make_unique<HexReadCommandHandler>());
55 handlers.push_back(std::make_unique<HexWriteCommandHandler>());
56 handlers.push_back(std::make_unique<HexSearchCommandHandler>());
57
58 // Palette commands
59 handlers.push_back(std::make_unique<PaletteGetColorsCommandHandler>());
60 handlers.push_back(std::make_unique<PaletteSetColorCommandHandler>());
61 handlers.push_back(std::make_unique<PaletteAnalyzeCommandHandler>());
62
63 // Sprite commands
64 handlers.push_back(std::make_unique<SpriteListCommandHandler>());
65 handlers.push_back(std::make_unique<SpritePropertiesCommandHandler>());
66 handlers.push_back(std::make_unique<SpritePaletteCommandHandler>());
67
68 // Music commands
69 handlers.push_back(std::make_unique<MusicListCommandHandler>());
70 handlers.push_back(std::make_unique<MusicInfoCommandHandler>());
71 handlers.push_back(std::make_unique<MusicTracksCommandHandler>());
72
73 // Oracle menu tooling
74 handlers.push_back(std::make_unique<OracleMenuIndexCommandHandler>());
75 handlers.push_back(std::make_unique<OracleMenuSetOffsetCommandHandler>());
76 handlers.push_back(std::make_unique<OracleMenuValidateCommandHandler>());
77 handlers.push_back(std::make_unique<DungeonOraclePreflightCommandHandler>());
78 handlers.push_back(std::make_unique<OracleSmokeCheckCommandHandler>());
79
80 // Dialogue commands
81 handlers.push_back(std::make_unique<DialogueListCommandHandler>());
82 handlers.push_back(std::make_unique<DialogueReadCommandHandler>());
83 handlers.push_back(std::make_unique<DialogueSearchCommandHandler>());
84
85 // Message commands
86 handlers.push_back(std::make_unique<MessageListCommandHandler>());
87 handlers.push_back(std::make_unique<MessageReadCommandHandler>());
88 handlers.push_back(std::make_unique<MessageSearchCommandHandler>());
89 handlers.push_back(std::make_unique<MessageEncodeCommandHandler>());
90 handlers.push_back(std::make_unique<MessageDecodeCommandHandler>());
91 handlers.push_back(std::make_unique<MessageImportOrgCommandHandler>());
92 handlers.push_back(std::make_unique<MessageExportOrgCommandHandler>());
93 handlers.push_back(std::make_unique<MessageExportBundleCommandHandler>());
94 handlers.push_back(std::make_unique<MessageImportBundleCommandHandler>());
95 handlers.push_back(std::make_unique<MessageWriteCommandHandler>());
96 handlers.push_back(std::make_unique<MessageExportBinCommandHandler>());
97 handlers.push_back(std::make_unique<MessageExportAsmCommandHandler>());
98
99 // Project bundle management
100 handlers.push_back(std::make_unique<ProjectBundleVerifyCommandHandler>());
101 handlers.push_back(std::make_unique<ProjectBundlePackCommandHandler>());
102 handlers.push_back(std::make_unique<ProjectBundleUnpackCommandHandler>());
103
104 // ROM commands
105 handlers.push_back(std::make_unique<RomReadCommandHandler>());
106 handlers.push_back(std::make_unique<RomWriteCommandHandler>());
107 handlers.push_back(std::make_unique<RomInfoCommandHandler>());
108 handlers.push_back(std::make_unique<RomValidateCommandHandler>());
109 handlers.push_back(std::make_unique<RomDiffCommandHandler>());
110 handlers.push_back(std::make_unique<RomGenerateGoldenCommandHandler>());
111 handlers.push_back(std::make_unique<RomResolveAddressCommandHandler>());
112 handlers.push_back(std::make_unique<RomFindSymbolCommandHandler>());
113
114 // Resource inspection tools
115 handlers.push_back(std::make_unique<ResourceListCommandHandler>());
116 handlers.push_back(std::make_unique<ResourceSearchCommandHandler>());
117
118 // Dungeon inspection
119 handlers.push_back(std::make_unique<DungeonListSpritesCommandHandler>());
120 handlers.push_back(std::make_unique<DungeonDescribeRoomCommandHandler>());
121 handlers.push_back(std::make_unique<DungeonListChestsCommandHandler>());
122 handlers.push_back(std::make_unique<DungeonGetEntranceCommandHandler>());
123 handlers.push_back(std::make_unique<DungeonExportRoomCommandHandler>());
124 handlers.push_back(std::make_unique<DungeonListObjectsCommandHandler>());
125 handlers.push_back(
126 std::make_unique<DungeonListCustomCollisionCommandHandler>());
127 handlers.push_back(
128 std::make_unique<DungeonExportCustomCollisionJsonCommandHandler>());
129 handlers.push_back(
130 std::make_unique<DungeonImportCustomCollisionJsonCommandHandler>());
131 handlers.push_back(
132 std::make_unique<DungeonExportWaterFillJsonCommandHandler>());
133 handlers.push_back(
134 std::make_unique<DungeonImportWaterFillJsonCommandHandler>());
135 handlers.push_back(std::make_unique<DungeonGetRoomTilesCommandHandler>());
136 handlers.push_back(std::make_unique<DungeonSetRoomPropertyCommandHandler>());
137 handlers.push_back(std::make_unique<DungeonRoomHeaderCommandHandler>());
138 handlers.push_back(std::make_unique<DungeonGraphCommandHandler>());
139 handlers.push_back(std::make_unique<DungeonRoomGraphCommandHandler>());
140 handlers.push_back(std::make_unique<DungeonGroupCommandHandler>());
141 handlers.push_back(std::make_unique<DungeonMapCommandHandler>());
142 handlers.push_back(std::make_unique<DungeonMinecartAuditCommandHandler>());
143 handlers.push_back(std::make_unique<DungeonMinecartMapCommandHandler>());
144 handlers.push_back(std::make_unique<DungeonRenderCommandHandler>());
145 handlers.push_back(
146 std::make_unique<DungeonGenerateTrackCollisionCommandHandler>());
147 handlers.push_back(std::make_unique<EntranceInfoCommandHandler>());
148 handlers.push_back(std::make_unique<DungeonDiscoverCommandHandler>());
149
150 // Dungeon editing (write commands)
151 handlers.push_back(std::make_unique<DungeonPlaceSpriteCommandHandler>());
152 handlers.push_back(std::make_unique<DungeonRemoveSpriteCommandHandler>());
153 handlers.push_back(std::make_unique<DungeonPlaceObjectCommandHandler>());
154 handlers.push_back(std::make_unique<DungeonSetCollisionTileCommandHandler>());
155
156 // Overworld inspection
157 handlers.push_back(std::make_unique<OverworldFindTileCommandHandler>());
158 handlers.push_back(std::make_unique<OverworldDescribeMapCommandHandler>());
159 handlers.push_back(std::make_unique<OverworldListWarpsCommandHandler>());
160 handlers.push_back(std::make_unique<OverworldListSpritesCommandHandler>());
161 handlers.push_back(std::make_unique<OverworldListItemsCommandHandler>());
162 handlers.push_back(std::make_unique<OverworldGetEntranceCommandHandler>());
163 handlers.push_back(std::make_unique<OverworldTileStatsCommandHandler>());
164 handlers.push_back(std::make_unique<OverworldExportGraphCommandHandler>());
165
166 // GUI automation tools
167 handlers.push_back(std::make_unique<GuiPlaceTileCommandHandler>());
168 handlers.push_back(std::make_unique<GuiClickCommandHandler>());
169 handlers.push_back(std::make_unique<GuiTypeCommandHandler>());
170 handlers.push_back(std::make_unique<GuiWaitCommandHandler>());
171 handlers.push_back(std::make_unique<GuiAssertCommandHandler>());
172 handlers.push_back(std::make_unique<GuiDiscoverToolCommandHandler>());
173 handlers.push_back(std::make_unique<GuiScreenshotCommandHandler>());
174
175 // Emulator & debugger commands
176#ifdef YAZE_WITH_GRPC
177 handlers.push_back(std::make_unique<EmulatorStepCommandHandler>());
178 handlers.push_back(std::make_unique<EmulatorRunCommandHandler>());
179 handlers.push_back(std::make_unique<EmulatorPauseCommandHandler>());
180 handlers.push_back(std::make_unique<EmulatorResetCommandHandler>());
181 handlers.push_back(std::make_unique<EmulatorGetStateCommandHandler>());
182 handlers.push_back(std::make_unique<EmulatorSetBreakpointCommandHandler>());
183 handlers.push_back(std::make_unique<EmulatorClearBreakpointCommandHandler>());
184 handlers.push_back(std::make_unique<EmulatorListBreakpointsCommandHandler>());
185 handlers.push_back(std::make_unique<EmulatorReadMemoryCommandHandler>());
186 handlers.push_back(std::make_unique<EmulatorWriteMemoryCommandHandler>());
187 handlers.push_back(std::make_unique<EmulatorGetRegistersCommandHandler>());
188 handlers.push_back(std::make_unique<EmulatorGetMetricsCommandHandler>());
189#endif
190
191 // Mesen2 command handlers (socket-based)
192 for (auto& handler : CreateMesenCommandHandlers()) {
193 handlers.push_back(std::move(handler));
194 }
195
196 // Test helper tools
197 handlers.push_back(std::make_unique<ToolsListCommandHandler>());
198 handlers.push_back(std::make_unique<ToolsHarnessStateCommandHandler>());
199 handlers.push_back(std::make_unique<ToolsExtractValuesCommandHandler>());
200 handlers.push_back(std::make_unique<ToolsExtractGoldenCommandHandler>());
201 handlers.push_back(std::make_unique<ToolsPatchV3CommandHandler>());
202
203 // Hex Inspector
204 handlers.push_back(std::make_unique<HexDumpCommandHandler>());
205 handlers.push_back(std::make_unique<HexCompareCommandHandler>());
206 handlers.push_back(std::make_unique<HexAnnotateCommandHandler>());
207
208 // Test CLI commands
209 handlers.push_back(std::make_unique<TestListCommandHandler>());
210 handlers.push_back(std::make_unique<TestRunCommandHandler>());
211 handlers.push_back(std::make_unique<TestStatusCommandHandler>());
212
213 // Validation and repair tools (doctor suite)
214 handlers.push_back(std::make_unique<OverworldValidateCommandHandler>());
215 handlers.push_back(std::make_unique<OverworldDoctorCommandHandler>());
216 handlers.push_back(std::make_unique<DungeonDoctorCommandHandler>());
217 handlers.push_back(std::make_unique<DungeonObjectValidateCommandHandler>());
218 handlers.push_back(std::make_unique<RomDoctorCommandHandler>());
219 handlers.push_back(std::make_unique<MessageDoctorCommandHandler>());
220 handlers.push_back(std::make_unique<SpriteDoctorCommandHandler>());
221 handlers.push_back(std::make_unique<GraphicsDoctorCommandHandler>());
222 handlers.push_back(std::make_unique<RomCompareCommandHandler>());
223
224 return handlers;
225}
226
227} // namespace handlers
228} // namespace cli
229} // namespace yaze
std::vector< std::unique_ptr< resources::CommandHandler > > CreateMesenCommandHandlers()
Factory function to create Mesen2 command handlers.
std::vector< std::unique_ptr< resources::CommandHandler > > CreateCliCommandHandlers()
Factory function to create all CLI-level command handlers.
CLI command handlers for test helper tools.