Code:
bool StrStr(char *Str, char *SubStr, bool LinearCmp)
{
char *Str2 = Str;
char *SubStr2 = SubStr;
while(*Str2)
{
char *Str3 = Str2;
while(*Str3 && *SubStr2 && *Str3 == *SubStr2)
{
*Str3++;
*SubStr2++;
if(*SubStr2 == NULL)
return true;
}
if(LinearCmp) return false;
*Str2++;
SubStr2 = SubStr;
}
return false;
}
bool StrStrSkipSlashes(char *Str, char *SubStr, bool LinearCmp)
{
char *Str2 = Str;
char *SubStr2 = SubStr;
while(*Str2)
{
char *Str3 = Str2;
while(*Str3 && *SubStr2
&& (*Str3 == *SubStr2 || (*Str3 == '\\' || *Str3 == '/') ))
{
// Mini loop to skip infinite series of slashes in str and substr
if(*Str3 == '\\' || *Str3 == '/')
{
while(*Str3 == '\\' || *Str3 == '/') *Str3++;
while(*SubStr2 == '\\' || *SubStr2 == '/') *SubStr2++;
}
*Str3++;
*SubStr2++;
if(*SubStr2 == NULL)
return true;
}
if(LinearCmp) return false;
*Str2++;
SubStr2 = SubStr;
}
return false;
}
void FlagShaders(char *Shader)
{
glEnable( GL_DEPTH_TEST );
//everything, models, items etc.
if(StrStr(Shader, "models", true))
{
//player models
if(StrStrSkipSlashes(Shader, "models/players", true))
{
glDisable( GL_DEPTH_TEST );
//Log("Shader == %s", Shader);
//Shader == models/players/uriel/blue.tga
//team blue
if( (StrStrSkipSlashes(Shader, "models/players/anarki/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/biker/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/bitterman/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/bones/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/crash/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/doom/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/grunt/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/hunter/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/keel/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/klesk/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/lucy/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/major/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/mynx/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/orbb/Blue.tg", true)) ||
(StrStrSkipSlashes(Shader, "models/players/ranger/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/razor/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/sarge/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/slash/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/sorlag/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/tankjr/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/uriel/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/visor/Blue.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/xaero/Blue.tga", true)) )
{
glDisable( GL_DEPTH_TEST );
}
//team red
if( (StrStrSkipSlashes(Shader, "models/players/anarki/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/biker/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/bitterman/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/bones/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/crash/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/doom/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/grunt/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/hunter/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/keel/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/klesk/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/lucy/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/major/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/mynx/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/orbb/Red.tg", true)) ||
(StrStrSkipSlashes(Shader, "models/players/ranger/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/razor/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/sarge/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/slash/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/sorlag/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/tankjr/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/uriel/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/visor/Red.tga", true)) ||
(StrStrSkipSlashes(Shader, "models/players/xaero/Red.tga", true)) )
{
glDisable( GL_DEPTH_TEST );
}
}
}
}
in glbindtexture: