summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blastem.c15
-rw-r--r--nuklear_ui/blastem_nuklear.c5
-rw-r--r--nuklear_ui/blastem_nuklear.h1
3 files changed, 15 insertions, 6 deletions
diff --git a/blastem.c b/blastem.c
index 39ebfa4..40077f9 100644
--- a/blastem.c
+++ b/blastem.c
@@ -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_