+ particle_alloc( &particles_grind, 300 );
+ particle_alloc( &particles_env, 200 );
+
+ player_load_animation_reference( "models/ch_none.mdl" );
+ player_model_load( &localplayer.fallback_model, "models/ch_none.mdl" );
+ player__bind();
+ player_board_load( &localplayer.fallback_board, "models/board_none.mdl" );
+}
+
+void vg_load(void)
+{
+ if( k_tools_mode ){
+ vg_async_call( async_call_ready, NULL, 0 );
+ return;
+ }
+
+ vg_audio.always_keep_compressed = 1;
+
+ vg_console_reg_cmd( "load_world", skaterift_load_world_command, NULL );
+ vg_console_reg_var( "immobile", &localplayer.immobile, k_var_dtype_i32, 0 );
+
+ vg_loader_step( render_init, NULL );
+ vg_loader_step( menu_init, NULL );
+ vg_loader_step( control_overlay_init, NULL );
+ vg_loader_step( world_init, NULL );
+ vg_loader_step( vehicle_init, NULL );
+ vg_loader_step( gui_init, NULL );
+
+ vg_loader_step( player_init, NULL );
+ vg_loader_step( player_ragdoll_init, NULL );
+ vg_loader_step( npc_init, NULL );
+
+ /* content stuff */
+ vg_loader_step( addon_system_init, NULL );
+ vg_loader_step( workshop_init, NULL );
+ vg_loader_step( skateshop_init, NULL );
+ vg_loader_step( ent_tornado_init, NULL );
+ vg_loader_step( skaterift_replay_init, NULL );
+ vg_loader_step( skaterift_load_player_content, NULL );
+
+ /* --------------------- */
+
+ vg_bake_shaders();
+ vg_loader_step( audio_init, NULL );
+
+ /* 'systems' are completely loaded now */
+
+ /* Completing addon registrations
+ * -------------------------------------
+ */
+
+ /* load home/permanent world manually */
+ vg_loader_step( skaterift_load_world_content, NULL );
+ vg_async_call( async_skaterift_player_start, NULL, 0 );
+ vg_async_stall();
+
+ vg_console_load_autos();
+ menu_link();
+
+ addon_mount_content_folder( k_addon_type_player,
+ "playermodels", ".mdl" );
+ addon_mount_content_folder( k_addon_type_board, "boards", ".mdl" );
+ addon_mount_content_folder( k_addon_type_world, "maps", ".mdl" );
+ addon_mount_workshop_items();
+ vg_async_call( async_addon_reg_update, NULL, 0 );
+ vg_async_stall();
+
+ /* and now */
+ skaterift_restore_state();
+ update_ach_models();
+
+ vg_loader_step( NULL, skaterift_autosave_synchronous );
+
+ //board_processview_thread(NULL);
+ vg_async_call( async_call_ready, NULL, 0 );
+}
+
+static void draw_origin_axis(void){