This commit is contained in:
MihailRis 2024-03-22 11:35:55 +03:00
parent 9a817a86ff
commit b2abd57a71
4 changed files with 12 additions and 10 deletions

View File

@ -83,7 +83,7 @@ UiDocument* Assets::getLayout(std::string name) const {
}
void Assets::store(UiDocument* layout, std::string name) {
layouts.emplace(name, layout);
layouts[name] = std::shared_ptr<UiDocument>(layout);
}
void Assets::extend(const Assets& assets) {

View File

@ -181,11 +181,13 @@ void menus::create_pause_panel(Engine* engine, LevelController* controller) {
panel->add(guiutil::gotoButton(L"Settings", "settings", menu));
panel->add(create_button(L"Save and Quit to Menu", glm::vec4(10.f), glm::vec4(1), [=](GUI*){
// save world
controller->saveWorld();
// destroy LevelScreen and run quit callbacks
engine->setScreen(nullptr);
// create and go to menu screen
engine->setScreen(std::make_shared<MenuScreen>(engine));
engine->postRunnable([=]() {
// save world
controller->saveWorld();
// destroy LevelScreen and run quit callbacks
engine->setScreen(nullptr);
// create and go to menu screen
engine->setScreen(std::make_shared<MenuScreen>(engine));
});
}));
}

View File

@ -49,8 +49,8 @@ Screen::~Screen() {
MenuScreen::MenuScreen(Engine* engine_) : Screen(engine_) {
auto menu = engine->getGUI()->getMenu();
menus::refresh_menus(engine);
menu->reset();
menus::refresh_menus(engine);
menu->setPage("main");
uicamera.reset(new Camera(glm::vec3(), Window::height));

View File

@ -269,13 +269,14 @@ void Menu::addSupplier(std::string name, supplier<std::shared_ptr<UINode>> pageS
void Menu::setPage(std::string name, bool history) {
auto found = pages.find(name);
Page page;
Page page {name, nullptr};
if (found == pages.end()) {
auto supplier = pageSuppliers.find(name);
if (supplier == pageSuppliers.end()) {
throw std::runtime_error("no page found");
} else {
page.panel = supplier->second();
// pages[name] = page;
// supplied pages caching is not implemented
}
} else {
@ -319,4 +320,3 @@ void Menu::reset() {
current = Page{"", nullptr};
}
}