MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / switchState

Method switchState

source/frontend/StarTitleScreen.cpp:477–516  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

475}
476
477void 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
518void TitleScreen::back() {
519 if (m_titleState == TitleState::Options)

Callers

nothing calls this directly

Calls 5

dismissAllPanesMethod · 0.80
displayRegisteredPaneMethod · 0.80
focusMethod · 0.80
cancelAllMethod · 0.80
fetchChildMethod · 0.60

Tested by

no test coverage detected