projects
/
csRadar.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
visgroup filtering
[csRadar.git]
/
csrDraw.h
diff --git
a/csrDraw.h
b/csrDraw.h
index 30443343d4456e4d71497568672286cc1f88ed3a..b162b0fc556199fd7ab20edb8108bc547f514600 100644
(file)
--- 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];
{
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 )
{
// 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 )
{
vdf_foreach( world, "solid", brush )
{
+ if( group && !vmf_visgroup_match( brush, group_id ) )
+ continue;
+
solidgen_push( &solid, brush );
}
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 )
{
vdf_foreach( root, "entity", ent )
{
+ if( group && !vmf_visgroup_match( ent, group_id ) )
+ continue;
+
if( ent->user & VMF_FLAG_IS_PROP )
{
// Create model transform
if( ent->user & VMF_FLAG_IS_PROP )
{
// Create model transform