0x0043B154
| 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 | { |
no test coverage detected