+ ui_font_face( &vgf_default_large );
+ ui_rect title = { vg.window_x/2 - 512/2, height+8, 512, 64 };
+
+ ui_px x = 8,
+ y = height+8;
+
+ struct ui_vert *vs =
+ ui_fill( (ui_rect){ x,y, 0,height },
+ world_static.active_instance? GUI_COL_DARK: GUI_COL_ACTIVE );
+
+ char buf[64];
+ vg_str str;
+ vg_strnull( &str, buf, sizeof(buf) );
+ vg_strcat( &str, "Hub World" );
+
+ if( world_static.active_instance &&
+ (vg_input.display_input_method == k_input_method_controller) )
+ {
+ vg_strcat( &str, " (" );
+ vg_input_string( &str, input_button_list[k_srbind_mhub], 1 );
+ vg_strcat( &str, ")" );
+ }
+
+ ui_px w = ui_text( (ui_rect){ x+8, y, 1000, height }, buf, 1,
+ k_ui_align_middle_left, 0 );
+ w *= vg_ui.font->sx;
+ x += w + 16;
+
+ vs[1].co[0] = x + 8;
+ vs[2].co[0] = x;
+
+ x += 2;
+
+ world_instance *world = &world_static.instances[1];
+ if( world->status == k_world_status_loaded )
+ {
+ const char *world_name =
+ mdl_pstr( &world->meta, world->info.pstr_name );
+
+ vg_strnull( &str, buf, sizeof(buf) );
+ vg_strcat( &str, world_name );
+
+ if( !world_static.active_instance &&
+ (vg_input.display_input_method == k_input_method_controller) )
+ {
+ vg_strcat( &str, " (" );
+ vg_input_string( &str, input_button_list[k_srbind_mhub], 1 );
+ vg_strcat( &str, ")" );
+ }
+
+ vs = ui_fill( (ui_rect){ x,y, 1000,height },
+ world_static.active_instance? GUI_COL_ACTIVE: GUI_COL_DARK );
+ w = ui_text( (ui_rect){ x+16,y, 1000,height }, buf,
+ 1, k_ui_align_middle_left, 0 );
+
+ w = w*vg_ui.font->sx + 8*3;
+ x += w;
+
+ if( button_down( k_srbind_mhub ) ||
+ ui_button_base( (ui_rect){0,y,x,height} ) == k_ui_button_click )
+ {
+ world_switch_instance( world_static.active_instance ^ 0x1 );
+ skaterift.activity = k_skaterift_default;
+ world_map.view_ready = 0;
+ }
+
+ vs[0].co[0] += 8;
+ vs[1].co[0] = x + 8;
+ vs[2].co[0] = x;
+ }