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

public class Class150_Sub6 extends Class150
{
    Class147 aClass147_10417;
    static final char aChar10418 = '\0';
    static final char aChar10419 = '\001';
    static final String aString10420
	= "!!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";
    int anInt10421;
    float[] aFloatArray10422;
    float aFloat10423;
    static float[] aFloatArray10424 = new float[4];
    Class149 aClass149_10425;
    Class146 aClass146_10426;
    
    void method3556(boolean bool) {
	/* empty */
    }
    
    boolean method3544() {
	return true;
    }
    
    void method16822() {
	((Class150_Sub6) this).aClass147_10417
	    = new Class147(((Class150_Sub6) this).aClass87_Sub1_1742, 2);
	((Class150_Sub6) this).aClass147_10417.method3527(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15025(-16777216);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15022(260, 7681);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 34166, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336,
				((Class149) (((Class150_Sub6) this)
					     .aClass149_10425)).anInt1738);
	OpenGL.glEnable(34336);
	((Class150_Sub6) this).aClass147_10417.method3528();
	((Class150_Sub6) this).aClass147_10417.method3527(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	OpenGL.glMatrixMode(5890);
	OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 5890, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336, 0);
	OpenGL.glDisable(34336);
	OpenGL.glDisable(34820);
	((Class150_Sub6) this).aClass147_10417.method3528();
    }
    
