collision layers
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.c
index 2650539a48679dbc8957779da68003c9d1b74a2f..b522cba80fca626acde99aebad4aa650b8075aa9 100644 (file)
@@ -136,7 +136,8 @@ VG_STATIC void world_apply_procedural_foliage( world_instance *world,
       ray_hit hit;
       hit.dist = INFINITY;
 
-      if( ray_world( world, pos, (v3f){0.0f,-1.0f,0.0f}, &hit )){
+      if( ray_world( world, pos, (v3f){0.0f,-1.0f,0.0f}, &hit, 
+                     k_material_flag_ghosts )){
          struct world_surface *m1 = ray_hit_surface( world, &hit );
          if((hit.normal[1] > 0.8f) && (m1 == mat) && (hit.pos[1] > 0.0f+10.0f)){
             world_gen_add_blob( world, scene, &hit );
@@ -191,6 +192,10 @@ VG_STATIC void world_gen_generate_meshes( world_instance *world ){
                                     &world->meta, i );
 
       scene_copy_slice( &world->scene_geo, &surf->sm_geo );
+      scene_set_vertex_flags( &world->scene_geo, 
+                              surf->sm_geo.vertex_start,
+                              surf->sm_geo.vertex_count, 
+                              (u16)(surf->info.flags & 0xffff) );
    }
 
    /* compress that bad boy */