-VG_STATIC void run_debug_info(void)
-{
- char buf[40];
-
- snprintf( buf, 40, "%.2fm/s", v3_length( player.phys.rb.v ) );
- ui_text( (ui_px [2]){ 0, 0 }, buf, 1, k_text_align_left );
-
- snprintf( buf, 40, "%.2f %.2f %.2f m/s",
- player.phys.a[0], player.phys.a[1], player.phys.a[2] );
- ui_text( (ui_px [2]){ 0, 20 }, buf, 1, k_text_align_left );
-
- snprintf( buf, 40, "pos %.2f %.2f %.2f",
- player.phys.rb.co[0], player.phys.rb.co[1], player.phys.rb.co[2] );
- ui_text( (ui_px [2]){ 0, 40 }, buf, 1, k_text_align_left );
-
- if( vg_input.controller_handle )
- {
- for( int i=0; i<vg_list_size(vg_input.controller_axises); i++ )
- {
- snprintf( buf, 40, "%.2f", vg_input.controller_axises[i] );
- ui_text( (ui_px [2]){ 0, (i+3)*20 }, buf, 1, k_text_align_left );
+ vg_linear_clear( vg_mem.scratch );
+ world_global.load_target = vg_linear_alloc( vg_mem.scratch, 1024 );
+ vg_strncpy( world_path, world_global.load_target,
+ 1024, k_strncpy_overflow_fatal );
+
+ vg_info( "unloading old worlds\n" );
+ world_unlink_nonlocal( &world_global.worlds[0] );
+
+ for( u32 i=1; i<vg_list_size(world_global.worlds); i++ ){
+ world_instance *inst = &world_global.worlds[i];
+
+ if( inst->status == k_world_status_loaded ){
+ inst->status = k_world_status_unloading;
+ world_fadeout_audio( inst );
+ }