+ game_menu.map_count ++;
+ if( game_menu.map_count == vg_list_size(game_menu.maps_list) )
+ break;
+ }
+
+ tinydir_next( &dir );
+ }
+
+ tinydir_close(&dir);
+}
+
+VG_STATIC void menu_crap_ui(void)
+{
+ if( cl_menu && (game_menu.page == k_menu_page_map) )
+ {
+ ui_rect box;
+ box[0] = vg.window_x/2 - 150;
+ box[1] = vg.window_y/2 - 300;
+ box[2] = 300;
+ box[3] = 600;
+
+ ui_fill_rect( box, 0xa0000000 );
+
+ if( game_menu.map_count == 0 )
+ {
+ ui_text( (ui_rect){ vg.window_x/2, box[1]+8, 0,0 }, "No maps found", 1,
+ k_text_align_center );
+ }
+ else
+ {
+ ui_rect_pad( box, 4 );
+ box[3] = 16;
+
+ for( int i=0; i<game_menu.map_count; i++ )
+ {
+ struct menu_map_file *mf = &game_menu.maps_list[ i ];
+
+ ui_fill_rect( box, game_menu.selected_map == i? 0xa0ffffff:
+ 0xa0808080 );
+ ui_text( (ui_rect){ vg.window_x/2, box[1]+2, 0,0 },
+ mf->name, 1, k_text_align_center );
+ box[1] += 16+4;
+ }
+ }
+ }
+}
+
+VG_STATIC void steam_on_game_overlay( CallbackMsg_t *msg )
+{
+ GameOverlayActivated_t *inf = (GameOverlayActivated_t *)msg->m_pubParam;
+ vg_info( "Steam game overlay activated; pausing\n" );
+
+ if( inf->m_bActive )
+ {
+ cl_menu = 1;
+ game_menu.page = k_menu_page_main;
+ game_menu.loc = menu_get_loc( "text_skater" );
+ }
+}
+
+VG_STATIC void menu_init(void)
+{
+ vg_create_unnamed_input( &input_menu_h, k_input_type_axis );
+ vg_create_unnamed_input( &input_menu_v, k_input_type_axis );
+ vg_create_unnamed_input( &input_menu_back, k_input_type_button );
+ vg_create_unnamed_input( &input_menu_press, k_input_type_button );
+ vg_create_unnamed_input( &input_menu_toggle, k_input_type_button );
+ vg_create_unnamed_input( &input_menu_toggle_kbm, k_input_type_button );
+
+ vg_apply_bind_str( &input_menu_h, "", "gp-ls-h" );
+ vg_apply_bind_str( &input_menu_h, "+", "right" );
+ vg_apply_bind_str( &input_menu_h, "-", "left" );
+ vg_apply_bind_str( &input_menu_v, "", "-gp-ls-v" );
+ vg_apply_bind_str( &input_menu_v, "+", "up" );
+ vg_apply_bind_str( &input_menu_v, "-", "down" );
+ vg_apply_bind_str( &input_menu_press, "", "gp-a" );
+ vg_apply_bind_str( &input_menu_press, "", "\2enter" );
+ vg_apply_bind_str( &input_menu_back, "", "gp-b" );
+ vg_apply_bind_str( &input_menu_back, "", "\2escape" );
+ vg_apply_bind_str( &input_menu_toggle_kbm, "", "\2escape" );
+ vg_apply_bind_str( &input_menu_toggle, "", "\2gp-menu" );
+
+ vg_linear_clear( vg_mem.scratch );
+
+ mdl_open( &menu_model, "models/rs_menu.mdl" );
+ mdl_load_metadata( &menu_model, vg_mem.rtmemory );
+ mdl_load_mesh_data( &menu_model, vg_mem.scratch );
+ mdl_invert_uv_coordinates( &menu_model );
+ mdl_close( &menu_model );
+
+ vg_acquire_thread_sync();
+ {
+ mdl_unpack_glmesh( &menu_model, &menu_glmesh );
+ vg_tex2d_init( (vg_tex2d *[]){ &tex_menu }, 1 );
+ }
+ vg_release_thread_sync();