# HG changeset patch # User Michael Pavone # Date 1511752929 28800 # Node ID a6881d0d76d0d299b265fe7097904922b0c8ada5 # Parent 369da70ee2c203c339dfda4215d3cf4bca68f76e Pause game execution when in the new UI pause menu diff -r 369da70ee2c2 -r a6881d0d76d0 blastem.c --- a/blastem.c Sun Nov 26 18:33:36 2017 -0800 +++ b/blastem.c Sun Nov 26 19:22:09 2017 -0800 @@ -525,6 +525,7 @@ if (use_nuklear) { blastem_nuklear_init(!menu); current_system = game_system; + menu = 0; } #endif @@ -551,10 +552,16 @@ current_system = game_system; menu = 0; current_system->resume_context(current_system); - } else if (!menu && menu_system) { - current_system->arena = set_current_arena(menu_system->arena); - current_system = menu_system; - menu = 1; + } else if (!menu && (menu_system || use_nuklear)) { + if (use_nuklear) { +#ifndef DISABLE_NUKLEAR + ui_idle_loop(); +#endif + } else { + current_system->arena = set_current_arena(menu_system->arena); + current_system = menu_system; + menu = 1; + } current_system->resume_context(current_system); } else { break; diff -r 369da70ee2c2 -r a6881d0d76d0 nuklear_ui/blastem_nuklear.c --- a/nuklear_ui/blastem_nuklear.c Sun Nov 26 18:33:36 2017 -0800 +++ b/nuklear_ui/blastem_nuklear.c Sun Nov 26 19:22:09 2017 -0800 @@ -226,7 +226,7 @@ nk_input_begin(context); } -void idle_loop(void) +void ui_idle_loop(void) { const uint32_t MIN_UI_DELAY = 15; static uint32_t last; @@ -268,6 +268,7 @@ context->style.window.background = nk_rgba(0, 0, 0, 128); context->style.window.fixed_background = nk_style_item_color(nk_rgba(0, 0, 0, 128)); current_view = view_pause; + current_system->request_exit(current_system); } static uint8_t active; @@ -307,5 +308,5 @@ render_set_event_handler(handle_event); render_set_gl_context_handlers(context_destroyed, context_created); active = 1; - idle_loop(); + ui_idle_loop(); } diff -r 369da70ee2c2 -r a6881d0d76d0 nuklear_ui/blastem_nuklear.h --- a/nuklear_ui/blastem_nuklear.h Sun Nov 26 18:33:36 2017 -0800 +++ b/nuklear_ui/blastem_nuklear.h Sun Nov 26 19:22:09 2017 -0800 @@ -15,5 +15,6 @@ void show_pause_menu(void); uint8_t is_nuklear_active(void); uint8_t is_nuklear_available(void); +void ui_idle_loop(void); #endif //BLASTEM_NUKLEAR_H_