temp, scriptline, token );
}
+ qboolean hasmap = qfalse;
while ( 1 )
{
/* get the next token */
if ( !strcmp( token, "}" ) ) {
break;
}
+ if ( !strcmp( token, "{" ) ) {
+ Sys_Printf( "WARNING9: %s : line %d : opening brace inside shader stage\n", temp, scriptline );
+ }
+ if ( !Q_stricmp( token, "mapComp" ) || !Q_stricmp( token, "mapNoComp" ) || !Q_stricmp( token, "animmapcomp" ) || !Q_stricmp( token, "animmapnocomp" ) ){
+ Sys_Printf( "WARNING7: %s : line %d : unsupported '%s' map directive\n", temp, scriptline, token );
+ }
/* skip the shader */
if ( !wantShader ) continue;
/* digest any images */
if ( !Q_stricmp( token, "map" ) ||
!Q_stricmp( token, "clampMap" ) ) {
-
+ hasmap = qtrue;
/* get an image */
GetToken( qfalse );
if ( token[ 0 ] != '*' && token[ 0 ] != '$' ) {
}
else if ( !Q_stricmp( token, "animMap" ) ||
!Q_stricmp( token, "clampAnimMap" ) ) {
+ hasmap = qtrue;
GetToken( qfalse );// skip num
while ( TokenAvailable() ){
GetToken( qfalse );
}
}
else if ( !Q_stricmp( token, "videoMap" ) ){
+ hasmap = qtrue;
GetToken( qfalse );
FixDOSName( token );
if ( strchr( token, '/' ) == NULL && strchr( token, '\\' ) == NULL ){
}
}
}
+ else if ( !Q_strncasecmp( token, "implicit", 8 ) ){
+ Sys_Printf( "WARNING5: %s : line %d : unsupported %s shader\n", temp, scriptline, token );
+ }
/* skip the shader */
else if ( !wantShader ) continue;
/* skyparms <outer image> <cloud height> <inner image> */
else if ( !Q_stricmp( token, "skyParms" ) ) {
+ hasmap = qtrue;
/* get image base */
GetToken( qfalse );
GetToken( qfalse );
GetToken( qfalse );
}
+ else if ( !Q_stricmp( token, "fogparms" ) ){
+ hasmap = qtrue;
+ }
}
//exclude shader
break;
}
}
+ if ( !hasmap ){
+ wantShader = qfalse;
+ }
if ( wantShader ){
if ( ShaderFileExcluded ){
if ( reasonShaderFile != NULL ){
/*
repackBSPMain()
- repack multiple maps, strip only required shaders
+ repack multiple maps, strip out only required shaders
works for Q3 type of shaders and ents
*/
strcat( shaderText, "\n\t}" );
break;
}
+ if ( !strcmp( token, "{" ) ) {
+ strcat( shaderText, "\n\t{" );
+ Sys_Printf( "WARNING9: %s : line %d : opening brace inside shader stage\n", temp, scriptline );
+ }
/* skip the shader */
if ( !wantShader ) continue;
}
//exclude shader
- if ( wantShader && !hasmap ){
- Sys_Printf( "WARNING8: %s : shader has no known maps\n", pk3Shaders + shader*65 );
- wantShader = qfalse;
- *( pk3Shaders + shader*65 ) = '\0';
- }
if ( wantShader ){
for ( j = 0; j < ExShadersN; j++ ){
if ( !Q_stricmp( ExShaders + j*65, pk3Shaders + shader*65 ) ){
break;
}
}
+ if ( wantShader && !hasmap ){
+ Sys_Printf( "WARNING8: %s : shader has no known maps\n", pk3Shaders + shader*65 );
+ wantShader = qfalse;
+ *( pk3Shaders + shader*65 ) = '\0';
+ }
if ( wantShader ){
strcat( allShaders, shaderText );
*( pk3Shaders + shader*65 ) = '\0';