+
+ /* load icons */
+ void *alloc = vg_mem.rtmemory;
+ mdl_open( &gui.model_icons, "models/rs_icons.mdl", alloc );
+ mdl_load_metadata_block( &gui.model_icons, alloc );
+
+ gui.icons[ k_gui_icon_tick ] = gui_find_icon( "icon_tick" );
+ gui.icons[ k_gui_icon_tick_2d ] = gui_find_icon( "icon_tick2d" );
+ gui.icons[ k_gui_icon_exclaim ] = gui_find_icon( "icon_exclaim" );
+ gui.icons[ k_gui_icon_exclaim_2d ] = gui_find_icon( "icon_exclaim2d" );
+ gui.icons[ k_gui_icon_board ] = gui_find_icon( "icon_board" );
+ gui.icons[ k_gui_icon_world ] = gui_find_icon( "icon_world" );
+ gui.icons[ k_gui_icon_rift ] = gui_find_icon( "icon_rift" );
+ gui.icons[ k_gui_icon_rift_run ] = gui_find_icon( "icon_rift_run" );
+ gui.icons[ k_gui_icon_rift_run_2d ] = gui_find_icon( "icon_rift_run2d" );
+ gui.icons[ k_gui_icon_friend ] = gui_find_icon( "icon_friend" );
+ gui.icons[ k_gui_icon_player ] = gui_find_icon( "icon_player" );
+ gui.icons[ k_gui_icon_rift_run_gold ] =
+ gui_find_icon("icon_rift_run_medal_gold");
+ gui.icons[ k_gui_icon_rift_run_silver]=
+ gui_find_icon("icon_rift_run_medal_silver");
+
+ vg_linear_clear( vg_mem.scratch );
+ if( !mdl_arrcount( &gui.model_icons.textures ) )
+ vg_fatal_error( "No texture in menu file" );
+ mdl_texture *tex0 = mdl_arritm( &gui.model_icons.textures, 0 );
+ void *data = vg_linear_alloc( vg_mem.scratch, tex0->file.pack_size );
+ mdl_fread_pack_file( &gui.model_icons, &tex0->file, data );
+ vg_tex2d_load_qoi_async( data, tex0->file.pack_size,
+ VG_TEX2D_LINEAR|VG_TEX2D_CLAMP,
+ &gui.icons_texture );
+
+ mdl_async_load_glmesh( &gui.model_icons, &gui.icons_mesh, NULL );
+ mdl_close( &gui.model_icons );