CompileTeam: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
SirYodaJedi (talk | contribs) No edit summary  | 
				SirYodaJedi (talk | contribs)   (→Code)  | 
				||
| Line 47: | Line 47: | ||
== Code ==  | == Code ==  | ||
First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp  | |||
<source>  | |||
	ADD_CONTENTS(CONTENTS_TEAM1)  | |||
	ADD_CONTENTS(CONTENTS_TEAM2)  | |||
</source>  | |||
Next, add the following to the appropriate section of FindMiptex in textures.cpp:  | |||
<source lang=cpp>  | <source lang=cpp>  | ||
// Handle L4D-style %CompileTeam (no leaked code used)  | // Handle L4D-style %CompileTeam (no leaked code used)  | ||
Revision as of 09:43, 14 April 2025
(in all games since ![]()
)
Compiles the texture to only affect a specific team. For example, the climb texture is a ladder that only lets infected climb up it.
However, making a texture visible to only one team requires Proxies. As seen in the example below.
Example:
UnlitGeneric
{
	$basetexture "tools\climb"
	$additive 1
	"%compileTeam" 2
	"%compilepassbullets" 1
	"%compileladder" 1
	$proxRange 0.0
	$proxTeam 1.0
	$one 1.0
	
	Proxies
	{
		PlayerTeam
		{
			team 3 //Note: "%compileTeam" and this "team" use different numbers. Because that's just how it is coded.
			resultVar $proxTeam
		}
		Subtract
		{
			srcVar1 $one
			srcVar2 $proxRange
			resultVar $alpha
		}
		Multiply
		{
			srcVar1 $alpha
			srcVar2 $proxTeam
			resultVar $alpha
		}
		TextureScroll
		{
			texturescrollvar $baseTextureTransform
			texturescrollrate 1
			texturescrollangle 90.00
		}
	}
}
Code
First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp
	ADD_CONTENTS(CONTENTS_TEAM1)
	ADD_CONTENTS(CONTENTS_TEAM2)Next, add the following to the appropriate section of FindMiptex in textures.cpp:
// Handle L4D-style %CompileTeam (no leaked code used)
if ( propVal = GetMaterialVar( matID, "%compileTeam" ) )
{
	if ( ( atoi(propVal) ) == 1 )
	{
				textureref[i].contents |= CONTENTS_TEAM1;
	}
	else if ( ( atoi(propVal) ) == 2 )
	{
		textureref[i].contents |= CONTENTS_TEAM2;
	}
}