// Top sky dome, in camp.
// Shader 33
//
// Converted from 2_0 to 3_0 so we can use if_eq statement
// to skip non-sky textures like cabin floors, lamppost lights.

// [VS29638A74] Shader 33, sky dome
// Mod:
//  9E7D8DA0;  Skybox clouds Layer 1 
//  7E278589;  Skybox clouds Layer 2 
//  0DE06395;  Sun
//  EA93BB61;  Moon in Coach's Brain 
//  2FEFB366;  Moon out door of plane in Coach's Brain
// No mod:
//  FEB6B180;  Cabin floors  
//  CD6C7435;  Lamppost 
//  Unknown FF000000;
//  Unknown ABAE44A1;
//  6917ACAC;  Flashing red light in plane


	vs_3_0

	dcl_position v0
    dcl_normal v1
    dcl_texcoord v3
	
	dcl_position o0
	dcl_color o1
	dcl_fog o2
	dcl_texcoord o3.xy

	def c200, 666, 999, 0.0625, 8000
	def c201, 1,0,1,1	// hot pink

    m4x4 r4, v0, c6
   	add r4, r4, c50
		
	// At this point r4 is the output position.
	// For sky elements it's too close.
	
	// Look for key toggle to turn fix on/off
	// This makes it easier to be sure we've found them all.
	mov r30.x, c250.x
	if_eq r30.x, c200.x
	
		// If texture defined in DX9Settings.ini, we do the fixup, if
		// not we skip it.  Thus we only move the vertex further out
		// for the textures specified in the ini.
		// As defined in ini, c251.x == 666 if we are supposed to fix it.
		mov r30.x, c251.x
		if_eq r30.x, c200.x
			mul r4, r4, c200.w
		endif
	endif
	
	// Send vertex, changed or not, to the output
	mov o0, r4

	// Default path assumes we do not pinkify the output
	mov o1, c2			

	// Only do this if we have enabled pinkify.
	mov r30.y, c250.y
	if_eq r30.y, c200.x
	
			// If the current texture is in the Not Defined
		// list, then show it in hot-pink coloring.  We
		// can disable this coloring from the ini file, by
		// commenting out the ValNotDefined.
		mov r30.x, c251.x
		if_eq r30.x, c200.y
			mov o1, c201
		endif
	endif
	
	// Fog output, unchanged
    mov r11, v0
	add r7, c51, -r11
    dp3 r4.x, r7, r7
    rsq r4.x, r4.x
    rcp r4.x, r4.x
    mad r4.x, r4.x, c4.x, c4.y
    dp4 r4.y, r11, c52
    mad r4.y, r4.y, c4.z, c4.w
	min o2, r4.x, r4.y
    
	// Texture output unchanged
	mul o3.xy, v3, c94
 