diff options
-rw-r--r-- | blastem.c | 15 | ||||
-rw-r--r-- | nuklear_ui/blastem_nuklear.c | 5 | ||||
-rw-r--r-- | nuklear_ui/blastem_nuklear.h | 1 |
3 files changed, 15 insertions, 6 deletions
@@ -525,6 +525,7 @@ int main(int argc, char ** argv) if (use_nuklear) { blastem_nuklear_init(!menu); current_system = game_system; + menu = 0; } #endif @@ -551,10 +552,16 @@ int main(int argc, char ** argv) 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 --git a/nuklear_ui/blastem_nuklear.c b/nuklear_ui/blastem_nuklear.c index 850f70e..8ff1821 100644 --- a/nuklear_ui/blastem_nuklear.c +++ b/nuklear_ui/blastem_nuklear.c @@ -226,7 +226,7 @@ void blastem_nuklear_render(void) 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 @@ void show_pause_menu(void) 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 @@ void blastem_nuklear_init(uint8_t file_loaded) render_set_event_handler(handle_event); render_set_gl_context_handlers(context_destroyed, context_created); active = 1; - idle_loop(); + ui_idle_loop(); } diff --git a/nuklear_ui/blastem_nuklear.h b/nuklear_ui/blastem_nuklear.h index df61ee7..be26805 100644 --- a/nuklear_ui/blastem_nuklear.h +++ b/nuklear_ui/blastem_nuklear.h @@ -15,5 +15,6 @@ void blastem_nuklear_init(uint8_t file_loaded); 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_ |