| 475 | } |
| 476 | |
| 477 | void TitleScreen::switchState(TitleState titleState) { |
| 478 | if (m_titleState == titleState) |
| 479 | return; |
| 480 | |
| 481 | m_paneManager.dismissAllPanes(); |
| 482 | m_titleState = titleState; |
| 483 | |
| 484 | // Clear the 'skip multi player connection' flag if we leave the multi player |
| 485 | // menus |
| 486 | if (m_titleState < TitleState::MultiPlayerSelectCharacter || m_titleState > TitleState::MultiPlayerConnect) |
| 487 | m_skipMultiPlayerConnection = false; |
| 488 | |
| 489 | if (titleState == TitleState::Main) { |
| 490 | m_paneManager.displayRegisteredPane("mainMenu"); |
| 491 | } else { |
| 492 | m_paneManager.displayRegisteredPane("backMenu"); |
| 493 | |
| 494 | if (titleState == TitleState::Options) { |
| 495 | m_paneManager.displayRegisteredPane("optionsMenu"); |
| 496 | } if (titleState == TitleState::Mods) { |
| 497 | m_paneManager.displayRegisteredPane("modsMenu"); |
| 498 | } else if (titleState == TitleState::SinglePlayerSelectCharacter) { |
| 499 | m_paneManager.displayRegisteredPane("charSelectionMenu"); |
| 500 | } else if (titleState == TitleState::SinglePlayerCreateCharacter) { |
| 501 | m_paneManager.displayRegisteredPane("charCreationMenu"); |
| 502 | } else if (titleState == TitleState::MultiPlayerSelectCharacter) { |
| 503 | m_paneManager.displayRegisteredPane("charSelectionMenu"); |
| 504 | } else if (titleState == TitleState::MultiPlayerCreateCharacter) { |
| 505 | m_paneManager.displayRegisteredPane("charCreationMenu"); |
| 506 | } else if (titleState == TitleState::MultiPlayerConnect) { |
| 507 | m_paneManager.displayRegisteredPane("multiplayerMenu"); |
| 508 | m_paneManager.displayRegisteredPane("serverSelect"); |
| 509 | if (auto addressWidget = m_multiPlayerMenu->fetchChild("address")) |
| 510 | addressWidget->focus(); |
| 511 | } |
| 512 | } |
| 513 | |
| 514 | if (titleState == TitleState::Quit) |
| 515 | m_musicTrackManager.cancelAll(); |
| 516 | } |
| 517 | |
| 518 | void TitleScreen::back() { |
| 519 | if (m_titleState == TitleState::Options) |
nothing calls this directly
no test coverage detected