Game main menu/retry scenes
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user