| 292 | } |
| 293 | |
| 294 | void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override |
| 295 | { |
| 296 | switch (widget) { |
| 297 | case WID_SGI_GENERATE_GAME: |
| 298 | _is_network_server = false; |
| 299 | if (_ctrl_pressed) { |
| 300 | StartNewGameWithoutGUI(GENERATE_NEW_SEED); |
| 301 | } else { |
| 302 | ShowGenerateLandscape(); |
| 303 | } |
| 304 | break; |
| 305 | case WID_SGI_LOAD_GAME: |
| 306 | _is_network_server = false; |
| 307 | ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); |
| 308 | break; |
| 309 | case WID_SGI_PLAY_SCENARIO: |
| 310 | _is_network_server = false; |
| 311 | ShowSaveLoadDialog(FT_SCENARIO, SLO_LOAD); |
| 312 | break; |
| 313 | case WID_SGI_PLAY_HEIGHTMAP: |
| 314 | _is_network_server = false; |
| 315 | ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_LOAD); |
| 316 | break; |
| 317 | case WID_SGI_EDIT_SCENARIO: |
| 318 | _is_network_server = false; |
| 319 | StartScenarioEditor(); |
| 320 | break; |
| 321 | |
| 322 | case WID_SGI_PLAY_NETWORK: |
| 323 | if (!_network_available) { |
| 324 | ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR); |
| 325 | } else { |
| 326 | ShowNetworkGameWindow(); |
| 327 | } |
| 328 | break; |
| 329 | |
| 330 | case WID_SGI_OPTIONS: ShowGameOptions(); break; |
| 331 | case WID_SGI_HIGHSCORE: ShowHighscoreTable(); break; |
| 332 | case WID_SGI_HELP: ShowHelpWindow(); break; |
| 333 | case WID_SGI_CONTENT_DOWNLOAD: |
| 334 | if (!_network_available) { |
| 335 | ShowErrorMessage(GetEncodedString(STR_NETWORK_ERROR_NOTAVAILABLE), {}, WL_ERROR); |
| 336 | } else { |
| 337 | ShowNetworkContentListWindow(); |
| 338 | } |
| 339 | break; |
| 340 | case WID_SGI_EXIT: HandleExitGameRequest(); break; |
| 341 | } |
| 342 | } |
| 343 | }; |
| 344 | |
| 345 | static constexpr std::initializer_list<NWidgetPart> _nested_select_game_widgets = { |
nothing calls this directly
no test coverage detected