X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_routes.c;h=d2816d111ba4a4a45ddb4dbb26224911b734ac01;hb=f48c3935c01da796b7ecb011a42d6576788b7648;hp=56e6e4b6c8bbae9dbcb50e3208a845668385366e;hpb=7b1e8a237acc3121c86fab9b5946da6a8d3bf6c4;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_routes.c b/world_routes.c index 56e6e4b..d2816d1 100644 --- a/world_routes.c +++ b/world_routes.c @@ -6,6 +6,7 @@ #define ROUTES_C #include +#include "entity.h" #include "world_routes.h" #include "world_gate.h" #include "world_load.h" @@ -178,7 +179,7 @@ VG_STATIC void world_routes_debug( world_instance *world ) { for( u32 i=0; ient_route_node); i++ ){ ent_route_node *rn = mdl_arritm(&world->ent_route_node,i); - vg_line_pt3( rn->co, 0.25f, VG__WHITE ); + vg_line_point( rn->co, 0.25f, VG__WHITE ); } for( u32 i=0; ient_route); i++ ){ @@ -250,15 +251,12 @@ void world_routes_pointcloud_spot( world_instance *world, v3_sub( point, pcbuf->boundary[0], pos ); v3_mul( pos, inv_ext, pos ); - for( u32 i=0; i<3; i++ ){ - vert->pos[i] = (pos[i]-0.5f) * 32767.0f; - } - float dist = 1.0f-(v3_length(jitter)); - for( u32 i=0; i<4; i++ ){ - vert->colour[i] = colour[i] * 255.0f * dist*dist; - } + v4f final_colour; + v4_muls( colour, dist*dist, final_colour ); + + pointcloud_packvert( vert, pos, final_colour ); } } @@ -302,14 +300,7 @@ void world_routes_pointcloud_tower( world_instance *world, v3_sub( point, pcbuf->boundary[0], point ); v3_mul( point, inv_ext, point ); - /* TODO....... */ - for( u32 i=0; i<3; i++ ){ - vert->pos[i] = (point[i]-0.5f) * 32767.0f; - } - - for( u32 i=0; i<4; i++ ){ - vert->colour[i] = colour[i] * 255.0f; - } + pointcloud_packvert( vert, point, colour ); } } @@ -662,10 +653,6 @@ VG_STATIC f64 world_routes_scatter_surface_points( world_instance *world, v3_sub( pt, pcbuf->boundary[0], pos ); v3_mul( pos, inv_ext, pos ); - for( u32 i=0; i<3; i++ ){ - vert->pos[i] = (pos[i]-0.5f) * 32767.0f; - } - static v4f colours[] = { [k_surface_prop_concrete] = { 0.13, 0.15, 0.17, 1.0 }, [k_surface_prop_grass] = { 0.07, 0.1, 0.14, 1.0 }, @@ -675,16 +662,13 @@ VG_STATIC f64 world_routes_scatter_surface_points( world_instance *world, }; v4f col = {0.0f,0.0f,0.0f,0.0f}; - if( surf->info.surface_prop < vg_list_size(colours) ){ + if( surf->info.surface_prop < vg_list_size(colours) ) v4_copy( colours[surf->info.surface_prop], col ); - } f32 brightness = v3_dot(vn,light_dir)*0.5f+0.5f; v3_muls( col, brightness, col ); - for( u32 j=0; j<4; j++ ){ - vert->colour[j] = col[j] * 255.0f; - } + pointcloud_packvert( vert, pos, col ); } } @@ -753,13 +737,7 @@ VG_STATIC void world_routes_surface_grid( world_instance *world, v3_sub( hit, pcbuf->boundary[0], co ); v3_mul( co, inv_ext, co ); - for( u32 i=0; i<3; i++ ){ - vert->pos[i] = (co[i]-0.5f) * 32767.0f; - } - - for( u32 i=0; i<4; i++ ){ - vert->colour[i] = colour[i] * 255.0f; - } + pointcloud_packvert( vert, co, colour ); } } } @@ -774,7 +752,7 @@ VG_STATIC void world_write_preview( pointcloud_buffer *pcbuf ){ if( world_loader.reg ){ /* Don't want to override the one we get from the workshop */ - if( world_loader.reg->workshop_id ) return; + if( world_loader.reg->alias.workshop_id ) return; addon_get_content_folder( world_loader.reg, &path ); }