Show quit game prompt when attempting to close window

This commit is contained in:
thecozies 2024-04-29 10:03:48 -05:00
parent 8a70b2313e
commit 1a80170cf0
3 changed files with 17 additions and 5 deletions

View file

@ -166,6 +166,8 @@ namespace recomp {
// TODO move these
void quicksave_save();
void quicksave_load();
void open_quit_game_prompt();
}
#endif

View file

@ -128,9 +128,19 @@ bool sdl_event_filter(void* userdata, SDL_Event* event) {
InputState.controller_states.erase(controller_event->which);
}
break;
case SDL_EventType::SDL_QUIT:
ultramodern::quit();
return true;
case SDL_EventType::SDL_QUIT: {
if (!ultramodern::is_game_started()) {
ultramodern::quit();
return true;
}
if (recomp::get_current_menu() != recomp::Menu::Config) {
recomp::set_current_menu(recomp::Menu::Config);
}
recomp::open_quit_game_prompt();
break;
}
case SDL_EventType::SDL_MOUSEWHEEL:
{
SDL_MouseWheelEvent* wheel_event = &event->wheel;

View file

@ -245,7 +245,7 @@ void close_config_menu() {
close_config_menu_impl();
}
void open_quit_game_prompt() {
void recomp::open_quit_game_prompt() {
prompt_context.open_prompt(
"Are you sure you want to quit?",
"Any progress since your last save will be lost.",
@ -458,7 +458,7 @@ public:
recomp::register_event(listener, "open_quit_game_prompt",
[](const std::string& param, Rml::Event& event) {
open_quit_game_prompt();
recomp::open_quit_game_prompt();
});
recomp::register_event(listener, "toggle_input_device",