changeset 1486:a6881d0d76d0 nuklear_ui

Pause game execution when in the new UI pause menu
author Michael Pavone <pavone@retrodev.com>
date Sun, 26 Nov 2017 19:22:09 -0800
parents 369da70ee2c2
children 6a35815cc409
files blastem.c nuklear_ui/blastem_nuklear.c nuklear_ui/blastem_nuklear.h
diffstat 3 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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();
 }
--- 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_