X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=world_load.c;h=01fa9cc6da2a6796b11f2d5a9bf4e048b69e3112;hb=7eba38b8178c82040618a518634d8ff4813e2ff2;hp=1547d225a67c39f15ca69fdb03607d7b0c11d0fe;hpb=02e009ae6e20938675277e9ce2f467e17b170cc7;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_load.c b/world_load.c index 1547d22..01fa9cc 100644 --- a/world_load.c +++ b/world_load.c @@ -59,6 +59,7 @@ VG_STATIC void world_load_mdl( const char *path ) mdl_load_array( meta, &world->ent_skateshop, "ent_skateshop", heap ); mdl_load_array( meta, &world->ent_swspreview,"ent_swspreview", heap ); mdl_load_array( meta, &world->ent_ccmd, "ent_ccmd", heap ); + mdl_load_array( meta, &world->ent_challenge, "ent_challenge", heap ); mdl_array_ptr infos; mdl_load_array( meta, &infos, "ent_worldinfo", vg_mem.scratch ); @@ -83,8 +84,6 @@ VG_STATIC void world_load_mdl( const char *path ) world_gen_load_surfaces(); world_gen_routes_ent_init(); world_gen_entities_init(); - world->volume_bh = bh_create( heap, &bh_system_volumes, world, - mdl_arrcount( &world->ent_volume ), 1 ); /* main bulk */ world_gen_generate_meshes(); @@ -97,21 +96,14 @@ VG_STATIC void world_load_mdl( const char *path ) world->status = k_world_status_loaded; } -/* - * op: k_async_op_world_loading - * k_async_op_world_preloading - * ----------------------------------------------------------------------------- - */ - -static void async_skaterift_world_loaded( void *payload, u32 size ) -{ - skaterift_end_op(); +static void skaterift_world_change_done( void *payload, u32 size ){ + world_loader.state = k_world_loader_none; } /* * Does a complete world switch using the remaining free slots */ -static void skaterift_world_changer_thread( void *data ){ +static void skaterift_world_changer_thread( void *_ ){ char path_buf[4096]; vg_str path; vg_strnull( &path, path_buf, 4096 ); @@ -127,7 +119,6 @@ static void skaterift_world_changer_thread( void *data ){ vg_str folder = path; if( !vg_strgood( &folder ) ) { vg_error( "Load target too long\n" ); - vg_async_call( workshop_async_any_complete, NULL, 0 ); return; } @@ -137,7 +128,6 @@ static void skaterift_world_changer_thread( void *data ){ vg_dir dir; if( !vg_dir_open(&dir, folder.buffer) ){ vg_error( "opendir('%s') failed\n", folder.buffer ); - vg_async_call( async_skaterift_world_loaded, NULL, 0 ); return; } @@ -193,13 +183,12 @@ static void skaterift_world_changer_thread( void *data ){ } } - vg_async_call( async_skaterift_world_loaded, NULL, 0 ); + vg_async_call( skaterift_world_change_done, NULL, 0 ); } /* holding pattern before we can start loading the new world, since we might be * waiting for audio to stop */ -static void skaterift_change_world_preupdate(void) -{ +static void skaterift_change_world_preupdate(void){ for( u32 i=1; isurface_count = 0; world->geo_bh = NULL; - world->volume_bh = NULL; - world->audio_bh = NULL; + world->entity_bh = NULL; + world->entity_list = NULL; world->rendering_gate = NULL; world->water.enabled = 0;