Game main menu/retry scenes

This commit is contained in:
2022-09-19 22:56:50 +02:00
parent 65edc9e8a0
commit 5201d10e20
8 changed files with 463 additions and 127 deletions
+12 -4
View File
@@ -1,3 +1,5 @@
#include <utility>
#include "SDL2/SDL_keycode.h"
#include "editor_scenes.hpp"
#include "../../sdlpp/sdlpp.hpp"
@@ -10,6 +12,7 @@
bool __update_scenes_load_dialog = false;
bool __quit_scenes_load_dialog = false;
bool __started_load_dialog = false;
bool __pop_at_finish_load_dialog = false;
uint64_t __cur_button_index_load_dialog = -1;
uint64_t __cur_button_index_load_dialog_down = -1;
std::vector<std::shared_ptr<Button>> __buttons_load_dialog{};
@@ -50,7 +53,7 @@ void __selectUpperButton() {
if (__cur_button_index_load_dialog > 0) {
__updateSelectedButton_LoadDialog(__cur_button_index_load_dialog - 1);
if (__buttons_load_dialog[__cur_button_index_load_dialog]
->getPos()
->getPos()
.getY() < 0.49) {
__moveButtons(0.25);
}
@@ -172,6 +175,7 @@ void __resetGlobals_LoadDialog() {
__update_scenes_load_dialog = false;
__quit_scenes_load_dialog = false;
__started_load_dialog = false;
__pop_at_finish_load_dialog = false;
__cur_button_index_load_dialog = -1;
__cur_button_index_load_dialog_down = -1;
__buttons_load_dialog.clear();
@@ -192,7 +196,9 @@ void __additionalRender_LoadDialog(std::shared_ptr<SDLPP::Scene> & /*UNUSED*/) {
}
if (__quit_scenes_load_dialog) {
__load_dialog_finalizer(__selected_level_load_dialog);
game_scenes.pop_back();
if(__pop_at_finish_load_dialog) {
game_scenes.pop_back();
}
__resetGlobals_LoadDialog();
}
}
@@ -256,8 +262,10 @@ void __pollEvents_LoadDialog(std::shared_ptr<SDLPP::Scene> &scene) {
SceneStruct
createLoadScene(std::shared_ptr<SDLPP::Renderer> renderer,
const std::string &path,
std::function<void(const std::string &)> finalizer) {
__load_dialog_finalizer = finalizer;
std::function<void(const std::string &)> finalizer,
bool pop_at_finish) {
__load_dialog_finalizer = std::move(finalizer);
__pop_at_finish_load_dialog = pop_at_finish;
SceneStruct ret{};
ret.scene = createSceneLoadDialog(renderer, path);
ret.additionalRender = __additionalRender_LoadDialog;