projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove dead code
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_routes.c
diff --git
a/world_routes.c
b/world_routes.c
index 26261a1ed72cc56e4658827dbf83af118e24b1c6..8dd2a8f65aecd60405ab7ccf5b1f132101a078bb 100644
(file)
--- 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;
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,
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];
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] );
}
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 );
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 )
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,
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; j<l; j++ ){
buf[j].rba = &particle->obj.rb;
for( int j=0; j<l; j++ ){
buf[j].rba = &particle->obj.rb;
@@
-1109,12
+1109,15
@@
VG_STATIC void world_routes_update_timer_texts( world_instance *world )
positions[0][1] = h1;
}
positions[0][1] = h1;
}
- m3x3_copy( gate->to_world, text->transform );
+ m4x3f mmdl;
+ ent_gate_get_mdl_mtx( gate, mmdl );
+
+ m3x3_copy( mmdl, text->transform );
float ratio = v3_length(text->transform[0]) /
v3_length(text->transform[1]);
m3x3_scale( text->transform, (v3f){ size, size*ratio, 0.1f } );
float ratio = v3_length(text->transform[0]) /
v3_length(text->transform[1]);
m3x3_scale( text->transform, (v3f){ size, size*ratio, 0.1f } );
- m4x3_mulv(
gate->to_world
, positions[j], text->transform[3] );
+ m4x3_mulv(
mmdl
, positions[j], text->transform[3] );
}
}
}
}
}
}
@@
-1304,7
+1307,10
@@
VG_STATIC void render_world_routes( world_instance *world, camera *cam,
ent_checkpoint *cp = mdl_arritm( &world->ent_checkpoint, next );
ent_gate *gate = mdl_arritm( &world->ent_gate, cp->gate_index );
ent_checkpoint *cp = mdl_arritm( &world->ent_checkpoint, next );
ent_gate *gate = mdl_arritm( &world->ent_gate, cp->gate_index );
- shader_model_gate_uMdl( gate->to_world );
+
+ m4x3f mmdl;
+ ent_gate_get_mdl_mtx( gate, mmdl );
+ shader_model_gate_uMdl( mmdl );
for( u32 j=0; j<4; j++ ){
if( gate->routes[j] == i ){
for( u32 j=0; j<4; j++ ){
if( gate->routes[j] == i ){