X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_load.c;h=0c4e8ebb9989ecfa983224a5a5860142d5c2d974;hb=96f8ce1f47009e5f763b05566db3f6cca07cdc76;hp=d62029dbccab3b44321a6a3fb3881761dbd13f0c;hpb=5d5d5f394cbe2212769bc58a70fa622b4ed46205;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_load.c b/world_load.c index d62029d..0c4e8eb 100644 --- a/world_load.c +++ b/world_load.c @@ -58,6 +58,7 @@ VG_STATIC void world_load_mdl( const char *path ) mdl_load_array( meta, &world->ent_marker, "ent_marker", heap ); 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_array_ptr infos; mdl_load_array( meta, &infos, "ent_worldinfo", vg_mem.scratch ); @@ -90,6 +91,7 @@ VG_STATIC void world_load_mdl( const char *path ) world_gen_routes_generate(); world_gen_compute_light_indices(); vg_async_call( async_world_postprocess_render, NULL, 0 ); + vg_async_stall(); mdl_close( meta ); world->status = k_world_status_loaded; @@ -131,21 +133,21 @@ static void skaterift_world_changer_thread( void *data ) char worlds[3][4096]; u32 i=0; - DIR *dir = opendir( folder.buffer ); - if( !dir ){ + 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; } - struct dirent *entry; - while( (entry = readdir(dir)) ){ - if( entry->d_type == DT_REG ){ - if( entry->d_name[0] == '.' ) continue; + while( vg_dir_next_entry(&dir) ){ + if( vg_dir_entry_type(&dir) == k_vg_entry_type_file ){ + const char *d_name = vg_dir_entry_name(&dir); + if( d_name[0] == '.' ) continue; vg_str file = folder; vg_strcat( &file, "/" ); - vg_strcat( &file, entry->d_name ); + vg_strcat( &file, d_name ); if( !vg_strgood( &file ) ) continue; char *ext = vg_strch( &file, '.' ); @@ -160,7 +162,7 @@ static void skaterift_world_changer_thread( void *data ) strcpy( worlds[i++], file.buffer ); } } - closedir(dir); + vg_dir_close(&dir); if( i == 0 ){ vg_warn( "There are no .mdl files in the map folder.\n" );