    void method3539(boolean bool) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\0');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadMatrixf((((Class87_Sub1)
				   ((Class150_Sub6) this).aClass87_Sub1_1742)
				  .aClass276_8898.aFloatArray4141),
				 0);
	    OpenGL.glMatrixMode(5888);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if (((Class150_Sub6) this).anInt10421
		!= (((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
		    .anInt8871)) {
		int i = (((Class87_Sub1)
			  ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871
			 % 5000 * 128 / 5000);
		for (int i_0_ = 0; i_0_ < 64; i_0_++) {
		    OpenGL.glProgramLocalParameter4fvARB(34336, i_0_,
							 (((Class150_Sub6)
							   this)
							  .aFloatArray10422),
							 i);
		    i += 2;
		}
		if (((Class146) ((Class150_Sub6) this).aClass146_10426)
		    .aBool1725)
		    ((Class150_Sub6) this).aFloat10423
			= (float) ((((Class87_Sub1)
				     ((Class150_Sub6) this).aClass87_Sub1_1742)
				    .anInt8871)
				   % 4000) / 4000.0F;
		else
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		((Class150_Sub6) this).anInt10421
		    = ((Class87_Sub1)
		       ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871;
	    }
	}
    }
    
    void method3541(boolean bool) {
	/* empty */
    }
    
    void method16823() {
	((Class150_Sub6) this).aClass147_10417
	    = new Class147(((Class150_Sub6) this).aClass87_Sub1_1742, 2);
	((Class150_Sub6) this).aClass147_10417.method3527(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15025(-16777216);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15022(260, 7681);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 34166, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336,
				((Class149) (((Class150_Sub6) this)
					     .aClass149_10425)).anInt1738);
	OpenGL.glEnable(34336);
	((Class150_Sub6) this).aClass147_10417.method3528();
	((Class150_Sub6) this).aClass147_10417.method3527(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	OpenGL.glMatrixMode(5890);
	OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 5890, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336, 0);
	OpenGL.glDisable(34336);
	OpenGL.glDisable(34820);
	((Class150_Sub6) this).aClass147_10417.method3528();
    }
    
    Class150_Sub6(Class87_Sub1 class87_sub1, Class146 class146) {
	super(class87_sub1);
	((Class150_Sub6) this).aClass146_10426 = class146;
	if ((((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
	     .aBool8992)
	    && (((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
		.anInt8976) >= 2) {
	    ((Class150_Sub6) this).aClass149_10425
		= (Class149.method3533
		   (((Class150_Sub6) this).aClass87_Sub1_1742, 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_Sub6) this).aClass149_10425 != null) {
		int[][] is = Class179.method3916(64, 256, 0, 4, 4, 3, 0.4F,
						 false, 628582518);
		int[][] is_1_ = Class179.method3916(64, 256, 8, 4, 4, 3, 0.4F,
						    false, 384051910);
		int i = 0;
		((Class150_Sub6) this).aFloatArray10422 = new float[32768];
		for (int i_2_ = 0; i_2_ < 256; i_2_++) {
		    int[] is_3_ = is[i_2_];
		    int[] is_4_ = is_1_[i_2_];
		    for (int i_5_ = 0; i_5_ < 64; i_5_++) {
			((Class150_Sub6) this).aFloatArray10422[i++]
			    = (float) is_3_[i_5_] / 4096.0F;
			((Class150_Sub6) this).aFloatArray10422[i++]
			    = (float) is_4_[i_5_] / 4096.0F;
		    }
		}
		method16822();
	    }
	}
    }
    
    void method3552(Class141 class141, int i) {
	((Class150_Sub6) this).aClass87_Sub1_1742.method15019(class141);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(i);
    }
    
    void method3548() {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\001');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	}
    }
    
    boolean method3545() {
	return true;
    }
    
    boolean method3546() {
	return true;
    }
    
    void method3547() {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\001');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	}
    }
    
    void method16824() {
	((Class150_Sub6) this).aClass147_10417
	    = new Class147(((Class150_Sub6) this).aClass87_Sub1_1742, 2);
	((Class150_Sub6) this).aClass147_10417.method3527(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15025(-16777216);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15022(260, 7681);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 34166, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336,
				((Class149) (((Class150_Sub6) this)
					     .aClass149_10425)).anInt1738);
	OpenGL.glEnable(34336);
	((Class150_Sub6) this).aClass147_10417.method3528();
	((Class150_Sub6) this).aClass147_10417.method3527(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	OpenGL.glMatrixMode(5890);
	OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 5890, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336, 0);
	OpenGL.glDisable(34336);
	OpenGL.glDisable(34820);
	((Class150_Sub6) this).aClass147_10417.method3528();
    }
    
    void method16825() {
	((Class150_Sub6) this).aClass147_10417
	    = new Class147(((Class150_Sub6) this).aClass87_Sub1_1742, 2);
	((Class150_Sub6) this).aClass147_10417.method3527(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15025(-16777216);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15022(260, 7681);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 34166, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336,
				((Class149) (((Class150_Sub6) this)
					     .aClass149_10425)).anInt1738);
	OpenGL.glEnable(34336);
	((Class150_Sub6) this).aClass147_10417.method3528();
	((Class150_Sub6) this).aClass147_10417.method3527(1);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	OpenGL.glMatrixMode(5890);
	OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(0);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15024(0, 5890, 770);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	OpenGL.glBindProgramARB(34336, 0);
	OpenGL.glDisable(34336);
	OpenGL.glDisable(34820);
	((Class150_Sub6) this).aClass147_10417.method3528();
    }
    
    void method3543(Class141 class141, int i) {
	((Class150_Sub6) this).aClass87_Sub1_1742.method15019(class141);
	((Class150_Sub6) this).aClass87_Sub1_1742.method15020(i);
    }
    
    void method3538() {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\001');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	}
    }
    
    void method3549() {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\001');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	}
    }
    
    void method3537() {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\001');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	}
    }
    
    void method3542(int i, int i_6_) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    if ((i & 0x80) == 0) {
		if ((i_6_ & 0x1) == 1) {
		    if (!((Class146) ((Class150_Sub6) this).aClass146_10426)
			 .aBool1725) {
			int i_7_
			    = (((Class87_Sub1) (((Class150_Sub6) this)
						.aClass87_Sub1_1742)).anInt8871
			       % 4000 * 16 / 4000);
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub3Array1726[i_7_]);
			OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F,
							    0.0F, 0.0F, 1.0F);
		    } else {
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub2_1728);
			OpenGL.glProgramLocalParameter4fARB(34336, 65,
							    ((Class150_Sub6)
							     this).aFloat10423,
							    0.0F, 0.0F, 1.0F);
		    }
		} else {
		    if (((Class146) ((Class150_Sub6) this).aClass146_10426)
			.aBool1725)
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub2_1728);
		    else
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub3Array1726[0]);
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		}
	    } else
		((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if ((i & 0x40) == 0) {
		aFloatArray10424[0]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8936);
		aFloatArray10424[1]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8956);
		aFloatArray10424[2]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8938);
		OpenGL.glProgramLocalParameter4fvARB(34336, 66,
						     aFloatArray10424, 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 method3540(boolean bool) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\0');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadMatrixf((((Class87_Sub1)
				   ((Class150_Sub6) this).aClass87_Sub1_1742)
				  .aClass276_8898.aFloatArray4141),
				 0);
	    OpenGL.glMatrixMode(5888);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if (((Class150_Sub6) this).anInt10421
		!= (((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
		    .anInt8871)) {
		int i = (((Class87_Sub1)
			  ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871
			 % 5000 * 128 / 5000);
		for (int i_9_ = 0; i_9_ < 64; i_9_++) {
		    OpenGL.glProgramLocalParameter4fvARB(34336, i_9_,
							 (((Class150_Sub6)
							   this)
							  .aFloatArray10422),
							 i);
		    i += 2;
		}
		if (((Class146) ((Class150_Sub6) this).aClass146_10426)
		    .aBool1725)
		    ((Class150_Sub6) this).aFloat10423
			= (float) ((((Class87_Sub1)
				     ((Class150_Sub6) this).aClass87_Sub1_1742)
				    .anInt8871)
				   % 4000) / 4000.0F;
		else
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		((Class150_Sub6) this).anInt10421
		    = ((Class87_Sub1)
		       ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871;
	    }
	}
    }
    
    boolean method3553() {
	return true;
    }
    
    void method3550(boolean bool) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\0');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadMatrixf((((Class87_Sub1)
				   ((Class150_Sub6) this).aClass87_Sub1_1742)
				  .aClass276_8898.aFloatArray4141),
				 0);
	    OpenGL.glMatrixMode(5888);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if (((Class150_Sub6) this).anInt10421
		!= (((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
		    .anInt8871)) {
		int i = (((Class87_Sub1)
			  ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871
			 % 5000 * 128 / 5000);
		for (int i_10_ = 0; i_10_ < 64; i_10_++) {
		    OpenGL.glProgramLocalParameter4fvARB(34336, i_10_,
							 (((Class150_Sub6)
							   this)
							  .aFloatArray10422),
							 i);
		    i += 2;
		}
		if (((Class146) ((Class150_Sub6) this).aClass146_10426)
		    .aBool1725)
		    ((Class150_Sub6) this).aFloat10423
			= (float) ((((Class87_Sub1)
				     ((Class150_Sub6) this).aClass87_Sub1_1742)
				    .anInt8871)
				   % 4000) / 4000.0F;
		else
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		((Class150_Sub6) this).anInt10421
		    = ((Class87_Sub1)
		       ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871;
	    }
	}
    }
    
    void method3555(boolean bool) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass147_10417.method3529('\0');
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadMatrixf((((Class87_Sub1)
				   ((Class150_Sub6) this).aClass87_Sub1_1742)
				  .aClass276_8898.aFloatArray4141),
				 0);
	    OpenGL.glMatrixMode(5888);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if (((Class150_Sub6) this).anInt10421
		!= (((Class87_Sub1) ((Class150_Sub6) this).aClass87_Sub1_1742)
		    .anInt8871)) {
		int i = (((Class87_Sub1)
			  ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871
			 % 5000 * 128 / 5000);
		for (int i_11_ = 0; i_11_ < 64; i_11_++) {
		    OpenGL.glProgramLocalParameter4fvARB(34336, i_11_,
							 (((Class150_Sub6)
							   this)
							  .aFloatArray10422),
							 i);
		    i += 2;
		}
		if (((Class146) ((Class150_Sub6) this).aClass146_10426)
		    .aBool1725)
		    ((Class150_Sub6) this).aFloat10423
			= (float) ((((Class87_Sub1)
				     ((Class150_Sub6) this).aClass87_Sub1_1742)
				    .anInt8871)
				   % 4000) / 4000.0F;
		else
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		((Class150_Sub6) this).anInt10421
		    = ((Class87_Sub1)
		       ((Class150_Sub6) this).aClass87_Sub1_1742).anInt8871;
	    }
	}
    }
    
    void method3551(int i, int i_12_) {
	if (((Class150_Sub6) this).aClass147_10417 != null) {
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(1);
	    if ((i & 0x80) == 0) {
		if ((i_12_ & 0x1) == 1) {
		    if (!((Class146) ((Class150_Sub6) this).aClass146_10426)
			 .aBool1725) {
			int i_13_
			    = (((Class87_Sub1) (((Class150_Sub6) this)
						.aClass87_Sub1_1742)).anInt8871
			       % 4000 * 16 / 4000);
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub3Array1726[i_13_]);
			OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F,
							    0.0F, 0.0F, 1.0F);
		    } else {
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub2_1728);
			OpenGL.glProgramLocalParameter4fARB(34336, 65,
							    ((Class150_Sub6)
							     this).aFloat10423,
							    0.0F, 0.0F, 1.0F);
		    }
		} else {
		    if (((Class146) ((Class150_Sub6) this).aClass146_10426)
			.aBool1725)
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub2_1728);
		    else
			((Class150_Sub6) this).aClass87_Sub1_1742.method15019
			    (((Class146)
			      ((Class150_Sub6) this).aClass146_10426)
			     .aClass141_Sub3Array1726[0]);
		    OpenGL.glProgramLocalParameter4fARB(34336, 65, 0.0F, 0.0F,
							0.0F, 1.0F);
		}
	    } else
		((Class150_Sub6) this).aClass87_Sub1_1742.method15019(null);
	    ((Class150_Sub6) this).aClass87_Sub1_1742.method15018(0);
	    if ((i & 0x40) == 0) {
		aFloatArray10424[0]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8936);
		aFloatArray10424[1]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8956);
		aFloatArray10424[2]
		    = (((Class87_Sub1)
			((Class150_Sub6) this).aClass87_Sub1_1742).aFloat8864
		       * ((Class87_Sub1) (((Class150_Sub6) this)
					  .aClass87_Sub1_1742)).aFloat8938);
		OpenGL.glProgramLocalParameter4fvARB(34336, 66,
						     aFloatArray10424, 0);
	    } else
		OpenGL.glProgramLocalParameter4fARB(34336, 66, 1.0F, 1.0F,
						    1.0F, 1.0F);
	    int i_14_ = i & 0x3;
	    if (i_14_ == 2)
		OpenGL.glProgramLocalParameter4fARB(34336, 64, 0.05F, 1.0F,
						    1.0F, 1.0F);
	    else if (i_14_ == 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 method3557(boolean bool) {
	/* empty */
    }
    
    void method3554(boolean bool) {
	/* empty */
    }
}
