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 );
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;
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, '.' );
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" );