X-Git-Url: https://harrygodden.com/git/?p=csRadar.git;a=blobdiff_plain;f=csrDraw.h;fp=csrDraw.h;h=b162b0fc556199fd7ab20edb8108bc547f514600;hp=30443343d4456e4d71497568672286cc1f88ed3a;hb=2b5ab41c3193d52eba04269f236d30a71aa0dd9d;hpb=1bdd02062cda9b107c4d66586d3c036ea15f6ae2 diff --git a/csrDraw.h b/csrDraw.h index 3044334..b162b0f 100644 --- a/csrDraw.h +++ b/csrDraw.h @@ -97,12 +97,19 @@ void csr_draw( csr_target *rt, vmf_vert *triangles, u32 triangle_count, m4x3f tr } } -void draw_vmf_group( csr_target *rt, vmf_map *map, vdf_node *root, int const group, m4x3f prev, m4x3f inst ) +void draw_vmf_group( csr_target *rt, vmf_map *map, vdf_node *root, const char *group, m4x3f prev, m4x3f inst ) { m4x3f transform = M4X3_IDENTITY; vmf_solid solid; vmf_vert tri[3]; + u32 group_id = 0; + + if( group ) + { + group_id = vmf_visgroup_id( root, group ); + } + // Multiply previous transform with instance transform to create basis if( prev ) { @@ -115,6 +122,9 @@ void draw_vmf_group( csr_target *rt, vmf_map *map, vdf_node *root, int const gro vdf_foreach( world, "solid", brush ) { + if( group && !vmf_visgroup_match( brush, group_id ) ) + continue; + solidgen_push( &solid, brush ); } @@ -136,6 +146,9 @@ void draw_vmf_group( csr_target *rt, vmf_map *map, vdf_node *root, int const gro vdf_foreach( root, "entity", ent ) { + if( group && !vmf_visgroup_match( ent, group_id ) ) + continue; + if( ent->user & VMF_FLAG_IS_PROP ) { // Create model transform