varying highp vec3 xlv_TEXCOORD3;
varying highp vec3 xlv_TEXCOORD2;
varying highp vec4 xlv_TEXCOORD1;
varying highp vec3 xlv_TEXCOORD0;
uniform sampler2D LightMapLookup;
uniform sampler2D LightMap;
uniform sampler2D NormalMap1;
uniform highp vec3 Lamp0Color;
uniform highp vec4 LightBorder;
uniform highp vec4 LightConfig3;
uniform highp vec4 LightConfig2;
uniform highp vec4 AmbientColor;
uniform highp vec3 FogColor;
uniform highp vec4 WaterColor;
uniform highp vec4 CameraPosition;
void main ()
{
  highp vec3 normal_1;
  highp vec4 nm1_2;
  lowp vec4 tmpvar_3;
  tmpvar_3 = texture2D (NormalMap1, xlv_TEXCOORD0.xy);
  nm1_2 = tmpvar_3;
  normal_1.z = nm1_2.z;
  normal_1.xy = ((2.0 * nm1_2.wy) - 1.0);
  normal_1.z = sqrt((1.001 - min (dot (normal_1.xy, normal_1.xy), 1.0)));
  highp vec3 tmpvar_4;
  tmpvar_4 = abs((xlv_TEXCOORD3 - LightConfig2.xyz));
  highp vec3 t_5;
  t_5.x = float((tmpvar_4.x >= LightConfig3.x));
  t_5.y = float((tmpvar_4.y >= LightConfig3.y));
  t_5.z = float((tmpvar_4.z >= LightConfig3.z));
  highp float tmpvar_6;
  tmpvar_6 = min (dot (t_5, vec3(1.0, 1.0, 1.0)), 1.0);
  highp vec4 s1_7;
  highp vec4 s0_8;
  highp vec4 offsets_9;
  lowp vec4 tmpvar_10;
  tmpvar_10 = texture2D (LightMapLookup, xlv_TEXCOORD3.xy);
  offsets_9 = tmpvar_10;
  highp vec2 tmpvar_11;
  tmpvar_11 = (xlv_TEXCOORD3.yz * 0.125);
  highp vec2 tmpvar_12;
  tmpvar_12 = (tmpvar_11 - (tmpvar_11 * tmpvar_6));
  lowp vec4 tmpvar_13;
  highp vec2 P_14;
  P_14 = (tmpvar_12 + offsets_9.xy);
  tmpvar_13 = texture2D (LightMap, P_14);
  s0_8 = tmpvar_13;
  lowp vec4 tmpvar_15;
  highp vec2 P_16;
  P_16 = (tmpvar_12 + offsets_9.zw);
  tmpvar_15 = texture2D (LightMap, P_16);
  s1_7 = tmpvar_15;
  highp vec4 tmpvar_17;
  tmpvar_17 = mix (mix (s0_8, s1_7, vec4(fract((xlv_TEXCOORD3.x * 64.0)))), LightBorder, vec4(tmpvar_6));
  highp vec4 tmpvar_18;
  tmpvar_18.w = 1.0;
  tmpvar_18.xyz = mix (FogColor, (mix ((WaterColor.xyz + (normal_1.z * 0.02)), vec3(0.6175, 0.8075, 0.8835), vec3(clamp (((-2.5 * abs(dot ((0.5 * (xlv_TEXCOORD2 + normal_1.xzy)), normalize((CameraPosition.xyz - xlv_TEXCOORD1.xyz))))) + 0.78), 0.0, 1.0))) * ((Lamp0Color * tmpvar_17.w) + (tmpvar_17.xyz + AmbientColor.xyz))), xlv_TEXCOORD0.zzz);
  gl_FragData[0] = tmpvar_18;
}

