!!cvard3 r_floorcolour
!!cvard3 r_wallcolour
//FIXME !!permu FOG

struct a2v {
	float4 pos: POSITION;
	float2 lmtc: TEXCOORD1;
	float3 normal: NORMAL;
};
struct v2f {
	#ifndef FRAGMENT_SHADER
	float4 pos: POSITION;
	#endif
	float2 lmtc: TEXCOORD0;
	float4 col: TEXCOORD1;	//tc not colour to preserve range for oversaturation
};
#ifdef VERTEX_SHADER
	float4x4  m_modelviewprojection;
	float4 e_lmscale;
	v2f main (a2v inp)
	{
		v2f outp;
		outp.pos = mul(m_modelviewprojection, inp.pos);
		outp.lmtc = inp.lmtc;
		outp.col = e_lmscale * float4(((inp.normal.z < 0.73)?r_wallcolour:r_floorcolour)/255.0, 1.0);
		return outp;
	}
#endif

#ifdef FRAGMENT_SHADER
	sampler s_t0;
	float4 main (v2f inp) : COLOR0
	{
		return inp.col * tex2D(s_t0, inp.lmtc).xyzw;
	}
#endif
