CompileTeam: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| mNo edit summary | SirYodaJedi (talk | contribs)   (→Code:  explain) | ||
| Line 46: | Line 46: | ||
|   } |   } | ||
| ==  | == VBSP code == | ||
| First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp | While {{code|%CompileTeam}} only exists in {{l4d}} [[VBSP]] and newer, the [[contents flags]] it writes exist in all versions of Source. Adding the following to the SDK VBSP source code will allow {{code|%CompileTeam}} to be used in {{src13}} branches, without using leaked code. | ||
| First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp: | |||
| <syntaxhighlight lang=cpp> | <syntaxhighlight lang=cpp> | ||
| 	ADD_CONTENTS(CONTENTS_TEAM1) | 	ADD_CONTENTS(CONTENTS_TEAM1) | ||
Revision as of 12:06, 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.
)
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
		}
	}
}
VBSP code
While %CompileTeam only exists in  VBSP and newer, the contents flags it writes exist in all versions of Source. Adding the following to the SDK VBSP source code will allow
 VBSP and newer, the contents flags it writes exist in all versions of Source. Adding the following to the SDK VBSP source code will allow %CompileTeam to be used in  branches, without using leaked code.
 branches, without using leaked 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;
	}
}