#include "Pause.h" #include #include #include #include #include "Scene.h" #include "Session.h" namespace kurator { Pause::Pause(std::shared_ptr _session, std::shared_ptr _scene) : session {std::move(_session)}, scene {std::move(_scene)}, frame {scene} { } void Pause::update() { frame.update(); ImGui::SetNextWindowSize({GetScreenWidth()/3.0f, 0.0f}, ImGuiCond_Once); ImGui::SetNextWindowPos({GetScreenWidth()/2.0f, GetScreenHeight()/2.0f}, ImGuiCond_Once, {0.5f, 0.5f}); if (ImGui::Begin("Pause", nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse)) { if (ImGui::Button("Unpause", {-1.0f, 0.0f})) restore(); if (ImGui::Button("Exit to Menu", {-1.0f, 0.0f})) session->pop(); if (ImGui::Button("Exit to Desktop", {-1.0f, 0.0f})) session->quit(); } ImGui::End(); if (IsKeyPressed(KEY_ESCAPE)) restore(); } void Pause::draw() const { ClearBackground(BLACK); frame.draw(); } void Pause::restore() const { session->set(scene); } } // namespace kurator