diff --git a/include/qertypes.h b/include/qertypes.h index e63f9c2f..941d34bb 100644 --- a/include/qertypes.h +++ b/include/qertypes.h @@ -724,6 +724,7 @@ struct bfilter_t //c++ style // 4=brush->owner->eclass->nShowFlags // 5=brush->face->texdef.flags (q2) // 6=brush->face->texdef.contents (q2) + // 7=!brush->face->texdef.contents (q2) int mask; const char *string; bool active; @@ -735,7 +736,7 @@ struct bfilter_t //c++ style typedef struct { int iTexMenu; // nearest, linear, etc - float fGamma; // gamma for textures + float fGamma; // gamma for textures vec3_t colors[COLOR_LAST]; int exclude; int include; diff --git a/radiant/filters.cpp b/radiant/filters.cpp index f9669cff..e9b1b1ad 100644 --- a/radiant/filters.cpp +++ b/radiant/filters.cpp @@ -201,7 +201,7 @@ bool FilterBrush( brush_t *pb ){ if ( g_qeglobals.d_savedinfo.exclude & EXCLUDE_DETAILS ) { - if ( !pb->patchBrush && pb->brush_faces->texdef.contents & CONTENTS_DETAIL ) { + if ( !pb->patchBrush && ( pb->brush_faces->texdef.contents & CONTENTS_DETAIL ) ) { return TRUE; } } @@ -239,16 +239,16 @@ bool FilterBrush( brush_t *pb ){ filterbrush = true; break; } - // quake2 - 5 == surface flags, 6 == content flags } + // quake2 - 5 == surface flags, 6 == content flags, 7 == !content flags else if ( filters->attribute == 5 ) { - if ( f->texdef.flags && f->texdef.flags & filters->mask ) { + if ( f->texdef.flags && ( f->texdef.flags & filters->mask ) ) { filterbrush = true; break; } } else if ( filters->attribute == 6 ) { - if ( f->texdef.contents && f->texdef.contents & filters->mask ) { + if ( f->texdef.contents && ( f->texdef.contents & filters->mask ) ) { filterbrush = true; break; }