implement per-class globalshaders

This commit is contained in:
Ricardo Luís Vaz Silva 2025-01-10 19:52:58 -03:00 committed by Magnus Norddahl
commit 91300ac3b4
5 changed files with 24 additions and 14 deletions

View file

@ -68,7 +68,12 @@ TMap<FName, GlobalShaderDesc> classshaders[NUM_BUILTIN_SHADERS];
const GlobalShaderDesc * GetGlobalShader(int shaderNum, PClass * curActor, GlobalShaderAddr &addr)
{
if(shaderNum < NUM_BUILTIN_SHADERS)
if(shaderNum >= NUM_BUILTIN_SHADERS && usershaders[shaderNum - NUM_BUILTIN_SHADERS].shaderFlags & SFlag_Global)
{ // allow class and map shaders to override gobal shaders
shaderNum = usershaders[shaderNum - NUM_BUILTIN_SHADERS].shaderType;
}
if(shaderNum >= 0 && shaderNum < NUM_BUILTIN_SHADERS)
{
GlobalShaderDesc * shader;
if(curActor)