projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
reduced shader bind code dupe & adjust skate uprighter strenght
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_routes.c
diff --git
a/world_routes.c
b/world_routes.c
index bd91b3c441bb41392593300ae87cb5f03c67aadf..4998cc115efa779b0d89ae4ce657326525ebec52 100644
(file)
--- a/
world_routes.c
+++ b/
world_routes.c
@@
-21,20
+21,20
@@
#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 )
{
vg_success( " NEW LAP TIME: %f\n", lap_time );
void world_routes_local_set_record( world_instance *world, ent_route *route,
f64 lap_time )
{
vg_success( " NEW LAP TIME: %f\n", lap_time );
- if( route->official_track_id != 0xffffffff ){
+ if( route->
anon.
official_track_id != 0xffffffff ){
double time_centiseconds = lap_time * 100.0;
if( time_centiseconds > (float)0xfffe ) /* skill issue */
return;
double time_centiseconds = lap_time * 100.0;
if( time_centiseconds > (float)0xfffe ) /* skill issue */
return;
- struct track_info *ti = &track_infos[ route->official_track_id ];
+ struct track_info *ti = &track_infos[ route->
anon.
official_track_id ];
highscore_record *record = &ti->record;
highscore_record *record = &ti->record;
- record->trackid = route->official_track_id;
+ record->trackid = route->
anon.
official_track_id;
record->datetime = time(NULL);
record->playerid = 0;
record->points = 0;
record->datetime = time(NULL);
record->playerid = 0;
record->points = 0;
@@
-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++ ){
@@
-887,13
+889,13
@@
VG_STATIC void world_gen_routes_ent_init( 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);
- mdl_transform_m4x3( &route->transform, route->board_transform );
+ mdl_transform_m4x3( &route->
anon.
transform, route->board_transform );
- route->official_track_id = 0xffffffff;
+ route->
anon.
official_track_id = 0xffffffff;
for( u32 j=0; j<vg_list_size(track_infos); j ++ ){
if( !strcmp(track_infos[j].name,
mdl_pstr(&world->meta,route->pstr_name))){
for( u32 j=0; j<vg_list_size(track_infos); j ++ ){
if( !strcmp(track_infos[j].name,
mdl_pstr(&world->meta,route->pstr_name))){
- route->official_track_id = j;
+ route->
anon.
official_track_id = j;
}
}
}
}
@@
-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,16
+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;
for( u32 i=0; i<mdl_arrcount(&world->ent_route); i++ ){
world_render.timer_text_count = 0;
for( u32 i=0; i<mdl_arrcount(&world->ent_route); i++ ){
@@
-1093,8
+1095,9
@@
VG_STATIC void world_routes_update_timer_texts( world_instance *world )
highscore_intr( text->text+2, route->checkpoints_count+1, 1, ' ' );
text->text[3] = '\0';
}
highscore_intr( text->text+2, route->checkpoints_count+1, 1, ' ' );
text->text[3] = '\0';
}
-
- float align_r = font3d_string_width( &gui.font, 0, text->text );
+
+ gui_font3d.font = &gui.font;
+ float align_r = font3d_string_width( 0, text->text );
align_r *= size;
v3f positions[] = {
align_r *= size;
v3f positions[] = {
@@
-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;
@@
-1234,7
+1237,7
@@
VG_STATIC void render_world_routes( world_instance *world, camera *cam,
/* timers
* ---------------------------------------------------- */
if( layer_depth == 0 ){
/* timers
* ---------------------------------------------------- */
if( layer_depth == 0 ){
- font3d_bind( &gui.font, cam );
+ font3d_bind( &gui.font,
k_font_shader_default, 0, world,
cam );
for( u32 i=0; i<world_render.timer_text_count; i++ ){
struct timer_text *text = &world_render.timer_texts[i];
for( u32 i=0; i<world_render.timer_text_count; i++ ){
struct timer_text *text = &world_render.timer_texts[i];
@@
-1245,7
+1248,7
@@
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( 0, 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} );