// PAYDAY THE HESIT - LIGHTING AND HALOS ON BRIDGE
// HELIXMOD FIX BY MIKE_AR69
// Generated by Microsoft (R) HLSL Shader Compiler 9.24.950.2656
//
// Parameters:
//
//   float4x4 camera_inv_view_matrix;
//   float3 ref_light_direction;
//   float3 ref_light_position;
//   float3 ref_spot_scale;
//   float3 ref_unprojection;
//   float3 render_target_texel_offset;
//   float4x4 view_proj_matrix;
//   float3 vp_offset;
//   float3 vp_size;
//
//
// Registers:
//
//   Name                       Reg   Size
//   -------------------------- ----- ----
//   view_proj_matrix           c0       4
//   camera_inv_view_matrix     c4       3
//   ref_spot_scale             c7       1
//   ref_light_position         c8       1
//   ref_light_direction        c9       1
//   ref_unprojection           c10      1
//   render_target_texel_offset c11      1
//   vp_offset                  c12      1
//   vp_size                    c13      1
//

    vs_3_0
    def c14, 1, 2, -1, 0.5
def c200, 0, 0, 0.0625, 0
dcl_2d s0	
    dcl_position v0
	
    dcl_position o0
    dcl_texcoord o1
    dcl_texcoord1 o2
    dcl_texcoord2 o3.x

    
	mul r0.xyz, c7, v0
    mov r0.w, c14.x				//r0 is a WORLD coord
    
dp4 r4.x, r0, c0				
dp4 r4.y, r0, c1
dp4 r4.z, r0, c2
dp4 r4.w, r0, c3				//r4 is a PROJ coord

mov r3, r4   					//r3 is unshifted PROJ

mov r14.x, c250.x
if_eq r14.x, c200.w
	texldl r12, c200.z, s0
	add r12.y, r4.w, -r12.y
	mul r12.x, r12.x, r12.y
	add r4.x, r4.x, -r12.x		//r4 is STEREO PROJ
endif

mul r2.xy, r3.xy, c10			//"ref_unprojection"
mov r2.z, r3.w


mul r5.xy, r4.xy, c9			//r5 is STEREO VERSION of r2
mov r5.z, r4.w

mov r1.xy, r3.xy
mov r1.z, r3.z

mov r6.xy, r4.xy				//r6 is STEREO VERSION of r1
mov r6.z, r4.z


	dp3 o2.x, r2, c4			
    dp3 o2.y, r2, c5
    dp3 o2.z, r2, c6
   

	mov r0.yw, c14
    mov r2.xy, c13
    mad r0.xy, c12, r0.y, r2
    add r0.xy, r0, c14.z
    mul r0.xy, r2.z, r0
    mad r0.x, r1.x, c13.x, r0.x
    mad r0.y, r1.y, -c13.y, r0.y
    add r0.z, r2.z, r2.z
    mov r1.w, r2.z
mov r6.w, r5.z					//r1-->r6, r2-->r5
    add r2.xy, r0.w, c11
    mad o1.x, r0.z, r2.x, r0.x
    mad o1.y, r0.z, r2.y, r0.y
    mov o1.w, r0.z
    mov r0.xyz, c8
    
	dp3 o3.x, r0, c9
    
mov o0, r6  //r1   			//r1-->r6   o0 is stereoized **************
    
mov o2.w, r1.w //r6.w		
    mov o1.z, r1.z

	
	// mul r0.xyz, c7, v0
    // mov r0.w, c14.x
    // dp4 r1.x, r0, c0
    // dp4 r1.y, r0, c1
    // mul r2.xy, r1, c10
    // dp4 r2.z, r0, c3
    // dp4 r1.z, r0, c2
    // dp3 o2.x, r2, c4
    // dp3 o2.y, r2, c5
    // dp3 o2.z, r2, c6
    // mov r0.yw, c14
    // mov r2.xy, c13
    // mad r0.xy, c12, r0.y, r2
    // add r0.xy, r0, c14.z
    // mul r0.xy, r2.z, r0
    // mad r0.x, r1.x, c13.x, r0.x
    // mad r0.y, r1.y, -c13.y, r0.y
    // add r0.z, r2.z, r2.z
    // mov r1.w, r2.z
    // add r2.xy, r0.w, c11
    // mad o1.x, r0.z, r2.x, r0.x
    // mad o1.y, r0.z, r2.y, r0.y
    // mov o1.w, r0.z
    // mov r0.xyz, c8
    // dp3 o3.x, r0, c9
    // mov o0, r1
    // mov o2.w, r1.w
    // mov o1.z, r1.z

	
	
// approximately 28 instruction slots used
