//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.08.299.0000
//
//   psa shaderdump19/GRASS2004.pso /Fcshaderdump19/GRASS2004.pso.dis
//
//
// Parameters:
//
float4 AlphaTestRef : register(c3);
sampler2D DiffuseMap : register(s0);
sampler2D ShadowMap : register(s1);
sampler2D ShadowMaskMap : register(s2);
//
//
// Registers:
//
//   Name          Reg   Size
//   ------------- ----- ----
//   AlphaTestRef  const_3       1
//   DiffuseMap    texture_0       1
//   ShadowMap     texture_1       1
//   ShadowMaskMap texture_2       1
//


// Structures:

struct VS_OUTPUT {
    float2 DiffuseUV : TEXCOORD0;
			// partial precision
    float3 texcoord_4 : TEXCOORD4_centroid;
			// partial precision
    float4 texcoord_5 : TEXCOORD5_centroid;
			// partial precision
    float2 texcoord_2 : TEXCOORD2_centroid;
			// partial precision
    float3 texcoord_3 : TEXCOORD3_centroid;
			// partial precision
    float4 color_0 : COLOR0;
};

struct PS_OUTPUT {
    float4 color_0 : COLOR0;
};

// Code:

PS_OUTPUT main(VS_OUTPUT IN) {
    PS_OUTPUT OUT;

    float3 q2;
    float4 r0;
    float1 t0;
    float3 t1;

    t0.x = tex2D(ShadowMaskMap, IN.texcoord_3.xy);
			// partial precision
    t1.xyz = tex2D(ShadowMap, IN.texcoord_2.xy);
			// partial precision
    r0.xyzw = tex2D(DiffuseMap, IN.DiffuseUV.xy);
			// partial precision
    q2.xyz = (((IN.texcoord_3.z * (t0.x * (t1.xyz - 1))) + 1) * IN.texcoord_5.xyz) + IN.texcoord_4.xyz;
			// partial precision
    OUT.color_0.a = (AlphaTestRef.x >= r0.w ? 0 : IN.texcoord_5.w);
			// partial precision
    OUT.color_0.rgb = (r0.xyz * q2.xyz) + ((IN.color_0.rgb - (r0.xyz * q2.xyz)) * IN.color_0.a);
			// partial precision

    return OUT;
};

// approximately 15 instruction slots used (3 texture, 12 arithmetic)
