protected static bool ParseSpecular( string parameters, MaterialScriptContext context )
{
string[] values = parameters.Split( new char[] { ' ', '\t' } );
// Must be 2, 4 or 5 parameters
if ( values.Length == 2 )
{
if ( values[ 0 ].ToLower() == "vertexcolour" ||
values[ 0 ].ToLower() == "vertexcolor" )
{
context.pass.VertexColorTracking |= TrackVertexColor.Specular;
context.pass.Shininess = StringConverter.ParseFloat( values[ 1 ] );
}
else
{
LogParseError( context, "Bad specular attribute, double parameter statement must be 'vertexcolour <shininess>' or 'vertexcolor <shininess>'." );
}
}
else if ( values.Length == 4 || values.Length == 5 )
{
context.pass.Specular = StringConverter.ParseColor( values );
context.pass.VertexColorTracking &= ~TrackVertexColor.Specular;
context.pass.Shininess = StringConverter.ParseFloat( values[ values.Length - 1 ] );
}
else
{
LogParseError( context, "Bad specular attribute, wrong number of parameters (expected 2, 4 or 5)." );
}
return false;
}