X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_routes.c;h=8dd2a8f65aecd60405ab7ccf5b1f132101a078bb;hb=ab34e6bf232cb0c890d8b02c5d21449c20b938e6;hp=bd91b3c441bb41392593300ae87cb5f03c67aadf;hpb=d532493a0cb87ebcfc58a72ac5e8206301f9d770;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_routes.c b/world_routes.c index bd91b3c..8dd2a8f 100644 --- a/world_routes.c +++ b/world_routes.c @@ -365,8 +365,8 @@ void world_routes_place_curve( world_instance *world, ent_route *route, ha.dist = 8.0f; hb.dist = 8.0f; - int resa = ray_world( world, sa, down, &ha ), - resb = ray_world( world, sb, down, &hb ); + int resa = ray_world( world, sa, down, &ha, k_material_flag_ghosts ), + resb = ray_world( world, sb, down, &hb, k_material_flag_ghosts ); if( pcbuf && resa ){ world_routes_pointcloud_spot( world, pcbuf, ha.pos, @@ -712,6 +712,10 @@ VG_STATIC void world_routes_surface_grid( world_instance *world, u32 *tri = &world->scene_geo.arrindices[ idx*3 ]; v3f vs[3]; + u16 mask = k_material_flag_preview_visibile; + if( !(world->scene_geo.arrvertices[tri[0]].flags & mask) ) + continue; + for( u32 i=0; i<3; i++ ){ v3_copy( world->scene_geo.arrvertices[tri[i]].co, vs[i] ); } @@ -719,11 +723,6 @@ VG_STATIC void world_routes_surface_grid( world_instance *world, f32 t; if( ray_tri( vs, ro, dir, &t ) ){ v3_muladds( ro, dir, t, hit ); - struct world_surface *m1 = - world_tri_index_surface( world, tri[0] ); - - if( !(m1->info.flags & k_material_flag_preview_visibile) ) - continue; if( world->water.enabled ) if( hit[1] < world->water.height ) @@ -980,7 +979,8 @@ VG_STATIC void world_routes_fixedupdate( world_instance *world ) int l = rb_sphere__scene( particle->obj.rb.to_world, &particle->obj.inf.sphere, - NULL, &world->rb_geo.inf.scene, buf ); + NULL, &world->rb_geo.inf.scene, buf, + k_material_flag_ghosts ); for( int j=0; jobj.rb;