X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.c;h=e488f778f0cfa63e613b36bd39ee850a1e8b08e5;hb=38514b4ba03412ad51df02dc2ba345e1be41005d;hp=422202f5655cb3151ebbbffc6a93b777dd58fd1d;hpb=14267d2fb3d228060aef8e4de729254813ec245f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.c b/skaterift.c index 422202f..e488f77 100644 --- a/skaterift.c +++ b/skaterift.c @@ -12,6 +12,7 @@ */ #define SR_NETWORKED +#define VG_AUDIO_FORCE_COMPRESSED #ifndef VG_RELEASE #define VG_DEVWINDOW @@ -163,6 +164,38 @@ static addon_reg *skaterift_mount_world_unloadable( const char *path, u32 ext ){ return reg; } +static void skaterift_load_world_content(void){ + /* hub world */ + addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub", 0 ); + skaterift_mount_world_unloadable( "maps/mp_spawn", + ADDON_REG_CITY|ADDON_REG_PREMIUM ); + skaterift_mount_world_unloadable( "maps/mp_mtzero", + ADDON_REG_MTZERO|ADDON_REG_PREMIUM ); + skaterift_mount_world_unloadable( "maps/dev_tutorial", 0 ); + + world_static.load_state = k_world_loader_load; + + struct world_load_args args = { + .purpose = k_world_purpose_hub, + .reg = hub + }; + skaterift_world_load_thread( &args ); +} + +static void skaterift_load_player_content(void){ + u32 bytes = 1024*1024*10; + skaterift.replay.data = vg_linear_alloc( vg_mem.rtmemory, bytes ); + skaterift.replay.size = bytes; + replay_clear( &skaterift.replay ); + + particle_alloc( &particles_grind, 300 ); + + 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" ); +} + static void vg_load(void){ if( k_tools_mode ){ vg_async_call( async_call_ready, NULL, 0 ); @@ -190,19 +223,7 @@ static void vg_load(void){ vg_loader_step( workshop_init, NULL ); vg_loader_step( skateshop_init, NULL ); - /* player setup */ - u32 bytes = 1024*1024*10; - skaterift.replay.data = vg_linear_alloc( vg_mem.rtmemory, bytes ); - skaterift.replay.size = bytes; - replay_clear( &skaterift.replay ); - - particle_alloc( &particles_grind, 300 ); - - 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" ); + vg_loader_step( skaterift_load_player_content, NULL ); /* --------------------- */ @@ -215,23 +236,8 @@ static void vg_load(void){ * ------------------------------------- */ - /* hub world */ - addon_reg *hub = skaterift_mount_world_unloadable( "maps/dev_hub", 0 ); - skaterift_mount_world_unloadable( "maps/mp_spawn", - ADDON_REG_CITY|ADDON_REG_PREMIUM ); - skaterift_mount_world_unloadable( "maps/mp_mtzero", - ADDON_REG_MTZERO|ADDON_REG_PREMIUM ); - skaterift_mount_world_unloadable( "maps/dev_tutorial", 0 ); - /* load home/permanent world manually */ - world_static.load_state = k_world_loader_load; - - struct world_load_args args = { - .purpose = k_world_purpose_hub, - .reg = hub - }; - skaterift_world_load_thread( &args ); - + vg_loader_step( skaterift_load_world_content, NULL ); vg_async_call( async_skaterift_player_start, NULL, 0 ); vg_async_stall();