}
}
+VG_STATIC void world_write_preview( pointcloud_buffer *pcbuf ){
+ char path_buf[4096];
+ vg_str path;
+ vg_strnull( &path, path_buf, 4096 );
+
+ if( world_loader.reg ){
+ /* Don't want to override the one we get from the workshop */
+ if( world_loader.reg->workshop_id ) return;
+
+ addon_get_content_folder( world_loader.reg, &path );
+ }
+ else{
+ vg_strcat( &path, "maps/" );
+ vg_strcat( &path, world_loader.override_name );
+ }
+
+ vg_strcat( &path, "/preview.bin" );
+
+ if( !vg_strgood( &path ) ) vg_fatal_error( "Path too long\n" );
+ FILE *fp = fopen( path_buf, "wb" );
+ if( !fp ) vg_fatal_error( "Cannot open '%s' for writing\n", path_buf );
+
+ fwrite( pcbuf, sizeof(struct pointcloud_buffer) +
+ sizeof(struct pointcloud_vert)*pcbuf->count, 1, fp );
+ fclose( fp );
+}
+
/*
* Create the strips of colour that run through the world along course paths
*/
vg_info( "Distrubuted %u points over %fkm^2!\n",
pcbuf->count, area/1e6f );
- if( world_loader.location == k_world_load_type_local ){
- char path_buf[4096];
- vg_str path;
- vg_strnull( &path, path_buf, 4096 );
- vg_strcat( &path, "maps/" );
- vg_strcat( &path, world_loader.name );
- vg_strcat( &path, "/preview.bin" );
-
- if( !vg_strgood( &path ) ) vg_fatal_error( "Path too long\n" );
- FILE *fp = fopen( path_buf, "wb" );
- if( !fp ) vg_fatal_error( "Cannot open '%s' for writing\n", path_buf );
-
- fwrite( pcbuf, sizeof(pcbuf) +
- sizeof(struct pointcloud_vert)*pcbuf->count, 1, fp );
- fclose( fp );
- }
-
+ world_write_preview( pcbuf );
vg_async_dispatch( call_pointcloud, async_pointcloud_sub );
}