MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / loadsaveMenuDropdown

Function loadsaveMenuDropdown

src/OpenLoco/src/Ui/Windows/ToolbarTop.cpp:209–274  ·  view source on GitHub ↗

0x0043B154

Source from the content-addressed store, hash-verified

207
208 // 0x0043B154
209 static void loadsaveMenuDropdown([[maybe_unused]] Window* window, [[maybe_unused]] WidgetIndex_t widgetIndex, int16_t itemIndex)
210 {
211 auto id = Dropdown::getSelectedItem<LoadSaveDropdownId>(itemIndex);
212 if (!id)
213 {
214 return;
215 }
216
217 switch (*id)
218 {
219 case LoadSaveDropdownId::loadGame:
220 // Load game
221 {
222 GameCommands::LoadSaveQuitGameArgs loadGameArgs{};
223 loadGameArgs.loadQuitMode = LoadOrQuitMode::loadGamePrompt;
224 loadGameArgs.saveMode = GameCommands::LoadSaveQuitGameArgs::SaveMode::promptSave;
225 GameCommands::doCommand(loadGameArgs, GameCommands::Flags::apply);
226 }
227 break;
228
229 case LoadSaveDropdownId::saveGame:
230 // Save game
231 prepareSaveGame();
232 break;
233
234 case LoadSaveDropdownId::about:
235 About::open();
236 break;
237
238 case LoadSaveDropdownId::options:
239 Options::open();
240 break;
241
242 case LoadSaveDropdownId::screenshot:
243 triggerScreenshotCountdown(10, ScreenshotType::regular);
244 break;
245
246 case LoadSaveDropdownId::giantScreenshot:
247 triggerScreenshotCountdown(10, ScreenshotType::giant);
248 break;
249
250 case LoadSaveDropdownId::server:
251 startOrCloseServer();
252 break;
253
254 case LoadSaveDropdownId::quitToMenu:
255 // Return to title screen
256 {
257 GameCommands::LoadSaveQuitGameArgs quitToMenuArgs{};
258 quitToMenuArgs.loadQuitMode = LoadOrQuitMode::returnToTitlePrompt;
259 quitToMenuArgs.saveMode = GameCommands::LoadSaveQuitGameArgs::SaveMode::promptSave;
260 GameCommands::doCommand(quitToMenuArgs, GameCommands::Flags::apply);
261 }
262 break;
263
264 case LoadSaveDropdownId::quitToDesktop:
265 // Exit to desktop
266 {

Callers 1

onDropdownFunction · 0.70

Calls 5

prepareSaveGameFunction · 0.85
startOrCloseServerFunction · 0.85
openFunction · 0.70
doCommandFunction · 0.50

Tested by

no test coverage detected