CompileTeam: Difference between revisions
Jump to navigation
Jump to search
SirYodaJedi (talk | contribs) (→Code) |
mNo edit summary |
||
Line 48: | Line 48: | ||
== Code == | == Code == | ||
First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp | First, add this to the appropriate section of PrintBrushContentsToString in csg.cpp | ||
< | <syntaxhighlight lang=cpp> | ||
ADD_CONTENTS(CONTENTS_TEAM1) | ADD_CONTENTS(CONTENTS_TEAM1) | ||
ADD_CONTENTS(CONTENTS_TEAM2) | ADD_CONTENTS(CONTENTS_TEAM2) | ||
</ | </syntaxhighlight> | ||
Next, add the following to the appropriate section of FindMiptex in textures.cpp: | Next, add the following to the appropriate section of FindMiptex in textures.cpp: | ||
< | <syntaxhighlight lang=cpp> | ||
// Handle L4D-style %CompileTeam (no leaked code used) | // Handle L4D-style %CompileTeam (no leaked code used) | ||
if ( propVal = GetMaterialVar( matID, "%compileTeam" ) ) | if ( propVal = GetMaterialVar( matID, "%compileTeam" ) ) | ||
Line 67: | Line 66: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
[[Category:Material System]] | [[Category:Material System]] | ||
[[Category:Shader parameters]] | [[Category:Shader parameters]] |
Revision as of 11:55, 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;
}
}