X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=menu.c;h=d5c8d5ed1d11401a3c5aac45a1635b7cc5d0f800;hb=304647a7672165dd35ffe54884ed9aedcc9bf363;hp=7cfd738047aa028782710e3d3e601fbfbc2568c9;hpb=17a94089d8d8c884da450f648d29150ceda6cfad;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/menu.c b/menu.c index 7cfd738..d5c8d5e 100644 --- a/menu.c +++ b/menu.c @@ -11,7 +11,7 @@ #include "gui.h" #include "shaders/model_menu.h" -struct global_menu menu; +struct global_menu menu = { .skip_starter = 0 }; /* * Attaches memory locations to the various items in the menu @@ -124,6 +124,18 @@ void menu_init(void) } mdl_close( &menu.model ); + + vg_console_reg_var( "skip_starter_menu", &menu.skip_starter, + k_var_dtype_i32, VG_VAR_PERSISTENT ); +} + +void menu_at_begin(void) +{ + if( menu.skip_starter ) return; + + skaterift.activity = k_skaterift_menu; + menu.page = 0xffffffff; + menu_open_page( "Starter", k_ent_menuitem_stack_append ); } /* @@ -203,7 +215,8 @@ void menu_open_page( const char *name, /* * activate a pressable type */ -static void menu_trigger_item( ent_menuitem *item ){ +static void menu_trigger_item( ent_menuitem *item ) +{ if ( item->type == k_ent_menuitem_type_event_button ){ u32 q = item->button.pstr; @@ -237,12 +250,21 @@ static void menu_trigger_item( ent_menuitem *item ){ else if( MDL_CONST_PSTREQ( &menu.model, q, "prem_nevermind" ) ){ menu_close(); } + else if( MDL_CONST_PSTREQ( &menu.model, q, "starter_enter" ) ) + { + if( network_client.auto_connect ) + network_client.user_intent = k_server_intent_online; + + menu_close(); + } } - else if( item->type == k_ent_menuitem_type_page_button ){ + else if( item->type == k_ent_menuitem_type_page_button ) + { menu_open_page( mdl_pstr( &menu.model, item->button.pstr ), item->button.stack_behaviour ); } - else if( item->type == k_ent_menuitem_type_toggle ){ + else if( item->type == k_ent_menuitem_type_toggle ) + { if( item->pi32 ){ *item->pi32 = *item->pi32 ^ 0x1; }