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

Method initCharSelectionMenu

source/frontend/StarTitleScreen.cpp:287–328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285}
286
287void TitleScreen::initCharSelectionMenu() {
288 auto deleteDialog = make_shared<Pane>();
289
290 GuiReader reader;
291
292 reader.registerCallback("delete", [=](Widget*) { deleteDialog->dismiss(); });
293 reader.registerCallback("cancel", [=](Widget*) { deleteDialog->dismiss(); });
294
295 reader.construct(Root::singleton().assets()->json("/interface/windowconfig/deletedialog.config"), deleteDialog.get());
296
297 auto charSelectionMenu = make_shared<CharSelectionPane>(m_playerStorage, [=]() {
298 if (m_titleState == TitleState::SinglePlayerSelectCharacter)
299 switchState(TitleState::SinglePlayerCreateCharacter);
300 else if (m_titleState == TitleState::MultiPlayerSelectCharacter)
301 switchState(TitleState::MultiPlayerCreateCharacter);
302 }, [=](PlayerPtr mainPlayer) {
303 m_mainAppPlayer = mainPlayer;
304 m_playerStorage->moveToFront(m_mainAppPlayer->uuid());
305 if (m_titleState == TitleState::SinglePlayerSelectCharacter) {
306 switchState(TitleState::StartSinglePlayer);
307 } else if (m_titleState == TitleState::MultiPlayerSelectCharacter) {
308 if (m_skipMultiPlayerConnection)
309 switchState(TitleState::StartMultiPlayer);
310 else
311 switchState(TitleState::MultiPlayerConnect);
312 }
313 }, [=](Uuid playerUuid) {
314 auto deleteDialog = m_paneManager.registeredPane("deleteDialog");
315 deleteDialog->fetchChild<ButtonWidget>("delete")->setCallback([=](Widget*) {
316 m_playerStorage->deletePlayer(playerUuid);
317 deleteDialog->dismiss();
318 });
319 m_paneManager.displayRegisteredPane("deleteDialog");
320 });
321 charSelectionMenu->setAnchor(PaneAnchor::Center);
322 charSelectionMenu->lockPosition();
323
324 m_paneManager.registerPane("deleteDialog", PaneLayer::ModalWindow, deleteDialog, [=](PanePtr const&) {
325 charSelectionMenu->updateCharacterPlates();
326 });
327 m_paneManager.registerPane("charSelectionMenu", PaneLayer::Hud, charSelectionMenu);
328}
329
330void TitleScreen::initCharCreationMenu() {
331 auto charCreationMenu = make_shared<CharCreationPane>([=](PlayerPtr newPlayer) {

Callers

nothing calls this directly

Calls 15

singletonClass · 0.85
jsonMethod · 0.80
assetsMethod · 0.80
moveToFrontMethod · 0.80
registeredPaneMethod · 0.80
deletePlayerMethod · 0.80
displayRegisteredPaneMethod · 0.80
lockPositionMethod · 0.80
registerPaneMethod · 0.80
updateCharacterPlatesMethod · 0.80
registerCallbackMethod · 0.45
dismissMethod · 0.45

Tested by

no test coverage detected