(Rmenu) get rid of static bool preinit in rmenu_iterate

This commit is contained in:
twinaphex 2013-01-10 19:17:35 +01:00
parent 9ff031350d
commit a6f04970a3
4 changed files with 9 additions and 9 deletions

View File

@ -72,6 +72,7 @@ enum
MODE_LOAD_GAME, MODE_LOAD_GAME,
MODE_INIT, MODE_INIT,
MODE_MENU, MODE_MENU,
MODE_MENU_PREINIT,
MODE_EXIT, MODE_EXIT,
MODE_LOAD_FIRST_SHADER, MODE_LOAD_FIRST_SHADER,
MODE_LOAD_SECOND_SHADER, MODE_LOAD_SECOND_SHADER,

View File

@ -305,7 +305,10 @@ begin_loop:
} }
} }
else if(g_extern.lifecycle_menu_state & (1 << MODE_MENU)) else if(g_extern.lifecycle_menu_state & (1 << MODE_MENU))
{
g_extern.lifecycle_menu_state |= (1 << MODE_MENU_PREINIT);
while(rmenu_iterate()); while(rmenu_iterate());
}
else else
goto begin_shutdown; goto begin_shutdown;

View File

@ -2413,13 +2413,12 @@ void menu_free(void)
bool rmenu_iterate(void) bool rmenu_iterate(void)
{ {
static bool preinit = true;
const char *msg; const char *msg;
DEVICE_CAST device_ptr = (DEVICE_CAST)driver.video_data; DEVICE_CAST device_ptr = (DEVICE_CAST)driver.video_data;
menu current_menu; menu current_menu;
if(preinit) if (g_extern.lifecycle_menu_state & (1 << MODE_MENU_PREINIT))
{ {
if(g_extern.console.rmenu.state.ingame_menu.enable) if(g_extern.console.rmenu.state.ingame_menu.enable)
menu_stack_push(INGAME_MENU); menu_stack_push(INGAME_MENU);
@ -2429,7 +2428,7 @@ bool rmenu_iterate(void)
device_ptr->ctx_driver->rmenu_init(); device_ptr->ctx_driver->rmenu_init();
preinit = false; g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_PREINIT);
} }
g_extern.frame_count++; g_extern.frame_count++;
@ -2512,7 +2511,5 @@ deinit:
device_ptr->ctx_driver->rmenu_free(); device_ptr->ctx_driver->rmenu_free();
preinit = true;
return false; return false;
} }

View File

@ -1164,16 +1164,16 @@ static void ingame_menu_resize (void)
bool rmenu_iterate(void) bool rmenu_iterate(void)
{ {
static bool preinit = true;
const char *msg; const char *msg;
xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data; xdk_d3d_video_t *device_ptr = (xdk_d3d_video_t*)driver.video_data;
if(preinit) if (g_extern.lifecycle_menu_state & (1 << MODE_MENU_PREINIT))
{ {
g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU; g_extern.console.rmenu.input_loop = INPUT_LOOP_MENU;
g_extern.draw_menu = true; g_extern.draw_menu = true;
preinit = false;
g_extern.lifecycle_menu_state &= ~(1 << MODE_MENU_PREINIT);
} }
g_extern.frame_count++; g_extern.frame_count++;
@ -1240,7 +1240,6 @@ deinit:
g_extern.console.rmenu.state.ingame_menu.enable = false; g_extern.console.rmenu.state.ingame_menu.enable = false;
g_extern.draw_menu = false; g_extern.draw_menu = false;
preinit = true;
return false; return false;
} }