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<OverworldGetTileCommandHandler>());
158 handlers.push_back(std::make_unique<OverworldSetTileCommandHandler>());
159 handlers.push_back(std::make_unique<OverworldFindTileCommandHandler>());
160 handlers.push_back(std::make_unique<OverworldDescribeMapCommandHandler>());
161 handlers.push_back(std::make_unique<OverworldListWarpsCommandHandler>());
162 handlers.push_back(std::make_unique<OverworldListSpritesCommandHandler>());
163 handlers.push_back(std::make_unique<OverworldListItemsCommandHandler>());
164 handlers.push_back(std::make_unique<OverworldGetEntranceCommandHandler>());
165 handlers.push_back(std::make_unique<OverworldTileStatsCommandHandler>());
166 handlers.push_back(std::make_unique<OverworldExportGraphCommandHandler>());
167
168 // GUI automation tools
169 handlers.push_back(std::make_unique<GuiPlaceTileCommandHandler>());
170 handlers.push_back(std::make_unique<GuiClickCommandHandler>());
171 handlers.push_back(std::make_unique<GuiTypeCommandHandler>());
172 handlers.push_back(std::make_unique<GuiWaitCommandHandler>());
173 handlers.push_back(std::make_unique<GuiAssertCommandHandler>());
174 handlers.push_back(std::make_unique<GuiDiscoverToolCommandHandler>());
175 handlers.push_back(std::make_unique<GuiScreenshotCommandHandler>());
176
177 // Emulator & debugger commands
178#ifdef YAZE_WITH_GRPC
179 handlers.push_back(std::make_unique<EmulatorStepCommandHandler>());
180 handlers.push_back(std::make_unique<EmulatorRunCommandHandler>());
181 handlers.push_back(std::make_unique<EmulatorPauseCommandHandler>());
182 handlers.push_back(std::make_unique<EmulatorResetCommandHandler>());
183 handlers.push_back(std::make_unique<EmulatorGetStateCommandHandler>());
184 handlers.push_back(std::make_unique<EmulatorSetBreakpointCommandHandler>());
185 handlers.push_back(std::make_unique<EmulatorClearBreakpointCommandHandler>());
186 handlers.push_back(std::make_unique<EmulatorListBreakpointsCommandHandler>());
187 handlers.push_back(std::make_unique<EmulatorReadMemoryCommandHandler>());
188 handlers.push_back(std::make_unique<EmulatorWriteMemoryCommandHandler>());
189 handlers.push_back(std::make_unique<EmulatorGetRegistersCommandHandler>());
190 handlers.push_back(std::make_unique<EmulatorGetMetricsCommandHandler>());
191#endif
192
193 // Mesen2 command handlers (socket-based)
194 for (auto& handler : CreateMesenCommandHandlers()) {
195 handlers.push_back(std::move(handler));
196 }
197
198 // Test helper tools
199 handlers.push_back(std::make_unique<ToolsListCommandHandler>());
200 handlers.push_back(std::make_unique<ToolsHarnessStateCommandHandler>());
201 handlers.push_back(std::make_unique<ToolsExtractValuesCommandHandler>());
202 handlers.push_back(std::make_unique<ToolsExtractGoldenCommandHandler>());
203 handlers.push_back(std::make_unique<ToolsPatchV3CommandHandler>());
204
205 // Hex Inspector
206 handlers.push_back(std::make_unique<HexDumpCommandHandler>());
207 handlers.push_back(std::make_unique<HexCompareCommandHandler>());
208 handlers.push_back(std::make_unique<HexAnnotateCommandHandler>());
209
210 // Test CLI commands
211 handlers.push_back(std::make_unique<TestListCommandHandler>());
212 handlers.push_back(std::make_unique<TestRunCommandHandler>());
213 handlers.push_back(std::make_unique<TestStatusCommandHandler>());
214
215 // Validation and repair tools (doctor suite)
216 handlers.push_back(std::make_unique<OverworldValidateCommandHandler>());
217 handlers.push_back(std::make_unique<OverworldDoctorCommandHandler>());
218 handlers.push_back(std::make_unique<DungeonDoctorCommandHandler>());
219 handlers.push_back(std::make_unique<DungeonObjectValidateCommandHandler>());
220 handlers.push_back(std::make_unique<RomDoctorCommandHandler>());
221 handlers.push_back(std::make_unique<MessageDoctorCommandHandler>());
222 handlers.push_back(std::make_unique<SpriteDoctorCommandHandler>());
223 handlers.push_back(std::make_unique<GraphicsDoctorCommandHandler>());
224 handlers.push_back(std::make_unique<RomCompareCommandHandler>());
225
226 return handlers;
227}
228
229} // namespace handlers
230} // namespace cli
231} // 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.