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
42#ifdef YAZE_WITH_GRPC
44#endif
58
59namespace yaze {
60namespace cli {
61namespace handlers {
62
63std::vector<std::unique_ptr<resources::CommandHandler>>
65 std::vector<std::unique_ptr<resources::CommandHandler>> handlers;
66
67 // Graphics commands
68 handlers.push_back(std::make_unique<HexReadCommandHandler>());
69 handlers.push_back(std::make_unique<HexWriteCommandHandler>());
70 handlers.push_back(std::make_unique<HexSearchCommandHandler>());
71
72 // Palette commands
73 handlers.push_back(std::make_unique<PaletteGetColorsCommandHandler>());
74 handlers.push_back(std::make_unique<PaletteSetColorCommandHandler>());
75 handlers.push_back(std::make_unique<PaletteAnalyzeCommandHandler>());
76
77 // Sprite commands
78 handlers.push_back(std::make_unique<SpriteListCommandHandler>());
79 handlers.push_back(std::make_unique<SpritePropertiesCommandHandler>());
80 handlers.push_back(std::make_unique<SpritePaletteCommandHandler>());
81
82 // Music commands
83 handlers.push_back(std::make_unique<MusicListCommandHandler>());
84 handlers.push_back(std::make_unique<MusicInfoCommandHandler>());
85 handlers.push_back(std::make_unique<MusicTracksCommandHandler>());
86
87 // Oracle menu tooling
88 handlers.push_back(std::make_unique<OracleMenuIndexCommandHandler>());
89 handlers.push_back(std::make_unique<OracleMenuSetOffsetCommandHandler>());
90 handlers.push_back(std::make_unique<OracleMenuValidateCommandHandler>());
91 handlers.push_back(std::make_unique<DungeonOraclePreflightCommandHandler>());
92 handlers.push_back(std::make_unique<OracleSmokeCheckCommandHandler>());
93
94 // Dialogue commands
95 handlers.push_back(std::make_unique<DialogueListCommandHandler>());
96 handlers.push_back(std::make_unique<DialogueReadCommandHandler>());
97 handlers.push_back(std::make_unique<DialogueSearchCommandHandler>());
98
99 // Message commands
100 handlers.push_back(std::make_unique<MessageListCommandHandler>());
101 handlers.push_back(std::make_unique<MessageReadCommandHandler>());
102 handlers.push_back(std::make_unique<MessageSearchCommandHandler>());
103 handlers.push_back(std::make_unique<MessageEncodeCommandHandler>());
104 handlers.push_back(std::make_unique<MessageDecodeCommandHandler>());
105 handlers.push_back(std::make_unique<MessageImportOrgCommandHandler>());
106 handlers.push_back(std::make_unique<MessageExportOrgCommandHandler>());
107 handlers.push_back(std::make_unique<MessageExportBundleCommandHandler>());
108 handlers.push_back(std::make_unique<MessageImportBundleCommandHandler>());
109 handlers.push_back(std::make_unique<MessageWriteCommandHandler>());
110 handlers.push_back(std::make_unique<MessageExportBinCommandHandler>());
111 handlers.push_back(std::make_unique<MessageExportAsmCommandHandler>());
112 handlers.push_back(std::make_unique<MessageSourceSyncCommandHandler>());
113
114 // Project bundle management
115 handlers.push_back(std::make_unique<ProjectBundleVerifyCommandHandler>());
116 handlers.push_back(std::make_unique<ProjectBundlePackCommandHandler>());
117 handlers.push_back(std::make_unique<ProjectBundleUnpackCommandHandler>());
118
119 // Project plan
120 handlers.push_back(std::make_unique<PlanReadCommandHandler>());
121 handlers.push_back(std::make_unique<PlanAgentApplyCommandHandler>());
122
123 // ROM commands
124 handlers.push_back(std::make_unique<RomReadCommandHandler>());
125 handlers.push_back(std::make_unique<RomWriteCommandHandler>());
126 handlers.push_back(std::make_unique<RomInfoCommandHandler>());
127 handlers.push_back(std::make_unique<RomValidateCommandHandler>());
128 handlers.push_back(std::make_unique<RomDiffCommandHandler>());
129 handlers.push_back(std::make_unique<RomGenerateGoldenCommandHandler>());
130 handlers.push_back(std::make_unique<RomResolveAddressCommandHandler>());
131 handlers.push_back(std::make_unique<RomFindSymbolCommandHandler>());
132
133 // Resource inspection tools
134 handlers.push_back(std::make_unique<ResourceListCommandHandler>());
135 handlers.push_back(std::make_unique<ResourceSearchCommandHandler>());
136
137 // Dungeon inspection
138 handlers.push_back(std::make_unique<DungeonListSpritesCommandHandler>());
139 handlers.push_back(std::make_unique<DungeonDescribeRoomCommandHandler>());
140 handlers.push_back(std::make_unique<DungeonListChestsCommandHandler>());
141 handlers.push_back(std::make_unique<DungeonGetEntranceCommandHandler>());
142 handlers.push_back(std::make_unique<DungeonExportRoomCommandHandler>());
143 handlers.push_back(std::make_unique<DungeonListObjectsCommandHandler>());
144 handlers.push_back(
145 std::make_unique<DungeonListCustomCollisionCommandHandler>());
146 handlers.push_back(
147 std::make_unique<DungeonExportCustomCollisionJsonCommandHandler>());
148 handlers.push_back(
149 std::make_unique<DungeonImportCustomCollisionJsonCommandHandler>());
150 handlers.push_back(
151 std::make_unique<DungeonExportWaterFillJsonCommandHandler>());
152 handlers.push_back(
153 std::make_unique<DungeonImportWaterFillJsonCommandHandler>());
154 handlers.push_back(std::make_unique<DungeonGetRoomTilesCommandHandler>());
155 handlers.push_back(std::make_unique<DungeonTileTypesCommandHandler>());
156 handlers.push_back(std::make_unique<DungeonSetRoomPropertyCommandHandler>());
157 handlers.push_back(std::make_unique<DungeonRoomHeaderCommandHandler>());
158 handlers.push_back(std::make_unique<DungeonGraphCommandHandler>());
159 handlers.push_back(std::make_unique<DungeonRoomGraphCommandHandler>());
160 handlers.push_back(std::make_unique<DungeonRoomCensusCommandHandler>());
161 handlers.push_back(std::make_unique<AtlasRenderCommandHandler>());
162 handlers.push_back(std::make_unique<DungeonGroupCommandHandler>());
163 handlers.push_back(std::make_unique<DungeonMapCommandHandler>());
164 handlers.push_back(std::make_unique<DungeonMinecartAuditCommandHandler>());
165 handlers.push_back(std::make_unique<DungeonMinecartMapCommandHandler>());
166 handlers.push_back(std::make_unique<DungeonRenderCommandHandler>());
167 handlers.push_back(std::make_unique<DungeonWallProfileCommandHandler>());
168 handlers.push_back(std::make_unique<DungeonStreamPlanCommandHandler>());
169 handlers.push_back(
170 std::make_unique<DungeonGenerateTrackCollisionCommandHandler>());
171 handlers.push_back(std::make_unique<EntranceInfoCommandHandler>());
172 handlers.push_back(std::make_unique<DungeonDiscoverCommandHandler>());
173
174 // Dungeon editing (write commands)
175 handlers.push_back(std::make_unique<DungeonPlaceSpriteCommandHandler>());
176 handlers.push_back(std::make_unique<DungeonRemoveSpriteCommandHandler>());
177 handlers.push_back(std::make_unique<DungeonPlaceObjectCommandHandler>());
178 handlers.push_back(std::make_unique<DungeonRemoveObjectCommandHandler>());
179 handlers.push_back(std::make_unique<DungeonGetPaletteCommandHandler>());
180 handlers.push_back(std::make_unique<DungeonSetPaletteColorCommandHandler>());
181 handlers.push_back(std::make_unique<DungeonSetDoorTypeCommandHandler>());
182 handlers.push_back(std::make_unique<DungeonListPotItemsCommandHandler>());
183 handlers.push_back(std::make_unique<DungeonSetPotItemCommandHandler>());
184 handlers.push_back(std::make_unique<DungeonSetCollisionTileCommandHandler>());
185
186 handlers.push_back(std::make_unique<OverworldTerrainCatalogCommandHandler>());
187
188 // Overworld inspection
189 handlers.push_back(std::make_unique<OverworldGetTileCommandHandler>());
190 handlers.push_back(
191 std::make_unique<OverworldInspectSpecialEntrancesCommandHandler>());
192 handlers.push_back(std::make_unique<OverworldSetTileCommandHandler>());
193 handlers.push_back(std::make_unique<OverworldFindTileCommandHandler>());
194 handlers.push_back(std::make_unique<OverworldDescribeMapCommandHandler>());
195 handlers.push_back(std::make_unique<OverworldListWarpsCommandHandler>());
196 handlers.push_back(std::make_unique<OverworldListSpritesCommandHandler>());
197 handlers.push_back(std::make_unique<OverworldListItemsCommandHandler>());
198 handlers.push_back(std::make_unique<OverworldGetEntranceCommandHandler>());
199 handlers.push_back(std::make_unique<OverworldTileStatsCommandHandler>());
200 handlers.push_back(std::make_unique<OverworldExportGraphCommandHandler>());
201 handlers.push_back(std::make_unique<OverworldRenderCommandHandler>());
202 handlers.push_back(std::make_unique<LyraVerifyProjectCommandHandler>());
203 handlers.push_back(std::make_unique<LyraInspectProjectCommandHandler>());
204
205 // Overworld editing (dry-run by default; --write commits)
206 handlers.push_back(std::make_unique<OverworldAddSpriteCommandHandler>());
207 handlers.push_back(std::make_unique<OverworldMoveSpriteCommandHandler>());
208 handlers.push_back(std::make_unique<OverworldRemoveSpriteCommandHandler>());
209
210 // GUI automation tools
211 handlers.push_back(std::make_unique<GuiPlaceTileCommandHandler>());
212 handlers.push_back(std::make_unique<GuiClickCommandHandler>());
213 handlers.push_back(std::make_unique<GuiTypeCommandHandler>());
214 handlers.push_back(std::make_unique<GuiWaitCommandHandler>());
215 handlers.push_back(std::make_unique<GuiAssertCommandHandler>());
216 handlers.push_back(std::make_unique<GuiDiscoverToolCommandHandler>());
217 handlers.push_back(std::make_unique<GuiScreenshotCommandHandler>());
218
219 // Emulator & debugger commands
220#ifdef YAZE_WITH_GRPC
221 handlers.push_back(std::make_unique<EmulatorStepCommandHandler>());
222 handlers.push_back(std::make_unique<EmulatorRunCommandHandler>());
223 handlers.push_back(std::make_unique<EmulatorPauseCommandHandler>());
224 handlers.push_back(std::make_unique<EmulatorResetCommandHandler>());
225 handlers.push_back(std::make_unique<EmulatorGetStateCommandHandler>());
226 handlers.push_back(std::make_unique<EmulatorSetBreakpointCommandHandler>());
227 handlers.push_back(std::make_unique<EmulatorClearBreakpointCommandHandler>());
228 handlers.push_back(std::make_unique<EmulatorListBreakpointsCommandHandler>());
229 handlers.push_back(std::make_unique<EmulatorReadMemoryCommandHandler>());
230 handlers.push_back(std::make_unique<EmulatorWriteMemoryCommandHandler>());
231 handlers.push_back(std::make_unique<EmulatorGetRegistersCommandHandler>());
232 handlers.push_back(std::make_unique<EmulatorGetMetricsCommandHandler>());
233#endif
234
235 // Mesen2 command handlers (socket-based)
236 for (auto& handler : CreateMesenCommandHandlers()) {
237 handlers.push_back(std::move(handler));
238 }
239
240 // Test helper tools
241 handlers.push_back(std::make_unique<ToolsListCommandHandler>());
242 handlers.push_back(std::make_unique<ToolsHarnessStateCommandHandler>());
243 handlers.push_back(std::make_unique<ToolsExtractValuesCommandHandler>());
244 handlers.push_back(std::make_unique<ToolsExtractGoldenCommandHandler>());
245 handlers.push_back(std::make_unique<ToolsPatchV3CommandHandler>());
246
247 // Hex Inspector
248 handlers.push_back(std::make_unique<HexDumpCommandHandler>());
249 handlers.push_back(std::make_unique<HexCompareCommandHandler>());
250 handlers.push_back(std::make_unique<HexAnnotateCommandHandler>());
251
252 // Test CLI commands
253 handlers.push_back(std::make_unique<TestListCommandHandler>());
254 handlers.push_back(std::make_unique<TestRunCommandHandler>());
255 handlers.push_back(std::make_unique<TestStatusCommandHandler>());
256
257 // Validation and repair tools (doctor suite)
258 handlers.push_back(std::make_unique<OverworldValidateCommandHandler>());
259 handlers.push_back(std::make_unique<OverworldDoctorCommandHandler>());
260 handlers.push_back(std::make_unique<OverworldAllocationCommandHandler>());
261 handlers.push_back(std::make_unique<DungeonDoctorCommandHandler>());
262 handlers.push_back(std::make_unique<DungeonObjectValidateCommandHandler>());
263 handlers.push_back(std::make_unique<RomDoctorCommandHandler>());
264 handlers.push_back(std::make_unique<MessageDoctorCommandHandler>());
265 handlers.push_back(std::make_unique<SpriteDoctorCommandHandler>());
266 handlers.push_back(std::make_unique<GraphicsDoctorCommandHandler>());
267 handlers.push_back(std::make_unique<GfxSheetInventoryCommandHandler>());
268 handlers.push_back(std::make_unique<GraphicsContextCommandHandler>());
269 handlers.push_back(std::make_unique<GfxExportCommandHandler>());
270 handlers.push_back(std::make_unique<GfxImportCommandHandler>());
271 handlers.push_back(std::make_unique<GfxRoomExportCommandHandler>());
272 handlers.push_back(std::make_unique<GfxRoomImportCommandHandler>());
273 handlers.push_back(std::make_unique<GfxTilemapRenderCommandHandler>());
274 handlers.push_back(std::make_unique<RomCompareCommandHandler>());
275
276 return handlers;
277}
278
279} // namespace handlers
280} // namespace cli
281} // 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.