diff options
Diffstat (limited to 'source/frontend/StarMainInterface.cpp')
-rw-r--r-- | source/frontend/StarMainInterface.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source/frontend/StarMainInterface.cpp b/source/frontend/StarMainInterface.cpp index 8468f7f..e3b1860 100644 --- a/source/frontend/StarMainInterface.cpp +++ b/source/frontend/StarMainInterface.cpp @@ -27,6 +27,7 @@ #include "StarCanvasWidget.hpp" #include "StarLabelWidget.hpp" #include "StarItemSlotWidget.hpp" +#include "StarButtonWidget.hpp" #include "StarPlayer.hpp" #include "StarPlayerLog.hpp" #include "StarMonster.hpp" @@ -57,6 +58,7 @@ #include "StarContainerInteractor.hpp" #include "StarChatBubbleManager.hpp" #include "StarNpc.hpp" +#include "StarCharSelection.hpp" namespace Star { @@ -168,6 +170,29 @@ MainInterface::MainInterface(UniverseClientPtr client, WorldPainterPtr painter, planetName->addChild("planetText", m_planetText); m_paneManager.registerPane(MainInterfacePanes::PlanetText, PaneLayer::Hud, planetName); + auto charSelectionMenu = make_shared<CharSelectionPane>(m_client->playerStorage(), [=]() {}, + [=](PlayerPtr mainPlayer) { + m_client->switchPlayer(mainPlayer->uuid()); + auto configuration = Root::singleton().configuration(); + if (configuration->get("characterSwapMovesToFront", false).toBool()) + m_client->playerStorage()->moveToFront(mainPlayer->uuid()); + if (configuration->get("characterSwapDismisses", false).toBool()) + m_paneManager.dismissRegisteredPane(MainInterfacePanes::CharacterSwap); + }, [=](Uuid) {}); + charSelectionMenu->setReadOnly(true); + charSelectionMenu->setAnchor(PaneAnchor::Center); + charSelectionMenu->unlockPosition(); + auto backgrounds = charSelectionMenu->getBG(); + backgrounds.header = std::move(backgrounds.body); + charSelectionMenu->setBG(backgrounds); + charSelectionMenu->findChild("toggleDismissLabel")->setVisibility(true); + auto toggleDismiss = charSelectionMenu->findChild<ButtonWidget>("toggleDismissCheckbox"); + auto configuration = Root::singleton().configuration(); + toggleDismiss->setChecked(configuration->get("characterSwapDismisses", false).toBool()); + toggleDismiss->setVisibility(true); + + m_paneManager.registerPane(MainInterfacePanes::CharacterSwap, PaneLayer::Window, charSelectionMenu); + m_nameplatePainter = make_shared<NameplatePainter>(); m_questIndicatorPainter = make_shared<QuestIndicatorPainter>(m_client); m_chatBubbleManager = make_shared<ChatBubbleManager>(); |