projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix segfault
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_routes.c
diff --git
a/world_routes.c
b/world_routes.c
index bd91b3c441bb41392593300ae87cb5f03c67aadf..53ccb90e0bb7236d35db4bda4fc6bf895745df32 100644
(file)
--- a/
world_routes.c
+++ b/
world_routes.c
@@
-21,7
+21,7
@@
#include "shaders/routeui.h"
#include "shaders/routeui.h"
-VG_STATIC
+static
void world_routes_local_set_record( world_instance *world, ent_route *route,
f64 lap_time )
{
void world_routes_local_set_record( world_instance *world, ent_route *route,
f64 lap_time )
{
@@
-52,7
+52,7
@@
void world_routes_local_set_record( world_instance *world, ent_route *route,
}
}
-
VG_STATIC
void world_routes_clear( world_instance *world )
+
static
void world_routes_clear( world_instance *world )
{
for( u32 i=0; i<mdl_arrcount( &world->ent_route ); i++ ){
ent_route *route = mdl_arritm( &world->ent_route, i );
{
for( u32 i=0; i<mdl_arrcount( &world->ent_route ); i++ ){
ent_route *route = mdl_arritm( &world->ent_route, i );
@@
-69,7
+69,7
@@
VG_STATIC void world_routes_clear( world_instance *world )
world_static.last_use = 0.0;
}
world_static.last_use = 0.0;
}
-
VG_STATIC
void world_routes_time_lap( world_instance *world, ent_route *route )
+
static
void world_routes_time_lap( world_instance *world, ent_route *route )
{
vg_info( "------- time lap %s -------\n",
mdl_pstr(&world->meta,route->pstr_name) );
{
vg_info( "------- time lap %s -------\n",
mdl_pstr(&world->meta,route->pstr_name) );
@@
-127,7
+127,7
@@
VG_STATIC void world_routes_time_lap( world_instance *world, ent_route *route )
/*
* When going through a gate this is called for bookkeeping purposes
*/
/*
* When going through a gate this is called for bookkeeping purposes
*/
-
VG_STATIC
void world_routes_activate_entry_gate( world_instance *world,
+
static
void world_routes_activate_entry_gate( world_instance *world,
ent_gate *rg )
{
world_static.last_use = world_static.time;
ent_gate *rg )
{
world_static.last_use = world_static.time;
@@
-175,7
+175,7
@@
VG_STATIC void world_routes_activate_entry_gate( world_instance *world,
}
/* draw lines along the paths */
}
/* draw lines along the paths */
-
VG_STATIC
void world_routes_debug( world_instance *world )
+
static
void world_routes_debug( world_instance *world )
{
for( u32 i=0; i<mdl_arrcount(&world->ent_route_node); i++ ){
ent_route_node *rn = mdl_arritm(&world->ent_route_node,i);
{
for( u32 i=0; i<mdl_arrcount(&world->ent_route_node); i++ ){
ent_route_node *rn = mdl_arritm(&world->ent_route_node,i);
@@
-224,7
+224,7
@@
VG_STATIC void world_routes_debug( world_instance *world )
}
}
}
}
-VG_STATIC
+static
void world_routes_pointcloud_spot( world_instance *world,
pointcloud_buffer *pcbuf,
v3f co, f32 radius, u32 samples, v4f colour )
void world_routes_pointcloud_spot( world_instance *world,
pointcloud_buffer *pcbuf,
v3f co, f32 radius, u32 samples, v4f colour )
@@
-268,7
+268,7
@@
void world_routes_pointcloud_spot( world_instance *world,
* /#\
* -'###`-
*/
* /#\
* -'###`-
*/
-VG_STATIC
+static
void world_routes_pointcloud_tower( world_instance *world,
pointcloud_buffer *pcbuf,
v3f co, f32 radius, f32 height,
void world_routes_pointcloud_tower( world_instance *world,
pointcloud_buffer *pcbuf,
v3f co, f32 radius, f32 height,
@@
-304,7
+304,7
@@
void world_routes_pointcloud_tower( world_instance *world,
}
}
}
}
-VG_STATIC
+static
void world_routes_place_curve( world_instance *world, ent_route *route,
v4f h[3], v3f n0, v3f n2, scene_context *scene,
pointcloud_buffer *pcbuf )
void world_routes_place_curve( world_instance *world, ent_route *route,
v4f h[3], v3f n0, v3f n2, scene_context *scene,
pointcloud_buffer *pcbuf )
@@
-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,
@@
-426,7
+426,7
@@
void world_routes_place_curve( world_instance *world, ent_route *route,
}
}
}
}
-
VG_STATIC
void world_routes_gen_meshes( world_instance *world, u32 route_id,
+
static
void world_routes_gen_meshes( world_instance *world, u32 route_id,
scene_context *sc,
pointcloud_buffer *pcbuf )
{
scene_context *sc,
pointcloud_buffer *pcbuf )
{
@@
-549,11
+549,11
@@
VG_STATIC void world_routes_gen_meshes( world_instance *world, u32 route_id,
scene_copy_slice( sc, &route->sm );
}
scene_copy_slice( sc, &route->sm );
}
-VG_STATIC
+static
struct world_surface *world_tri_index_surface( world_instance *world,
u32 index );
struct world_surface *world_tri_index_surface( world_instance *world,
u32 index );
-
VG_STATIC
f64 world_routes_scatter_surface_points( world_instance *world,
+
static
f64 world_routes_scatter_surface_points( world_instance *world,
pointcloud_buffer *pcbuf,
f32 rate )
{
pointcloud_buffer *pcbuf,
f32 rate )
{
@@
-675,7
+675,7
@@
VG_STATIC f64 world_routes_scatter_surface_points( world_instance *world,
return total_area;
}
return total_area;
}
-
VG_STATIC
void world_routes_surface_grid( world_instance *world,
+
static
void world_routes_surface_grid( world_instance *world,
pointcloud_buffer *pcbuf )
{
i32 const k_gridlines = 32,
pointcloud_buffer *pcbuf )
{
i32 const k_gridlines = 32,
@@
-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 )
@@
-745,7
+744,7
@@
VG_STATIC void world_routes_surface_grid( world_instance *world,
}
}
}
}
-
VG_STATIC
void world_write_preview( addon_reg *reg, pointcloud_buffer *pcbuf ){
+
static
void world_write_preview( addon_reg *reg, pointcloud_buffer *pcbuf ){
if( reg->alias.workshop_id ) return;
/*
if( reg->alias.workshop_id ) return;
/*
@@
-774,7
+773,7
@@
VG_STATIC void world_write_preview( addon_reg *reg, pointcloud_buffer *pcbuf ){
/*
* Create the strips of colour that run through the world along course paths
*/
/*
* Create the strips of colour that run through the world along course paths
*/
-
VG_STATIC
void world_gen_routes_generate( u32 instance_id ){
+
static
void world_gen_routes_generate( u32 instance_id ){
world_instance *world = &world_static.instances[ instance_id ];
vg_info( "Generating route meshes\n" );
vg_async_stall();
world_instance *world = &world_static.instances[ instance_id ];
vg_info( "Generating route meshes\n" );
vg_async_stall();
@@
-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:
@@
-875,7
+877,7
@@
VG_STATIC void world_gen_routes_generate( u32 instance_id ){
}
/* load all routes from model header */
}
/* load all routes from model header */
-
VG_STATIC
void world_gen_routes_ent_init( world_instance *world ){
+
static
void world_gen_routes_ent_init( world_instance *world ){
vg_info( "Initializing routes\n" );
for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
vg_info( "Initializing routes\n" );
for( u32 i=0; i<mdl_arrcount(&world->ent_gate); i++ ){
@@
-941,7
+943,7
@@
VG_STATIC void world_gen_routes_ent_init( world_instance *world ){
* -----------------------------------------------------------------------------
*/
* -----------------------------------------------------------------------------
*/
-
VG_STATIC
void world_routes_init(void)
+
static
void world_routes_init(void)
{
world_static.current_run_version = 200;
world_static.time = 300.0;
{
world_static.current_run_version = 200;
world_static.time = 300.0;
@@
-951,7
+953,7
@@
VG_STATIC void world_routes_init(void)
shader_routeui_register();
}
shader_routeui_register();
}
-
VG_STATIC
void world_routes_update( world_instance *world )
+
static
void world_routes_update( world_instance *world )
{
world_static.time += vg.time_delta;
{
world_static.time += vg.time_delta;
@@
-968,7
+970,7
@@
VG_STATIC void world_routes_update( world_instance *world )
}
}
}
}
-
VG_STATIC
void world_routes_fixedupdate( world_instance *world )
+
static
void world_routes_fixedupdate( world_instance *world )
{
rb_solver_reset();
{
rb_solver_reset();
@@
-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;
@@
-1012,15
+1015,15
@@
VG_STATIC void world_routes_fixedupdate( world_instance *world )
}
}
}
}
-
VG_STATIC
void bind_terrain_noise(void);
-
VG_STATIC
void world_bind_light_array( world_instance *world,
+
static
void bind_terrain_noise(void);
+
static
void world_bind_light_array( world_instance *world,
GLuint shader, GLuint location,
int slot );
GLuint shader, GLuint location,
int slot );
-
VG_STATIC
void world_bind_light_index( world_instance *world,
+
static
void world_bind_light_index( world_instance *world,
GLuint shader, GLuint location,
int slot );
GLuint shader, GLuint location,
int slot );
-
VG_STATIC
void world_routes_update_timer_texts( world_instance *world )
+
static
void world_routes_update_timer_texts( world_instance *world )
{
world_render.timer_text_count = 0;
{
world_render.timer_text_count = 0;
@@
-1122,7
+1125,7
@@
VG_STATIC void world_routes_update_timer_texts( world_instance *world )
}
}
}
}
-
VG_STATIC
void world_routes_fracture( world_instance *world, ent_gate *gate,
+
static
void world_routes_fracture( world_instance *world, ent_gate *gate,
v3f imp_co, v3f imp_v )
{
world_render.text_particle_count = 0;
v3f imp_co, v3f imp_v )
{
world_render.text_particle_count = 0;
@@
-1196,7
+1199,7
@@
VG_STATIC void world_routes_fracture( world_instance *world, ent_gate *gate,
}
}
}
}
-
VG_STATIC
void render_world_routes( world_instance *world, camera *cam,
+
static
void render_world_routes( world_instance *world, camera *cam,
int layer_depth )
{
m4x3f identity_matrix;
int layer_depth )
{
m4x3f identity_matrix;
@@
-1245,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} );