projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
menu upgrades
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_routes.c
diff --git
a/world_routes.c
b/world_routes.c
index 26261a1ed72cc56e4658827dbf83af118e24b1c6..3e21df0def867a4187f0c776aad3b2116747715e 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 )
@@
-850,6
+849,8
@@
VG_STATIC void world_gen_routes_generate( u32 instance_id ){
if( instance_id <= 1 /*world_loader.generate_point_cloud*/ ){
f64 area = 0.0;
if( instance_id <= 1 /*world_loader.generate_point_cloud*/ ){
f64 area = 0.0;
+
+#if VG_RELEASE
area = world_routes_scatter_surface_points( world, pcbuf, 16.0f );
world_routes_surface_grid( world, pcbuf );
area = world_routes_scatter_surface_points( world, pcbuf, 16.0f );
world_routes_surface_grid( world, pcbuf );
@@
-860,8
+861,9
@@
VG_STATIC void world_gen_routes_generate( u32 instance_id ){
2.0f, 50.0f, 128,
(v4f){0.2f,0.2f,0.2f,1.0f} );
}
2.0f, 50.0f, 128,
(v4f){0.2f,0.2f,0.2f,1.0f} );
}
+#endif
- vg_info( "Distr
u
buted %u points over %fkm^2!\n",
+ vg_info( "Distr
i
buted %u points over %fkm^2!\n",
pcbuf->count, area/1e6f );
world_write_preview( instance_id? world_static.addon_client:
pcbuf->count, area/1e6f );
world_write_preview( instance_id? world_static.addon_client:
@@
-980,7
+982,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
+1112,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] );
}
}
}
}
}
}
@@
-1242,7
+1248,8
@@
VG_STATIC void render_world_routes( world_instance *world, camera *cam,
colour[3] = 1.0f-text->route->factive;
shader_model_font_uColour( colour );
colour[3] = 1.0f-text->route->factive;
shader_model_font_uColour( colour );
- font3d_simple_draw( &gui.font, 0, text->text, cam, text->transform );
+ font3d_simple_draw( &gui.font, 0, k_font_shader_default,
+ text->text, cam, text->transform );
}
shader_model_font_uOffset( (v4f){0.0f,0.0f,0.0f,1.0f} );
}
shader_model_font_uOffset( (v4f){0.0f,0.0f,0.0f,1.0f} );
@@
-1304,7
+1311,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 ){