/* Class150_Sub2 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import jaggl.OpenGL;

public class Class150_Sub2 extends Class150 {
	Class148 aClass148_10227;
	static final char aChar10228 = '\0';
	static final char aChar10229 = '\001';
	Class146 aClass146_10230;
	int anInt10231;
	static final String aString10232 = "!!ARBvp1.0\nOPTION  ARB_position_invariant;\nATTRIB  iPos         = vertex.position;\nATTRIB  iColour      = vertex.color;\nATTRIB  iTexCoord    = vertex.texcoord[0];\nOUTPUT  oColour      = result.color;\nOUTPUT  oTexCoord0   = result.texcoord[0];\nOUTPUT  oTexCoord1   = result.texcoord[1];\nOUTPUT  oFogCoord    = result.fogcoord;\nPARAM   time         = program.local[65];\nPARAM   turbulence   = program.local[64];\nPARAM   lightAmbient = program.local[66]; \nPARAM   pMatrix[4]   = { state.matrix.projection };\nPARAM   mvMatrix[4]  = { state.matrix.modelview };\nPARAM   ivMatrix[4]  = { state.matrix.texture[1] };\nPARAM   texMatrix[4]  = { state.matrix.texture[0] };\nPARAM   fNoise[64]   = { program.local[0..63] };\nTEMP    noise, viewPos, worldPos, texCoord;\nADDRESS noiseAddr;\nDP4   viewPos.x, mvMatrix[0], iPos;\nDP4   viewPos.y, mvMatrix[1], iPos;\nDP4   viewPos.z, mvMatrix[2], iPos;\nDP4   viewPos.w, mvMatrix[3], iPos;\nMOV   oFogCoord.x, viewPos.z;\nDP4   worldPos.x, ivMatrix[0], viewPos;\nDP4   worldPos.y, ivMatrix[1], viewPos;\nDP4   worldPos.z, ivMatrix[2], viewPos;\nDP4   worldPos.w, ivMatrix[3], viewPos;\nADD   noise.x, worldPos.x, worldPos.z;SUB   noise.y, worldPos.z, worldPos.x;MUL   noise, noise, 0.0001220703125;\nFRC   noise, noise;\nMUL   noise, noise, 64;\nARL   noiseAddr.x, noise.x;\nMOV   noise.x, fNoise[noiseAddr.x].x;\nARL   noiseAddr.x, noise.y;\nMOV   noise.y, fNoise[noiseAddr.x].y;\nMUL   noise, noise, turbulence.x;\nDP4   texCoord.x, texMatrix[0], iTexCoord;\nDP4   texCoord.y, texMatrix[1], iTexCoord;\nADD   oTexCoord0.xy, texCoord, noise;\nMOV   oTexCoord0.z, 0;\nMOV   oTexCoord0.w, 1;\nMUL   oTexCoord1.xy, texCoord, 0.125;\nMOV   oTexCoord1.zw, time.xxxw;\nMUL   oColour.xyz, iColour, lightAmbient;\nMOV   oColour.w, iColour.w;\nEND";
	float aFloat10233;
	float[] aFloatArray10234;
	Class151 aClass151_10235;
	static float[] aFloatArray10236 = new float[4];

	void method3398() {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass146_10230.method3359('\001');
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		}
	}

	boolean method3395() {
		return true;
	}

	Class150_Sub2(Class84_Sub3 class84_sub3, Class151 class151) {
		super(class84_sub3);
		((Class150_Sub2) this).aClass151_10235 = class151;
		if ((((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aBool9466) && (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9450) >= 2) {
			((Class150_Sub2) this).aClass148_10227 = (Class148.method3382(((Class150_Sub2) this).aClass84_Sub3_1836, 34336, "!!ARBvp1.0\nOPTION  ARB_position_invariant;\nATTRIB  iPos         = vertex.position;\nATTRIB  iColour      = vertex.color;\nATTRIB  iTexCoord    = vertex.texcoord[0];\nOUTPUT  oColour      = result.color;\nOUTPUT  oTexCoord0   = result.texcoord[0];\nOUTPUT  oTexCoord1   = result.texcoord[1];\nOUTPUT  oFogCoord    = result.fogcoord;\nPARAM   time         = program.local[65];\nPARAM   turbulence   = program.local[64];\nPARAM   lightAmbient = program.local[66]; \nPARAM   pMatrix[4]   = { state.matrix.projection };\nPARAM   mvMatrix[4]  = { state.matrix.modelview };\nPARAM   ivMatrix[4]  = { state.matrix.texture[1] };\nPARAM   texMatrix[4]  = { state.matrix.texture[0] };\nPARAM   fNoise[64]   = { program.local[0..63] };\nTEMP    noise, viewPos, worldPos, texCoord;\nADDRESS noiseAddr;\nDP4   viewPos.x, mvMatrix[0], iPos;\nDP4   viewPos.y, mvMatrix[1], iPos;\nDP4   viewPos.z, mvMatrix[2], iPos;\nDP4   viewPos.w, mvMatrix[3], iPos;\nMOV   oFogCoord.x, viewPos.z;\nDP4   worldPos.x, ivMatrix[0], viewPos;\nDP4   worldPos.y, ivMatrix[1], viewPos;\nDP4   worldPos.z, ivMatrix[2], viewPos;\nDP4   worldPos.w, ivMatrix[3], viewPos;\nADD   noise.x, worldPos.x, worldPos.z;SUB   noise.y, worldPos.z, worldPos.x;MUL   noise, noise, 0.0001220703125;\nFRC   noise, noise;\nMUL   noise, noise, 64;\nARL   noiseAddr.x, noise.x;\nMOV   noise.x, fNoise[noiseAddr.x].x;\nARL   noiseAddr.x, noise.y;\nMOV   noise.y, fNoise[noiseAddr.x].y;\nMUL   noise, noise, turbulence.x;\nDP4   texCoord.x, texMatrix[0], iTexCoord;\nDP4   texCoord.y, texMatrix[1], iTexCoord;\nADD   oTexCoord0.xy, texCoord, noise;\nMOV   oTexCoord0.z, 0;\nMOV   oTexCoord0.w, 1;\nMUL   oTexCoord1.xy, texCoord, 0.125;\nMOV   oTexCoord1.zw, time.xxxw;\nMUL   oColour.xyz, iColour, lightAmbient;\nMOV   oColour.w, iColour.w;\nEND"));
			if (((Class150_Sub2) this).aClass148_10227 != null) {
				int[][] is = Exception_Sub4.method16693(64, 256, 0, 4, 4, 3, 0.4F, false, 1114979730);
				int[][] is_0_ = Exception_Sub4.method16693(64, 256, 8, 4, 4, 3, 0.4F, false, 505355062);
				int i = 0;
				((Class150_Sub2) this).aFloatArray10234 = new float[32768];
				for (int i_1_ = 0; i_1_ < 256; i_1_++) {
					int[] is_2_ = is[i_1_];
					int[] is_3_ = is_0_[i_1_];
					for (int i_4_ = 0; i_4_ < 64; i_4_++) {
						((Class150_Sub2) this).aFloatArray10234[i++] = (float) is_2_[i_4_] / 4096.0F;
						((Class150_Sub2) this).aFloatArray10234[i++] = (float) is_3_[i_4_] / 4096.0F;
					}
				}
				method16453();
			}
		}
	}

	void method3410(boolean bool) {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass146_10230.method3359('\0');
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadMatrixf((((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aClass288_9307.aFloatArray4285), 0);
			OpenGL.glMatrixMode(5888);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
			if (((Class150_Sub2) this).anInt10231 != (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327)) {
				int i = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327 % 5000 * 128 / 5000);
				for (int i_5_ = 0; i_5_ < 64; i_5_++) {
					OpenGL.glProgramLocalParameter4fvARB(34336, i_5_, (((Class150_Sub2) this).aFloatArray10234), i);
					i += 2;
				}
				if (((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841)
					((Class150_Sub2) this).aFloat10233 = (float) ((((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327) % 4000) / 4000.0F;
				else
					OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
				((Class150_Sub2) this).anInt10231 = ((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327;
			}
		}
	}

	void method3397(boolean bool) {
		/* empty */
	}

	void method3400(Class145 class145, int i) {
		((Class150_Sub2) this).aClass84_Sub3_1836.method15440(class145);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(i);
	}

	void method3399(int i, int i_6_) {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			if ((i & 0x80) == 0) {
				if ((i_6_ & 0x1) == 1) {
					if (!((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841) {
						int i_7_ = (((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).anInt9327 % 4000 * 16 / 4000);
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[i_7_]);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
					} else {
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, ((Class150_Sub2) this).aFloat10233, 0.0F, 0.0F, 1.0F);
					}
				} else {
					if (((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841)
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
					else
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[0]);
					OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
				}
			} else
				((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
			if ((i & 0x40) == 0) {
				aFloatArray10236[0] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9465);
				aFloatArray10236[1] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9411);
				aFloatArray10236[2] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9370);
				OpenGL.glProgramLocalParameter4fvARB(34336, 66, aFloatArray10236, 0);
			} else
				OpenGL.glProgramLocalParameter4fARB(34336, 66, 1.0F, 1.0F, 1.0F, 1.0F);
			int i_8_ = i & 0x3;
			if (i_8_ == 2)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.05F, 1.0F, 1.0F, 1.0F);
			else if (i_8_ == 3)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.1F, 1.0F, 1.0F, 1.0F);
			else
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.025F, 1.0F, 1.0F, 1.0F);
		}
	}

	void method3408() {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass146_10230.method3359('\001');
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		}
	}

	boolean method3403() {
		return true;
	}

	boolean method3402() {
		return true;
	}

	void method3404(boolean bool) {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass146_10230.method3359('\0');
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			OpenGL.glMatrixMode(5890);
			OpenGL.glLoadMatrixf((((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aClass288_9307.aFloatArray4285), 0);
			OpenGL.glMatrixMode(5888);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
			if (((Class150_Sub2) this).anInt10231 != (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327)) {
				int i = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327 % 5000 * 128 / 5000);
				for (int i_9_ = 0; i_9_ < 64; i_9_++) {
					OpenGL.glProgramLocalParameter4fvARB(34336, i_9_, (((Class150_Sub2) this).aFloatArray10234), i);
					i += 2;
				}
				if (((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841)
					((Class150_Sub2) this).aFloat10233 = (float) ((((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327) % 4000) / 4000.0F;
				else
					OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
				((Class150_Sub2) this).anInt10231 = ((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).anInt9327;
			}
		}
	}

	void method16448() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}

	void method16449() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}

	void method16450() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}

	void method16451() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}

	void method16452() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}

	boolean method3394() {
		return true;
	}

	void method3405(boolean bool) {
		/* empty */
	}

	void method3406(boolean bool) {
		/* empty */
	}

	void method3401(boolean bool) {
		/* empty */
	}

	void method3407(Class145 class145, int i) {
		((Class150_Sub2) this).aClass84_Sub3_1836.method15440(class145);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(i);
	}

	void method3409() {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass146_10230.method3359('\001');
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		}
	}

	void method3411(int i, int i_10_) {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			if ((i & 0x80) == 0) {
				if ((i_10_ & 0x1) == 1) {
					if (!((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841) {
						int i_11_ = (((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).anInt9327 % 4000 * 16 / 4000);
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[i_11_]);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
					} else {
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, ((Class150_Sub2) this).aFloat10233, 0.0F, 0.0F, 1.0F);
					}
				} else {
					if (((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841)
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
					else
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[0]);
					OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
				}
			} else
				((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
			if ((i & 0x40) == 0) {
				aFloatArray10236[0] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9465);
				aFloatArray10236[1] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9411);
				aFloatArray10236[2] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9370);
				OpenGL.glProgramLocalParameter4fvARB(34336, 66, aFloatArray10236, 0);
			} else
				OpenGL.glProgramLocalParameter4fARB(34336, 66, 1.0F, 1.0F, 1.0F, 1.0F);
			int i_12_ = i & 0x3;
			if (i_12_ == 2)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.05F, 1.0F, 1.0F, 1.0F);
			else if (i_12_ == 3)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.1F, 1.0F, 1.0F, 1.0F);
			else
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.025F, 1.0F, 1.0F, 1.0F);
		}
	}

	void method3396(int i, int i_13_) {
		if (((Class150_Sub2) this).aClass146_10230 != null) {
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
			if ((i & 0x80) == 0) {
				if ((i_13_ & 0x1) == 1) {
					if (!((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841) {
						int i_14_ = (((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).anInt9327 % 4000 * 16 / 4000);
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[i_14_]);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
					} else {
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
						OpenGL.glProgramLocalParameter4fARB(34336, 65, ((Class150_Sub2) this).aFloat10233, 0.0F, 0.0F, 1.0F);
					}
				} else {
					if (((Class151) ((Class150_Sub2) this).aClass151_10235).aBool1841)
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub3_1843);
					else
						((Class150_Sub2) this).aClass84_Sub3_1836.method15440(((Class151) ((Class150_Sub2) this).aClass151_10235).aClass145_Sub4Array1842[0]);
					OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F, 0.0F, 1.0F);
				}
			} else
				((Class150_Sub2) this).aClass84_Sub3_1836.method15440(null);
			((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
			if ((i & 0x40) == 0) {
				aFloatArray10236[0] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9465);
				aFloatArray10236[1] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9411);
				aFloatArray10236[2] = (((Class84_Sub3) ((Class150_Sub2) this).aClass84_Sub3_1836).aFloat9413 * ((Class84_Sub3) (((Class150_Sub2) this).aClass84_Sub3_1836)).aFloat9370);
				OpenGL.glProgramLocalParameter4fvARB(34336, 66, aFloatArray10236, 0);
			} else
				OpenGL.glProgramLocalParameter4fARB(34336, 66, 1.0F, 1.0F, 1.0F, 1.0F);
			int i_15_ = i & 0x3;
			if (i_15_ == 2)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.05F, 1.0F, 1.0F, 1.0F);
			else if (i_15_ == 3)
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.1F, 1.0F, 1.0F, 1.0F);
			else
				OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.025F, 1.0F, 1.0F, 1.0F);
		}
	}

	void method16453() {
		((Class150_Sub2) this).aClass146_10230 = new Class146(((Class150_Sub2) this).aClass84_Sub3_1836, 2);
		((Class150_Sub2) this).aClass146_10230.method3360(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15476(-16777216);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15443(260, 7681);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 34166, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, ((Class148) (((Class150_Sub2) this).aClass148_10227)).anInt1822);
		OpenGL.glEnable(34336);
		((Class150_Sub2) this).aClass146_10230.method3358();
		((Class150_Sub2) this).aClass146_10230.method3360(1);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(1);
		OpenGL.glMatrixMode(5890);
		OpenGL.glLoadIdentity();
		OpenGL.glMatrixMode(5888);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15467(0);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15445(0, 5890, 770);
		((Class150_Sub2) this).aClass84_Sub3_1836.method15439(0);
		OpenGL.glBindProgramARB(34336, 0);
		OpenGL.glDisable(34336);
		OpenGL.glDisable(34820);
		((Class150_Sub2) this).aClass146_10230.method3358();
	}
}
