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