X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_render.h;h=09ecc19e4ce9241eca46edcf04ab43df6cd406a3;hb=9d5997f1e611b66c7220f7eb388f427032d8da79;hp=31eba64401237a5cb48b9a7a79bb9fa4a3020afa;hpb=a1056ed8198f0f5be0e0f341da8bd49aa6c47198;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_render.h b/world_render.h index 31eba64..09ecc19 100644 --- a/world_render.h +++ b/world_render.h @@ -346,7 +346,8 @@ VG_STATIC void render_sky( world_instance *world, camera *cam ) glDepthMask( GL_TRUE ); } -VG_STATIC void render_world_gates( world_instance *world, camera *cam ) +VG_STATIC void render_world_gates( world_instance *world, camera *cam, + int layer_depth ) { float closest = INFINITY; @@ -371,44 +372,47 @@ VG_STATIC void render_world_gates( world_instance *world, camera *cam ) if( gate ){ #if 0 world_instance *dest_world = &world_global.worlds[ gate->world_index ]; - render_gate( dest_world, gate, cam ); + render_gate( dest_world, gate, cam, layer_depth ); #else - render_gate( world, gate, cam ); + render_gate( world, gate, cam, layer_depth ); #endif + + /* should really be set in fixed update since its used in the physics + * of most systems. too bad! */ + world->rendering_gate = gate; } } -VG_STATIC void render_world( world_instance *world, camera *cam ) +VG_STATIC void render_world( world_instance *world, camera *cam, + int layer_depth ) { render_sky( world, cam ); - render_world_routes( world, cam ); + render_world_routes( world, cam, layer_depth ); render_world_standard( world, cam ); render_world_vb( world, cam ); render_world_alphatest( world, cam ); render_terrain( world, cam ); /* Render SFD's */ -#if 0 - int closest = 0; + u32 closest = 0; float min_dist = INFINITY; - if( !world->route_count ) + if( !mdl_arrcount( &world->ent_route ) ) return; - for( int i=0; iroute_count; i++ ) - { - float dist = v3_dist2(world->routes[i].scoreboard_transform[3], cam->pos); + for( u32 i=0; ient_route ); i++ ){ + ent_route *route = mdl_arritm( &world->ent_route, i ); + float dist = v3_dist2( route->board_transform[3], cam->pos ); - if( dist < min_dist ) - { + if( dist < min_dist ){ min_dist = dist; closest = i; } } - sfd_render( cam, world->routes[closest].scoreboard_transform ); -#endif + ent_route *route = mdl_arritm( &world->ent_route, closest ); + sfd_render( world, cam, route->board_transform ); } VG_STATIC void render_world_depth( world_instance *world, camera *cam )