%CompilePassBullets

From Valve Developer Community
Jump to: navigation, search

Stub

This article or section is a stub. You can help by adding to it.

For models, see $contents grate.

Adding this VMT parameter to a material to make VBSP flag the brush contents as CONTENTS_GRATE, causing the brush to be non-solid to hitscan traces, such as bullets. Useful for foliage or metal grates.

Icon-Bug.pngBug:Does not work correctly in some games (need to use separate %CompileClip brushes instead):
  • Does not work in Counter-Strike: Global Offensive and Counter-Strike: Source.
  • Only allows explosions through in Team Fortress 2
Confirm:A custom VBSP which applies CONTENTS_PLAYERCLIP and CONTENTS_MONSTERCLIP instead of CONTENTS_GRATE (without applying SURF_NODRAW and SURF_NOLIGHT, unlike %CompileClip) would probably function as intended in these games.

Example code:

if ( ( propVal = GetMaterialVar( matID, "%compileClipYesDraw" ) ) && StringIsTrue( propVal ) )
{
	// like %compilePassBullets, but works in CS:S and TF2
	// NOTE: This has effects on visibility too!
	textureref[i].contents &= ~CONTENTS_SOLID;
	textureref[i].contents |= CONTENTS_PLAYERCLIP | CONTENTS_MONSTERCLIP;
}
  [todo tested in?]
Confirm:Seems to act oddly in regards to casting lightmap shadows; see talk page.