/* Class87_Sub1 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.awt.Canvas;

import jaclib.memory.Buffer;
import jaclib.memory.Stream;
import jaclib.memory.heap.NativeHeap;

import jaggl.OpenGL;

public class Class87_Sub1 extends Class87
{
    String aString8815;
    long aLong8816;
    float[] aFloatArray8817;
    static final int anInt8818 = 1;
    static final int anInt8819 = 2;
    Class243_Sub42[] aClass243_Sub42Array8820;
    static final int anInt8821 = 8;
    static final int anInt8822 = 16;
    static final int anInt8823 = 32;
    static final int anInt8824 = 32993;
    static final int anInt8825 = 5121;
    static final int anInt8826 = 5123;
    int anInt8827;
    static final int anInt8828 = 4;
    static final int anInt8829 = 7;
    static final int anInt8830 = 128;
    int anInt8831;
    static final int anInt8832 = 100663296;
    float aFloat8833;
    static final int anInt8834 = 8448;
    static final int anInt8835 = 260;
    static final int anInt8836 = 34023;
    static final int anInt8837 = 34165;
    static final int anInt8838 = 34479;
    float aFloat8839;
    Class350 aClass350_8840;
    static final int anInt8841 = 34167;
    static final int anInt8842 = 1;
    static final int anInt8843 = 770;
    static final int anInt8844 = 768;
    static final int anInt8845 = 0;
    static final int anInt8846 = 1;
    static final int anInt8847 = 2;
    static final int anInt8848 = 0;
    Class140 aClass140_8849;
    static final int anInt8850 = 5126;
    static final int anInt8851 = 3;
    static final int anInt8852 = 1;
    static final int anInt8853 = 2;
    static final int anInt8854 = 4;
    static final int anInt8855 = 8;
    static final int anInt8856 = 55;
    static final int anInt8857 = 7;
    float aFloat8858;
    int anInt8859;
    Class162 aClass162_8860;
    static final int anInt8861 = 34166;
    boolean aBool8862;
    Class243_Sub47_Sub3 aClass243_Sub47_Sub3_8863;
    float aFloat8864;
    Class243_Sub47_Sub1 aClass243_Sub47_Sub1_8865;
    Class154 aClass154_8866 = new Class154();
    Class276 aClass276_8867 = new Class276();
    Class420 aClass420_8868;
    int anInt8869;
    Class153 aClass153_8870;
    int anInt8871;
    int anInt8872;
    float aFloat8873;
    boolean aBool8874;
    boolean aBool8875;
    Class420 aClass420_8876;
    float aFloat8877;
    int anInt8878;
    int anInt8879;
    int anInt8880;
    Class420 aClass420_8881;
    Class276 aClass276_8882;
    Class420 aClass420_8883;
    Class420 aClass420_8884;
    Class420 aClass420_8885;
    Class420 aClass420_8886;
    boolean aBool8887;
    static int[] anIntArray8888 = new int[1000];
    static final int anInt8889 = 4;
    Class141_Sub3_Sub1 aClass141_Sub3_Sub1_8890;
    int anInt8891;
    boolean aBool8892;
    boolean aBool8893;
    static final int anInt8894 = 5890;
    boolean aBool8895;
    Class350 aClass350_8896;
    Class276 aClass276_8897;
    Class276 aClass276_8898;
    float aFloat8899;
    static final int anInt8900 = 0;
    float aFloat8901;
    float[][] aFloatArrayArray8902;
    float[] aFloatArray8903;
    float aFloat8904;
    float aFloat8905;
    Class86_Sub3[] aClass86_Sub3Array8906;
    float aFloat8907;
    int anInt8908;
    boolean aBool8909;
    boolean aBool8910;
    boolean aBool8911;
    Class350 aClass350_8912;
    Class276 aClass276_8913;
    Class276 aClass276_8914;
    boolean aBool8915;
    boolean aBool8916;
    boolean aBool8917;
    NativeHeap aNativeHeap8918;
    int anInt8919;
    int anInt8920;
    int anInt8921;
    static final int anInt8922 = -1;
    int anInt8923;
    int anInt8924;
    int anInt8925;
    int anInt8926;
    int anInt8927;
    OpenGL anOpenGL8928;
    static final int anInt8929 = 34168;
    Class141[] aClass141Array8930;
    float[] aFloatArray8931;
    float[] aFloatArray8932;
    float[] aFloatArray8933;
    float[] aFloatArray8934;
    int anInt8935;
    float aFloat8936;
    boolean aBool8937;
    float aFloat8938;
    Class139 aClass139_8939;
    float aFloat8940;
    Class243_Sub47_Sub2 aClass243_Sub47_Sub2_8941;
    int anInt8942;
    int anInt8943;
    int anInt8944;
    int anInt8945;
    boolean aBool8946;
    boolean aBool8947;
    static final int anInt8948 = 2;
    int anInt8949;
    int anInt8950;
    float aFloat8951;
    boolean aBool8952;
    float aFloat8953;
    int anInt8954;
    int anInt8955;
    float aFloat8956;
    static int anInt8957 = 4;
    static final int anInt8958 = 7681;
    Interface11 anInterface11_8959;
    Interface10 anInterface10_8960;
    int anInt8961;
    static final float aFloat8962 = 0.35F;
    int anInt8963;
    static final int anInt8964 = -2;
    Class156 aClass156_8965;
    Class276 aClass276_8966 = new Class276();
    Class141_Sub3 aClass141_Sub3_8967;
    Class103_Sub2 aClass103_Sub2_8968;
    boolean aBool8969;
    Class105 aClass105_8970;
    String aString8971;
    boolean aBool8972;
    int anInt8973;
    boolean aBool8974;
    boolean aBool8975;
    int anInt8976;
    int anInt8977;
    int anInt8978;
    boolean aBool8979;
    int anInt8980;
    boolean aBool8981;
    boolean aBool8982;
    boolean aBool8983;
    boolean aBool8984;
    boolean aBool8985;
    int anInt8986;
    boolean aBool8987;
    Class420 aClass420_8988;
    int anInt8989;
    Class276 aClass276_8990;
    boolean aBool8991;
    boolean aBool8992;
    boolean aBool8993;
    boolean aBool8994;
    int anInt8995;
    int anInt8996;
    float aFloat8997;
    float aFloat8998;
    Class86_Sub3[] aClass86_Sub3Array8999;
    Class276 aClass276_9000;
    Class169_Sub2_Sub2 aClass169_Sub2_Sub2_9001;
    Class140 aClass140_9002;
    float aFloat9003;
    Interface10 anInterface10_9004;
    static float[] aFloatArray9005 = new float[4];
    static float[] aFloatArray9006 = new float[4];
    Class243_Sub10_Sub2 aClass243_Sub10_Sub2_9007;
    int[] anIntArray9008;
    int[] anIntArray9009;
    int[] anIntArray9010;
    byte[] aByteArray9011;
    
    public final void method2330(Class350 class350) {
	((Class87_Sub1) this).aClass350_8896.method6638(class350);
	((Class87_Sub1) this).aClass276_8897
	    .method5513(((Class87_Sub1) this).aClass350_8896);
	((Class87_Sub1) this).aClass350_8912.method6638(class350);
	((Class87_Sub1) this).aClass350_8912.method6624();
	((Class87_Sub1) this).aClass276_8898
	    .method5513(((Class87_Sub1) this).aClass350_8912);
	method14996();
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14992();
    }
    
    public void method2344(float f, float f_0_, float f_1_, float[] fs) {
	float f_2_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7] * f_0_
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_1_));
	float f_3_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0] * f
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4] * f_0_
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * f_1_));
	float f_4_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1] * f
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5] * f_0_
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * f_1_));
	float f_5_
	    = (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8897.aFloatArray4141[2] * f
	       + ((Class87_Sub1) this).aClass276_8897.aFloatArray4141[6] * f_0_
	       + (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[10]
		  * f_1_));
	fs[0] = (((Class87_Sub1) this).aFloat8833
		 + ((Class87_Sub1) this).aFloat8905 * f_3_ / f_2_);
	fs[1] = (((Class87_Sub1) this).aFloat9003
		 + ((Class87_Sub1) this).aFloat8907 * f_4_ / f_2_);
	fs[2] = f_5_;
    }
    
    int method14972() {
	int i = 0;
	((Class87_Sub1) this).aString8815
	    = OpenGL.glGetString(7936).toLowerCase();
	((Class87_Sub1) this).aString8971
	    = OpenGL.glGetString(7937).toLowerCase();
	if (((Class87_Sub1) this).aString8815.indexOf("microsoft") != -1)
	    i |= 0x1;
	if (((Class87_Sub1) this).aString8815.indexOf("brian paul") != -1
	    || ((Class87_Sub1) this).aString8815.indexOf("mesa") != -1)
	    i |= 0x1;
	String string = OpenGL.glGetString(7938);
	String[] strings
	    = Class295.method5926(string.replace('.', ' '), ' ', 21121982);
	if (strings.length >= 2) {
	    try {
		int i_6_ = Class240.method4874(strings[0], 459916328);
		int i_7_ = Class240.method4874(strings[1], 1100516351);
		((Class87_Sub1) this).anInt8973 = i_6_ * 10 + i_7_;
	    } catch (NumberFormatException numberformatexception) {
		i |= 0x4;
	    }
	} else
	    i |= 0x4;
	if (((Class87_Sub1) this).anInt8973 < 12)
	    i |= 0x2;
	if (!((Class87_Sub1) this).anOpenGL8928
		 .method3728("GL_ARB_multitexture"))
	    i |= 0x8;
	if (!((Class87_Sub1) this).anOpenGL8928
		 .method3728("GL_ARB_texture_env_combine"))
	    i |= 0x20;
	int[] is = new int[1];
	OpenGL.glGetIntegerv(34018, is, 0);
	((Class87_Sub1) this).anInt8976 = is[0];
	OpenGL.glGetIntegerv(34929, is, 0);
	((Class87_Sub1) this).anInt8977 = is[0];
	OpenGL.glGetIntegerv(34930, is, 0);
	((Class87_Sub1) this).anInt8978 = is[0];
	if (((Class87_Sub1) this).anInt8976 < 2
	    || ((Class87_Sub1) this).anInt8977 < 2
	    || ((Class87_Sub1) this).anInt8978 < 2)
	    i |= 0x10;
	((Class87_Sub1) this).aBool8974 = Stream.method3943();
	((Class87_Sub1) this).aBool8984
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_vertex_buffer_object");
	((Class87_Sub1) this).aBool8982
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_multisample");
	((Class87_Sub1) this).aBool8992
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_vertex_program");
	((Class87_Sub1) this).anOpenGL8928
	    .method3728("GL_ARB_fragment_program");
	((Class87_Sub1) this).aBool8993
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_vertex_shader");
	((Class87_Sub1) this).aBool8994
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_fragment_shader");
	((Class87_Sub1) this).aBool8875 = ((Class87_Sub1) this)
					      .anOpenGL8928
					      .method3728("GL_EXT_texture3D");
	((Class87_Sub1) this).aBool8981
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_texture_rectangle");
	((Class87_Sub1) this).aBool8987
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_texture_cube_map");
	((Class87_Sub1) this).aBool8911
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_seamless_cube_map");
	((Class87_Sub1) this).aBool8862
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_ARB_texture_float");
	((Class87_Sub1) this).aBool8991 = false;
	((Class87_Sub1) this).aBool8979
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_EXT_framebuffer_object");
	((Class87_Sub1) this).aBool8946
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_EXT_framebuffer_blit");
	((Class87_Sub1) this).aBool8937
	    = ((Class87_Sub1) this).anOpenGL8928
		  .method3728("GL_EXT_framebuffer_multisample");
	((Class87_Sub1) this).aBool8983 = (((Class87_Sub1) this).aBool8946
					   & ((Class87_Sub1) this).aBool8937);
	((Class87_Sub1) this).aBool8975
	    = Class232.aString3802.startsWith("mac");
	OpenGL.glGetFloatv(2834, aFloatArray9005, 0);
	((Class87_Sub1) this).aFloat8998 = aFloatArray9005[0];
	((Class87_Sub1) this).aFloat8997 = aFloatArray9005[1];
	return i != 0 ? i : 0;
    }
    
    public Class169_Sub2 method2395() {
	return new Class169_Sub2_Sub2(this);
    }
    
    public final void method2358(int i, int i_8_, int i_9_, int i_10_) {
	((Class87_Sub1) this).aClass139_8939.method3462(i, i_8_, i_9_, i_10_);
    }
    
    public Class174 method2075() {
	int i = -1;
	if (((Class87_Sub1) this).aString8815.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub1) this).aString8815.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class87_Sub1) this).aString8815.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, "OpenGL", ((Class87_Sub1) this).anInt8973,
			    ((Class87_Sub1) this).aString8971, 0L);
    }
    
    public void method2279(Class350 class350, Class97 class97,
			   Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	class97.method2544(class346, ((Class87_Sub1) this).aClass276_9000,
			   class276, ((Class87_Sub1) this).aFloat8833,
			   ((Class87_Sub1) this).aFloat9003,
			   ((Class87_Sub1) this).aFloat8905,
			   ((Class87_Sub1) this).aFloat8907);
    }
    
    public void method2078() {
	OpenGL.glFinish();
    }
    
    public final void method2398(Class276 class276) {
	((Class87_Sub1) this).aClass276_9000.method5455(class276);
	method14996();
	method14995();
    }
    
    public boolean method2339() {
	return true;
    }
    
    public Class167 method2455(int[] is) {
	return new Class167_Sub2(this, is);
    }
    
    public boolean method2085() {
	return true;
    }
    
    public Class99 method2156(Class622 class622,
			      Class102_Sub1[] class102_sub1s, boolean bool) {
	return new Class99_Sub1(this, class622, class102_sub1s, bool);
    }
    
    final void method14973(Class141 class141) {
	Class141 class141_11_ = (((Class87_Sub1) this).aClass141Array8930
				 [((Class87_Sub1) this).anInt8995]);
	if (class141_11_ != class141) {
	    if (class141 != null) {
		if (class141_11_ != null) {
		    if (((Class141) class141).anInt1693
			!= ((Class141) class141_11_).anInt1693) {
			OpenGL.glDisable(((Class141) class141_11_).anInt1693);
			OpenGL.glEnable(((Class141) class141).anInt1693);
		    }
		} else
		    OpenGL.glEnable(((Class141) class141).anInt1693);
		OpenGL.glBindTexture(((Class141) class141).anInt1693,
				     ((Class141) class141).anInt1695);
	    } else
		OpenGL.glDisable(((Class141) class141_11_).anInt1693);
	    ((Class87_Sub1) this).aClass141Array8930[(((Class87_Sub1) this)
						      .anInt8995)]
		= class141;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x1;
    }
    
    void method14974() {
	if (((Class87_Sub1) this).aBool8887
	    && !((Class87_Sub1) this).aBool8910)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    public boolean method2089() {
	return (((Class87_Sub1) this).aBool8982
		&& (!method2124() || ((Class87_Sub1) this).aBool8983));
    }
    
    public boolean method2090() {
	return true;
    }
    
    final int method14975(int i) {
	if (i == 1)
	    return 7681;
	if (i == 0)
	    return 8448;
	if (i == 2)
	    return 34165;
	if (i == 3)
	    return 260;
	if (i == 4)
	    return 34023;
	throw new IllegalArgumentException();
    }
    
    public boolean method2091() {
	return true;
    }
    
    public boolean method2092() {
	return false;
    }
    
    Class169_Sub1 method2102(Canvas canvas, int i, int i_12_) {
	return new Class169_Sub1_Sub1(this, canvas);
    }
    
    final void method14976(int i) {
	if (((Class87_Sub1) this).anInt8995 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class87_Sub1) this).anInt8995 = i;
	}
    }
    
    void method14977() {
	int i = aClass169_993.method3826();
	int i_13_ = aClass169_993.method3836();
	((Class87_Sub1) this).aClass276_8990
	    .method5466(0.0F, (float) i, 0.0F, (float) i_13_, -1.0F, 1.0F);
	method2331();
	method14993();
	method2112();
    }
    
    final void method14978(int i, int i_14_, int i_15_) {
	OpenGL.glDrawArrays(i, i_14_, i_15_);
    }
    
    public void method2108() {
	if (((Class87_Sub1) this).aBool8952 && aClass169_993 != null) {
	    int i = ((Class87_Sub1) this).anInt8955;
	    int i_16_ = ((Class87_Sub1) this).anInt8891;
	    int i_17_ = ((Class87_Sub1) this).anInt8986;
	    int i_18_ = ((Class87_Sub1) this).anInt8919;
	    method2112();
	    int i_19_ = ((Class87_Sub1) this).anInt8924;
	    int i_20_ = ((Class87_Sub1) this).anInt8925;
	    int i_21_ = ((Class87_Sub1) this).anInt8926;
	    int i_22_ = ((Class87_Sub1) this).anInt8927;
	    method2331();
	    OpenGL.glReadBuffer(1028);
	    OpenGL.glDrawBuffer(1029);
	    method14993();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    method15035(0);
	    OpenGL.glMatrixMode(5889);
	    OpenGL.glLoadIdentity();
	    OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
	    OpenGL.glMatrixMode(5888);
	    OpenGL.glLoadIdentity();
	    OpenGL.glRasterPos2i(0, 0);
	    OpenGL.glCopyPixels(0, 0, aClass169_993.method3826(),
				aClass169_993.method3836(), 6144);
	    OpenGL.glFlush();
	    OpenGL.glReadBuffer(1029);
	    OpenGL.glDrawBuffer(1029);
	    method2113(i, i_17_, i_16_, i_18_);
	    method2110(i_19_, i_20_, i_21_, i_22_);
	}
    }
    
    public void method2117(int i, int i_23_) {
	int i_24_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_23_ & 0xff0000) / 1.671168E7F,
				(float) (i_23_ & 0xff00) / 65280.0F,
				(float) (i_23_ & 0xff) / 255.0F,
				(float) (i_23_ >>> 24) / 255.0F);
	    i_24_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15034(true);
	    i_24_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_24_ |= 0x400;
	OpenGL.glClear(i_24_);
    }
    
    public void method2205(int i, int i_25_, int i_26_, int i_27_, int i_28_,
			   int i_29_) {
	float f = (float) i + 0.35F;
	float f_30_ = (float) i_25_ + 0.35F;
	float f_31_ = f + (float) i_26_ - 1.0F;
	float f_32_ = f_30_ + (float) i_27_ - 1.0F;
	method14985();
	method15035(i_29_);
	OpenGL.glColor4ub((byte) (i_28_ >> 16), (byte) (i_28_ >> 8),
			  (byte) i_28_, (byte) (i_28_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_30_);
	OpenGL.glVertex2f(f, f_32_);
	OpenGL.glVertex2f(f_31_, f_32_);
	OpenGL.glVertex2f(f_31_, f_30_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    void method14979() {
	method14977();
    }
    
    public void method2126(int i, int i_33_, int i_34_, int i_35_, int i_36_,
			   int i_37_, byte[] is, int i_38_, int i_39_) {
	float f;
	float f_40_;
	if (((Class87_Sub1) this).aClass141_Sub3_Sub1_8890 == null
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10440
		< i_34_)
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10441
		< i_35_)) {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890
		= Class141_Sub3_Sub1.method16929(this, Class173.aClass173_2127,
						 Class90.aClass90_1040, i_34_,
						 i_35_, false, is,
						 Class173.aClass173_2127);
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16841(false,
								       false);
	    f = ((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562;
	    f_40_
		= ((Class141_Sub3_Sub1)
		   ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565;
	} else {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16829
		(0, 0, i_34_, i_35_, is, Class173.aClass173_2127, 0, 0, false);
	    f = (((Class141_Sub3_Sub1)
		  ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562
		 * (float) i_35_
		 / (float) (((Class141_Sub3_Sub1)
			     ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			    .anInt10441));
	    f_40_
		= (((Class141_Sub3_Sub1)
		    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565
		   * (float) i_34_
		   / (float) (((Class141_Sub3_Sub1)
			       ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			      .anInt10440));
	}
	method15121();
	method15019(((Class87_Sub1) this).aClass141_Sub3_Sub1_8890);
	method15035(i_39_);
	OpenGL.glColor4ub((byte) (i_36_ >> 16), (byte) (i_36_ >> 8),
			  (byte) i_36_, (byte) (i_36_ >> 24));
	method15025(i_37_);
	method15022(34165, 34165);
	method15023(0, 34166, 768);
	method15023(2, 5890, 770);
	method15024(0, 34166, 770);
	method15024(2, 5890, 770);
	float f_41_ = (float) i;
	float f_42_ = (float) i_33_;
	float f_43_ = f_41_ + (float) i_34_;
	float f_44_ = f_42_ + (float) i_35_;
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(0.0F, 0.0F);
	OpenGL.glVertex2f(f_41_, f_42_);
	OpenGL.glTexCoord2f(0.0F, f_40_);
	OpenGL.glVertex2f(f_41_, f_44_);
	OpenGL.glTexCoord2f(f, f_40_);
	OpenGL.glVertex2f(f_43_, f_44_);
	OpenGL.glTexCoord2f(f, 0.0F);
	OpenGL.glVertex2f(f_43_, f_42_);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
	method15023(2, 34166, 770);
	method15024(0, 5890, 770);
	method15024(2, 34166, 770);
    }
    
    public void method2099(int i, int i_45_, float f, int i_46_, int i_47_,
			   float f_48_, int i_49_, int i_50_, float f_51_,
			   int i_52_, int i_53_, int i_54_, int i_55_) {
	method14985();
	method15035(i_55_);
	OpenGL.glBegin(4);
	OpenGL.glColor4ub((byte) (i_52_ >> 16), (byte) (i_52_ >> 8),
			  (byte) i_52_, (byte) (i_52_ >> 24));
	OpenGL.glVertex3f((float) i + 0.35F, (float) i_45_ + 0.35F, f);
	OpenGL.glColor4ub((byte) (i_53_ >> 16), (byte) (i_53_ >> 8),
			  (byte) i_53_, (byte) (i_53_ >> 24));
	OpenGL.glVertex3f((float) i_46_ + 0.35F, (float) i_47_ + 0.35F, f_48_);
	OpenGL.glColor4ub((byte) (i_54_ >> 16), (byte) (i_54_ >> 8),
			  (byte) i_54_, (byte) (i_54_ >> 24));
	OpenGL.glVertex3f((float) i_49_ + 0.35F, (float) i_50_ + 0.35F, f_51_);
	OpenGL.glEnd();
    }
    
    void method2153(int i, int i_56_, int i_57_, int i_58_, int i_59_) {
	if (i_57_ < 0)
	    i_57_ = -i_57_;
	if (i + i_57_ >= ((Class87_Sub1) this).anInt8955
	    && i - i_57_ <= ((Class87_Sub1) this).anInt8891
	    && i_56_ + i_57_ >= ((Class87_Sub1) this).anInt8986
	    && i_56_ - i_57_ <= ((Class87_Sub1) this).anInt8919) {
	    method14985();
	    method15035(i_59_);
	    OpenGL.glColor4ub((byte) (i_58_ >> 16), (byte) (i_58_ >> 8),
			      (byte) i_58_, (byte) (i_58_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_60_ = (float) i_56_ + 0.35F;
	    int i_61_ = i_57_ << 1;
	    if ((float) i_61_ < ((Class87_Sub1) this).aFloat8998) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_60_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_60_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_60_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_60_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_61_ <= ((Class87_Sub1) this).aFloat8997) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_61_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_60_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_60_);
		int i_62_ = 262144 / (6 * i_57_);
		if (i_62_ <= 64)
		    i_62_ = 64;
		else if (i_62_ > 512)
		    i_62_ = 512;
		i_62_ = Class578.method12730(i_62_, 396106657);
		OpenGL.glVertex2f(f + (float) i_57_, f_60_);
		for (int i_63_ = 16384 - i_62_; i_63_ > 0; i_63_ -= i_62_)
		    OpenGL.glVertex2f(f + (Class137.aFloatArray1647[i_63_]
					   * (float) i_57_),
				      f_60_ + (Class137.aFloatArray1646[i_63_]
					       * (float) i_57_));
		OpenGL.glVertex2f(f + (float) i_57_, f_60_);
		OpenGL.glEnd();
	    }
	}
    }
    
    public void method2129(int i, int i_64_, int i_65_, int i_66_, int i_67_) {
	method14985();
	method15035(i_67_);
	float f = (float) i + 0.35F;
	float f_68_ = (float) i_64_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_66_ >> 16), (byte) (i_66_ >> 8),
			  (byte) i_66_, (byte) (i_66_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_68_);
	OpenGL.glVertex2f(f + (float) i_65_, f_68_);
	OpenGL.glEnd();
    }
    
    final void method14980(float f, float f_69_) {
	((Class87_Sub1) this).aFloat8953 = f;
	((Class87_Sub1) this).aFloat8904 = f_69_;
	method15129();
    }
    
    public void method2131(int i, int i_70_, int i_71_, int i_72_, int i_73_,
			   int i_74_) {
	method14985();
	method15035(i_74_);
	float f = (float) i_71_ - (float) i;
	float f_75_ = (float) i_72_ - (float) i_70_;
	if (f == 0.0F && f_75_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_76_
		= (float) (1.0 / Math.sqrt((double) (f * f + f_75_ * f_75_)));
	    f *= f_76_;
	    f_75_ *= f_76_;
	}
	OpenGL.glColor4ub((byte) (i_73_ >> 16), (byte) (i_73_ >> 8),
			  (byte) i_73_, (byte) (i_73_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_70_ + 0.35F);
	OpenGL.glVertex2f((float) i_71_ + f + 0.35F,
			  (float) i_72_ + f_75_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public void method2133(int i, int i_77_, int i_78_, int i_79_, int i_80_,
			   int i_81_, int i_82_, int i_83_, int i_84_) {
	if (i != i_78_ || i_77_ != i_79_) {
	    method14985();
	    method15035(i_81_);
	    float f = (float) i_78_ - (float) i;
	    float f_85_ = (float) i_79_ - (float) i_77_;
	    float f_86_
		= (float) (1.0 / Math.sqrt((double) (f * f + f_85_ * f_85_)));
	    f *= f_86_;
	    f_85_ *= f_86_;
	    OpenGL.glColor4ub((byte) (i_80_ >> 16), (byte) (i_80_ >> 8),
			      (byte) i_80_, (byte) (i_80_ >> 24));
	    i_84_ %= i_83_ + i_82_;
	    float f_87_ = f * (float) i_82_;
	    float f_88_ = f_85_ * (float) i_82_;
	    float f_89_ = 0.0F;
	    float f_90_ = 0.0F;
	    float f_91_ = f_87_;
	    float f_92_ = f_88_;
	    if (i_84_ > i_82_) {
		f_89_ = f * (float) (i_82_ + i_83_ - i_84_);
		f_90_ = f_85_ * (float) (i_82_ + i_83_ - i_84_);
	    } else {
		f_91_ = f * (float) (i_82_ - i_84_);
		f_92_ = f_85_ * (float) (i_82_ - i_84_);
	    }
	    float f_93_ = (float) i + 0.35F + f_89_;
	    float f_94_ = (float) i_77_ + 0.35F + f_90_;
	    float f_95_ = f * (float) i_83_;
	    float f_96_ = f_85_ * (float) i_83_;
	    for (;;) {
		if (i_78_ > i) {
		    if (f_93_ > (float) i_78_ + 0.35F)
			break;
		    if (f_93_ + f_91_ > (float) i_78_)
			f_91_ = (float) i_78_ - f_93_;
		} else {
		    if (f_93_ < (float) i_78_ + 0.35F)
			break;
		    if (f_93_ + f_91_ < (float) i_78_)
			f_91_ = (float) i_78_ - f_93_;
		}
		if (i_79_ > i_77_) {
		    if (f_94_ > (float) i_79_ + 0.35F)
			break;
		    if (f_94_ + f_92_ > (float) i_79_)
			f_92_ = (float) i_79_ - f_94_;
		} else {
		    if (f_94_ < (float) i_79_ + 0.35F)
			break;
		    if (f_94_ + f_92_ < (float) i_79_)
			f_92_ = (float) i_79_ - f_94_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_93_, f_94_);
		OpenGL.glVertex2f(f_93_ + f_91_, f_94_ + f_92_);
		OpenGL.glEnd();
		f_93_ += f_95_ + f_91_;
		f_94_ += f_96_ + f_92_;
		f_91_ = f_87_;
		f_92_ = f_88_;
	    }
	}
    }
    
    public void method2269(int i, int i_97_, int i_98_, int i_99_, int i_100_,
			   int i_101_, Class171 class171, int i_102_,
			   int i_103_, int i_104_, int i_105_, int i_106_) {
	if (i != i_98_ || i_97_ != i_99_) {
	    Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	    Class141_Sub3_Sub1 class141_sub3_sub1
		= ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	    method15121();
	    method15019(((Class171_Sub1) class171_sub1)
			.aClass141_Sub3_Sub1_9437);
	    method15035(i_101_);
	    method15022(7681, 8448);
	    method15023(0, 34167, 768);
	    float f = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
		       / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
				  .anInt10566));
	    float f_107_
		= (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
		   / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
			      .anInt10564));
	    float f_108_ = (float) i_98_ - (float) i;
	    float f_109_ = (float) i_99_ - (float) i_97_;
	    float f_110_
		= (float) (1.0 / Math.sqrt((double) (f_108_ * f_108_
						     + f_109_ * f_109_)));
	    f_108_ *= f_110_;
	    f_109_ *= f_110_;
	    OpenGL.glColor4ub((byte) (i_100_ >> 16), (byte) (i_100_ >> 8),
			      (byte) i_100_, (byte) (i_100_ >> 24));
	    i_106_ %= i_105_ + i_104_;
	    float f_111_ = f_108_ * (float) i_104_;
	    float f_112_ = f_109_ * (float) i_104_;
	    float f_113_ = 0.0F;
	    float f_114_ = 0.0F;
	    float f_115_ = f_111_;
	    float f_116_ = f_112_;
	    if (i_106_ > i_104_) {
		f_113_ = f_108_ * (float) (i_104_ + i_105_ - i_106_);
		f_114_ = f_109_ * (float) (i_104_ + i_105_ - i_106_);
	    } else {
		f_115_ = f_108_ * (float) (i_104_ - i_106_);
		f_116_ = f_109_ * (float) (i_104_ - i_106_);
	    }
	    float f_117_ = (float) i + 0.35F + f_113_;
	    float f_118_ = (float) i_97_ + 0.35F + f_114_;
	    float f_119_ = f_108_ * (float) i_105_;
	    float f_120_ = f_109_ * (float) i_105_;
	    for (;;) {
		if (i_98_ > i) {
		    if (f_117_ > (float) i_98_ + 0.35F)
			break;
		    if (f_117_ + f_115_ > (float) i_98_)
			f_115_ = (float) i_98_ - f_117_;
		} else {
		    if (f_117_ < (float) i_98_ + 0.35F)
			break;
		    if (f_117_ + f_115_ < (float) i_98_)
			f_115_ = (float) i_98_ - f_117_;
		}
		if (i_99_ > i_97_) {
		    if (f_118_ > (float) i_99_ + 0.35F)
			break;
		    if (f_118_ + f_116_ > (float) i_99_)
			f_116_ = (float) i_99_ - f_118_;
		} else {
		    if (f_118_ < (float) i_99_ + 0.35F)
			break;
		    if (f_118_ + f_116_ < (float) i_99_)
			f_116_ = (float) i_99_ - f_118_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_117_ - (float) i_102_),
				    f_107_ * (f_118_ - (float) i_103_));
		OpenGL.glVertex2f(f_117_, f_118_);
		OpenGL.glTexCoord2f(f * (f_117_ + f_115_ - (float) i_102_),
				    f_107_ * (f_118_ + f_116_
					      - (float) i_103_));
		OpenGL.glVertex2f(f_117_ + f_115_, f_118_ + f_116_);
		OpenGL.glEnd();
		f_117_ += f_119_ + f_115_;
		f_118_ += f_120_ + f_116_;
		f_115_ = f_111_;
		f_116_ = f_112_;
	    }
	    method15023(0, 5890, 768);
	}
    }
    
    public void method2328(Class104 class104) {
	((Class87_Sub1) this).aClass154_8866.method3670(this, class104);
    }
    
    public void method2135(int i, int i_121_, int i_122_, int i_123_,
			   int i_124_, int i_125_, int i_126_) {
	OpenGL.glLineWidth((float) i_125_);
	method2131(i, i_121_, i_122_, i_123_, i_124_, i_126_);
	OpenGL.glLineWidth(1.0F);
    }
    
    public Class243_Sub30 method2140(int i) {
	Class243_Sub30_Sub1 class243_sub30_sub1 = new Class243_Sub30_Sub1(i);
	((Class87_Sub1) this).aClass420_8876.method7495(class243_sub30_sub1,
							1859486731);
	return class243_sub30_sub1;
    }
    
    void method14981() {
	int i = 0;
	while (!((Class87_Sub1) this).anOpenGL8928.method3729()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class43.method1220(1000L);
	}
    }
    
    public int method2136(int i, int i_127_, int i_128_, int i_129_,
			  int i_130_, int i_131_) {
	int i_132_ = 0;
	float f = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		      * (float) i)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		      * (float) i_127_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		      * (float) i_128_));
	float f_133_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		  * (float) i_129_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * (float) i_130_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * (float) i_131_));
	float f_134_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_127_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_128_));
	float f_135_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i_129_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_130_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_131_));
	if (f < -f_134_ && f_133_ < -f_135_)
	    i_132_ |= 0x10;
	else if (f > f_134_ && f_133_ > f_135_)
	    i_132_ |= 0x20;
	float f_136_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_127_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_128_));
	float f_137_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i_129_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_130_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_131_));
	if (f_136_ < -f_134_ && f_137_ < -f_135_)
	    i_132_ |= 0x1;
	if (f_136_ > f_134_ && f_137_ > f_135_)
	    i_132_ |= 0x2;
	float f_138_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_127_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_128_));
	float f_139_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i_129_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_130_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_131_));
	if (f_138_ < -f_134_ && f_139_ < -f_135_)
	    i_132_ |= 0x4;
	if (f_138_ > f_134_ && f_139_ > f_135_)
	    i_132_ |= 0x8;
	return i_132_;
    }
    
    public int method2280() {
	return 4;
    }
    
    public boolean method2088() {
	return true;
    }
    
    public final boolean method2359() {
	return ((Class87_Sub1) this).aClass139_8939.method3459();
    }
    
    public void method2316(Class243_Sub30 class243_sub30) {
	((Class87_Sub1) this).aNativeHeap8918
	    = (((Class243_Sub30_Sub1) (Class243_Sub30_Sub1) class243_sub30)
	       .aNativeHeap10520);
	if (((Class87_Sub1) this).anInterface10_9004 == null) {
	    Class243_Sub10_Sub2 class243_sub10_sub2
		= new Class243_Sub10_Sub2(80);
	    if (((Class87_Sub1) this).aBool8974) {
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
	    } else {
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
	    }
	    ((Class87_Sub1) this).anInterface10_9004
		= method15009(20, class243_sub10_sub2.aByteArray8691,
			      class243_sub10_sub2.anInt8688 * 126215893,
			      false);
	    ((Class87_Sub1) this).aClass140_9002
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       3, 0);
	    ((Class87_Sub1) this).aClass140_8849
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       2, 12);
	    ((Class87_Sub1) this).aClass154_8866.method3676(this);
	}
    }
    
    public Class135 method2143(int i, int i_140_, boolean bool,
			       boolean bool_141_) {
	return new Class135_Sub2(this, i, i_140_, bool);
    }
    
    public void method2314(int i, Class105 class105) {
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	((Class87_Sub1) this).aBool8969 = true;
    }
    
    public Class135 method2144(int[] is, int i, int i_142_, int i_143_,
			       int i_144_, boolean bool) {
	return new Class135_Sub2(this, i_143_, i_144_, is, i, i_142_);
    }
    
    final void method14982() {
	if (((Class87_Sub1) this).anInt8827 != 2) {
	    ((Class87_Sub1) this).anInt8827 = 2;
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	    method14992();
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0x7;
	}
    }
    
    public Class171 method2151(int i, int i_145_, int[] is, int[] is_146_) {
	return Class171_Sub1.method15819(this, i, i_145_, is, is_146_);
    }
    
    public void method2403(int i, Class171 class171, int i_147_, int i_148_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(1);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_149_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_147_),
			    f_149_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_148_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_147_),
			    f_149_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_148_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_147_),
			    f_149_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_148_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_147_),
			    f_149_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_148_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    public Class99 method2217(Class622 class622,
			      Class102_Sub1[] class102_sub1s, boolean bool) {
	return new Class99_Sub1(this, class622, class102_sub1s, bool);
    }
    
    public void method2120(int i) {
	/* empty */
    }
    
    public Class86 method2157(Class98 class98, int i, int i_150_, int i_151_,
			      int i_152_) {
	return new Class86_Sub3(this, class98, i, i_151_, i_152_, i_150_);
    }
    
    public int method2274(int i, int i_153_, int i_154_, int i_155_,
			  int i_156_, int i_157_) {
	int i_158_ = 0;
	float f = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		      * (float) i)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		      * (float) i_153_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		      * (float) i_154_));
	float f_159_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		  * (float) i_155_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * (float) i_156_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * (float) i_157_));
	float f_160_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_153_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_154_));
	float f_161_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i_155_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_156_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_157_));
	if (f < -f_160_ && f_159_ < -f_161_)
	    i_158_ |= 0x10;
	else if (f > f_160_ && f_159_ > f_161_)
	    i_158_ |= 0x20;
	float f_162_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_153_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_154_));
	float f_163_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i_155_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_156_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_157_));
	if (f_162_ < -f_160_ && f_163_ < -f_161_)
	    i_158_ |= 0x1;
	if (f_162_ > f_160_ && f_163_ > f_161_)
	    i_158_ |= 0x2;
	float f_164_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_153_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_154_));
	float f_165_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i_155_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_156_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_157_));
	if (f_164_ < -f_160_ && f_165_ < -f_161_)
	    i_158_ |= 0x4;
	if (f_164_ > f_160_ && f_165_ > f_161_)
	    i_158_ |= 0x8;
	return i_158_;
    }
    
    public int method2159(int i, int i_166_) {
	return i | i_166_;
    }
    
    final void method14983() {
	if (((Class87_Sub1) this).anInt8827 == 2)
	    OpenGL.glDepthRange(((Class87_Sub1) this).aFloat8877,
				((Class87_Sub1) this).aFloat8901);
	else
	    OpenGL.glDepthRange(0.0F, 1.0F);
    }
    
    public Interface5 method2417(int i, int i_167_, Class173 class173,
				 Class90 class90, int i_168_) {
	return new Class243_Sub11_Sub18(this, class173, class90, i, i_167_,
					i_168_);
    }
    
    public Class350 method2155() {
	return ((Class87_Sub1) this).aClass350_8840;
    }
    
    public void method2437(Class104 class104) {
	((Class87_Sub1) this).aClass154_8866.method3670(this, class104);
    }
    
    public void method2300(int i) {
	/* empty */
    }
    
    public Interface4 method2251(int i, int i_169_, int i_170_) {
	return new Class243_Sub11_Sub18(this, Class173.aClass173_2129,
					Class90.aClass90_1043, i, i_169_,
					i_170_);
    }
    
    public void method2193() {
	((Class87_Sub1) this).aBool8969 = false;
    }
    
    public void method2331() {
	((Class87_Sub1) this).anInt8924 = 0;
	((Class87_Sub1) this).anInt8925 = 0;
	((Class87_Sub1) this).anInt8926 = aClass169_993.method3826();
	((Class87_Sub1) this).anInt8927 = aClass169_993.method3836();
	method15061();
    }
    
    public void method2110(int i, int i_171_, int i_172_, int i_173_) {
	((Class87_Sub1) this).anInt8924 = i;
	((Class87_Sub1) this).anInt8925 = i_171_;
	((Class87_Sub1) this).anInt8926 = i_172_;
	((Class87_Sub1) this).anInt8927 = i_173_;
	method15061();
    }
    
    void method14984() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightModelfv(2899, aFloatArray9005, 0);
    }
    
    public final void method2116(int[] is) {
	is[0] = ((Class87_Sub1) this).anInt8955;
	is[1] = ((Class87_Sub1) this).anInt8986;
	is[2] = ((Class87_Sub1) this).anInt8891;
	is[3] = ((Class87_Sub1) this).anInt8919;
    }
    
    public final void method2112() {
	if (aClass169_993 != null) {
	    ((Class87_Sub1) this).anInt8955 = 0;
	    ((Class87_Sub1) this).anInt8986 = 0;
	    ((Class87_Sub1) this).anInt8891 = aClass169_993.method3826();
	    ((Class87_Sub1) this).anInt8919 = aClass169_993.method3836();
	    OpenGL.glDisable(3089);
	}
    }
    
    public Class167 method2183(int[] is) {
	return new Class167_Sub2(this, is);
    }
    
    final void method14985() {
	if (((Class87_Sub1) this).anInt8908 != 1) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    ((Class87_Sub1) this).anInt8908 = 1;
	}
    }
    
    public final void method2338(float f) {
	if (((Class87_Sub1) this).aFloat8864 != f) {
	    ((Class87_Sub1) this).aFloat8864 = f;
	    method14984();
	}
    }
    
    final void method14986(Interface11 interface11, int i, int i_174_,
			   int i_175_) {
	method15011(interface11);
	OpenGL.glDrawElements(i, i_175_, 5123,
			      interface11.method61() + (long) (i_174_ * 2));
    }
    
    void method14987() {
	((Class87_Sub1) this).aClass141Array8930
	    = new Class141[((Class87_Sub1) this).anInt8976];
	((Class87_Sub1) this).aClass141_Sub3_8967
	    = new Class141_Sub3(this, 3553, Class173.aClass173_2131,
				Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	for (int i = 0; i < 7; i++) {
	    ((Class87_Sub1) this).aClass86_Sub3Array8999[i]
		= new Class86_Sub3(this);
	    ((Class87_Sub1) this).aClass86_Sub3Array8906[i]
		= new Class86_Sub3(this);
	}
	if (((Class87_Sub1) this).aBool8979) {
	    ((Class87_Sub1) this).aClass169_Sub2_Sub2_9001
		= new Class169_Sub2_Sub2(this);
	    new Class169_Sub2_Sub2(this);
	}
    }
    
    final void method14988() {
	if (aClass169_993 != null
	    && (((Class87_Sub1) this).anInt8955
		< ((Class87_Sub1) this).anInt8891)
	    && (((Class87_Sub1) this).anInt8986
		< ((Class87_Sub1) this).anInt8919))
	    OpenGL.glScissor((((Class87_Sub1) this).anInt8872
			      + ((Class87_Sub1) this).anInt8955),
			     (((Class87_Sub1) this).anInt8923
			      + aClass169_993.method3836()
			      - ((Class87_Sub1) this).anInt8919),
			     (((Class87_Sub1) this).anInt8891
			      - ((Class87_Sub1) this).anInt8955),
			     (((Class87_Sub1) this).anInt8919
			      - ((Class87_Sub1) this).anInt8986));
	else
	    OpenGL.glScissor(0, 0, 0, 0);
    }
    
    final void method14989() {
	OpenGL.glPushMatrix();
    }
    
    final void method14990(Class276 class276) {
	OpenGL.glPushMatrix();
	OpenGL.glMultMatrixf(class276.aFloatArray4141, 0);
    }
    
    public void method2191(int i, Class105 class105) {
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	((Class87_Sub1) this).aBool8969 = true;
    }
    
    final void method14991() {
	OpenGL.glPopMatrix();
    }
    
    public final void method2320(Class350 class350) {
	((Class87_Sub1) this).aClass350_8896.method6638(class350);
	((Class87_Sub1) this).aClass276_8897
	    .method5513(((Class87_Sub1) this).aClass350_8896);
	((Class87_Sub1) this).aClass350_8912.method6638(class350);
	((Class87_Sub1) this).aClass350_8912.method6624();
	((Class87_Sub1) this).aClass276_8898
	    .method5513(((Class87_Sub1) this).aClass350_8912);
	method14996();
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14992();
    }
    
    public Class350 method2257() {
	return new Class350(((Class87_Sub1) this).aClass350_8896);
    }
    
    final void method14992() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class87_Sub1) this).aClass276_8897
			      .aFloatArray4141),
			     0);
	if (((Class87_Sub1) this).aBool8916)
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	method15002();
	method14998();
    }
    
    public final void method2166(Class276 class276) {
	((Class87_Sub1) this).aClass276_9000.method5455(class276);
	method14996();
	method14995();
    }
    
    public final Class276 method2167() {
	return new Class276(((Class87_Sub1) this).aClass276_9000);
    }
    
    final void method14993() {
	if (((Class87_Sub1) this).anInt8827 != 0) {
	    ((Class87_Sub1) this).anInt8827 = 0;
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method14994() {
	if (((Class87_Sub1) this).anInt8827 != 1) {
	    ((Class87_Sub1) this).anInt8827 = 1;
	    method14995();
	    method15061();
	    method14983();
	    OpenGL.glMatrixMode(5888);
	    OpenGL.glLoadIdentity();
	    ((Class87_Sub1) this).anInt8908 &= ~0x8;
	}
    }
    
    public int method2158(int i, int i_176_) {
	return i & i_176_ ^ i_176_;
    }
    
    final void method14995() {
	((Class87_Sub1) this).aFloat8839
	    = ((Class87_Sub1) this).aClass276_9000.method5473();
	((Class87_Sub1) this).aFloat8858
	    = ((Class87_Sub1) this).aClass276_9000.method5509();
	method15129();
	if (((Class87_Sub1) this).anInt8827 == 2)
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	else if (((Class87_Sub1) this).anInt8827 == 1)
	    method14997(((Class87_Sub1) this).aClass276_8990.aFloatArray4141);
    }
    
    final void method14996() {
	((Class87_Sub1) this).aClass276_8882
	    .method5455(((Class87_Sub1) this).aClass276_8897);
	((Class87_Sub1) this).aClass276_8882
	    .method5537(((Class87_Sub1) this).aClass276_9000);
	((Class87_Sub1) this).aClass276_8882
	    .method5515(((Class87_Sub1) this).aFloatArrayArray8902[0]);
	((Class87_Sub1) this).aClass276_8882
	    .method5479(((Class87_Sub1) this).aFloatArrayArray8902[1]);
	((Class87_Sub1) this).aClass276_8882
	    .method5474(((Class87_Sub1) this).aFloatArrayArray8902[2]);
	((Class87_Sub1) this).aClass276_8882
	    .method5475(((Class87_Sub1) this).aFloatArrayArray8902[3]);
	((Class87_Sub1) this).aClass276_8882
	    .method5549(((Class87_Sub1) this).aFloatArrayArray8902[4]);
	((Class87_Sub1) this).aClass276_8882
	    .method5569(((Class87_Sub1) this).aFloatArrayArray8902[5]);
    }
    
    final void method14997(float[] fs) {
	float[] fs_177_ = new float[16];
	System.arraycopy(fs, 0, fs_177_, 0, 16);
	fs_177_[1] = -fs_177_[1];
	fs_177_[5] = -fs_177_[5];
	fs_177_[9] = -fs_177_[9];
	fs_177_[13] = -fs_177_[13];
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(fs_177_, 0);
	OpenGL.glMatrixMode(5888);
    }
    
    public void method2281(boolean bool) {
	((Class87_Sub1) this).aBool8917 = bool;
	method15050();
    }
    
    public int method2172() {
	return 4;
    }
    
    public void method2449(int i, Class243_Sub42[] class243_sub42s) {
	for (int i_178_ = 0; i_178_ < i; i_178_++)
	    ((Class87_Sub1) this).aClass243_Sub42Array8820[i_178_]
		= class243_sub42s[i_178_];
	((Class87_Sub1) this).anInt8831 = i;
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14998();
    }
    
    void method14998() {
	int i;
	for (i = 0; i < ((Class87_Sub1) this).anInt8831; i++) {
	    Class243_Sub42 class243_sub42
		= ((Class87_Sub1) this).aClass243_Sub42Array8820[i];
	    int i_179_ = 16386 + i;
	    aFloatArray9006[0]
		= (float) class243_sub42.method16334(1141430223);
	    aFloatArray9006[1] = (float) class243_sub42.method16335(490100194);
	    aFloatArray9006[2]
		= (float) class243_sub42.method16336(-1158629699);
	    aFloatArray9006[3] = 1.0F;
	    OpenGL.glLightfv(i_179_, 4611, aFloatArray9006, 0);
	    int i_180_ = class243_sub42.method16341(360761119);
	    float f = class243_sub42.method16337(629178635) / 255.0F;
	    aFloatArray9006[0] = (float) (i_180_ >> 16 & 0xff) * f;
	    aFloatArray9006[1] = (float) (i_180_ >> 8 & 0xff) * f;
	    aFloatArray9006[2] = (float) (i_180_ & 0xff) * f;
	    OpenGL.glLightfv(i_179_, 4609, aFloatArray9006, 0);
	    OpenGL.glLightf(i_179_, 4617,
			    (1.0F
			     / (float) (class243_sub42.method16345(-117934955)
					* class243_sub42
					      .method16345(-117934955))));
	    OpenGL.glEnable(i_179_);
	}
	for (/**/; i < ((Class87_Sub1) this).anInt8943; i++)
	    OpenGL.glDisable(16386 + i);
	((Class87_Sub1) this).anInt8943 = ((Class87_Sub1) this).anInt8831;
    }
    
    public final void method2311(float f) {
	if (((Class87_Sub1) this).aFloat8864 != f) {
	    ((Class87_Sub1) this).aFloat8864 = f;
	    method14984();
	}
    }
    
    public final void method2356(Class103 class103) {
	((Class87_Sub1) this).aClass103_Sub2_8968 = (Class103_Sub2) class103;
    }
    
    public final void method2170(int i) {
	((Class87_Sub1) this).anInt8921 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class87_Sub1) this).anInt8921++;
	((Class87_Sub1) this).anInt8942 = 1 << ((Class87_Sub1) this).anInt8921;
    }
    
    public final void method2244(int i, int i_181_, int i_182_) {
	if (((Class87_Sub1) this).anInt8989 != i
	    || ((Class87_Sub1) this).anInt8949 != i_181_
	    || ((Class87_Sub1) this).anInt8950 != i_182_) {
	    ((Class87_Sub1) this).anInt8989 = i;
	    ((Class87_Sub1) this).anInt8949 = i_181_;
	    ((Class87_Sub1) this).anInt8950 = i_182_;
	    method15129();
	    method15054();
	}
    }
    
    final void method14999(float f, float f_183_) {
	((Class87_Sub1) this).aFloat8953 = f;
	((Class87_Sub1) this).aFloat8904 = f_183_;
	method15129();
    }
    
    final void method15000(float f, float f_184_, float f_185_, float f_186_) {
	aFloatArray9005[0] = f;
	aFloatArray9005[1] = f_184_;
	aFloatArray9005[2] = f_185_;
	aFloatArray9005[3] = f_186_;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    void method15001() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9005, 0);
	aFloatArray9005[0] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9005, 0);
    }
    
    public void method2271(int i, int i_187_, int i_188_, int i_189_,
			   int i_190_, int i_191_, Class171 class171,
			   int i_192_, int i_193_, int i_194_, int i_195_,
			   int i_196_) {
	if (i != i_188_ || i_187_ != i_189_) {
	    Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	    Class141_Sub3_Sub1 class141_sub3_sub1
		= ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	    method15121();
	    method15019(((Class171_Sub1) class171_sub1)
			.aClass141_Sub3_Sub1_9437);
	    method15035(i_191_);
	    method15022(7681, 8448);
	    method15023(0, 34167, 768);
	    float f = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
		       / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
				  .anInt10566));
	    float f_197_
		= (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
		   / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
			      .anInt10564));
	    float f_198_ = (float) i_188_ - (float) i;
	    float f_199_ = (float) i_189_ - (float) i_187_;
	    float f_200_
		= (float) (1.0 / Math.sqrt((double) (f_198_ * f_198_
						     + f_199_ * f_199_)));
	    f_198_ *= f_200_;
	    f_199_ *= f_200_;
	    OpenGL.glColor4ub((byte) (i_190_ >> 16), (byte) (i_190_ >> 8),
			      (byte) i_190_, (byte) (i_190_ >> 24));
	    i_196_ %= i_195_ + i_194_;
	    float f_201_ = f_198_ * (float) i_194_;
	    float f_202_ = f_199_ * (float) i_194_;
	    float f_203_ = 0.0F;
	    float f_204_ = 0.0F;
	    float f_205_ = f_201_;
	    float f_206_ = f_202_;
	    if (i_196_ > i_194_) {
		f_203_ = f_198_ * (float) (i_194_ + i_195_ - i_196_);
		f_204_ = f_199_ * (float) (i_194_ + i_195_ - i_196_);
	    } else {
		f_205_ = f_198_ * (float) (i_194_ - i_196_);
		f_206_ = f_199_ * (float) (i_194_ - i_196_);
	    }
	    float f_207_ = (float) i + 0.35F + f_203_;
	    float f_208_ = (float) i_187_ + 0.35F + f_204_;
	    float f_209_ = f_198_ * (float) i_195_;
	    float f_210_ = f_199_ * (float) i_195_;
	    for (;;) {
		if (i_188_ > i) {
		    if (f_207_ > (float) i_188_ + 0.35F)
			break;
		    if (f_207_ + f_205_ > (float) i_188_)
			f_205_ = (float) i_188_ - f_207_;
		} else {
		    if (f_207_ < (float) i_188_ + 0.35F)
			break;
		    if (f_207_ + f_205_ < (float) i_188_)
			f_205_ = (float) i_188_ - f_207_;
		}
		if (i_189_ > i_187_) {
		    if (f_208_ > (float) i_189_ + 0.35F)
			break;
		    if (f_208_ + f_206_ > (float) i_189_)
			f_206_ = (float) i_189_ - f_208_;
		} else {
		    if (f_208_ < (float) i_189_ + 0.35F)
			break;
		    if (f_208_ + f_206_ < (float) i_189_)
			f_206_ = (float) i_189_ - f_208_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_207_ - (float) i_192_),
				    f_197_ * (f_208_ - (float) i_193_));
		OpenGL.glVertex2f(f_207_, f_208_);
		OpenGL.glTexCoord2f(f * (f_207_ + f_205_ - (float) i_192_),
				    f_197_ * (f_208_ + f_206_
					      - (float) i_193_));
		OpenGL.glVertex2f(f_207_ + f_205_, f_208_ + f_206_);
		OpenGL.glEnd();
		f_207_ += f_209_ + f_205_;
		f_208_ += f_210_ + f_206_;
		f_205_ = f_201_;
		f_206_ = f_202_;
	    }
	    method15023(0, 5890, 768);
	}
    }
    
    public Class135 method2289(Class102 class102, boolean bool) {
	int[] is = class102.method2729(false);
	Class135 class135
	    = method2145(is, 0, class102.method2740(), class102.method2740(),
			 class102.method2715(), 5247314);
	class135.method3344(class102.method2716(), class102.method2773(),
			    class102.method2732(), class102.method2719());
	return class135;
    }
    
    public Class163 method2160(int i, int i_211_, int[][] is, int[][] is_212_,
			       int i_213_, int i_214_, int i_215_) {
	return new Class163_Sub1(this, i_214_, i_215_, i, i_211_, is, is_212_,
				 i_213_);
    }
    
    public Class103 method2175(int i) {
	return (((Class87_Sub1) this).aBool8987
		? new Class103_Sub2_Sub1(this, i) : null);
    }
    
    void method15002() {
	OpenGL.glLightfv(16384, 4611, ((Class87_Sub1) this).aFloatArray8933,
			 0);
	OpenGL.glLightfv(16385, 4611, ((Class87_Sub1) this).aFloatArray8934,
			 0);
    }
    
    public final void method2177(Class103 class103) {
	((Class87_Sub1) this).aClass103_Sub2_8968 = (Class103_Sub2) class103;
    }
    
    final Class141_Sub4 method15003() {
	return (((Class87_Sub1) this).aClass103_Sub2_8968 != null
		? ((Class87_Sub1) this).aClass103_Sub2_8968.method15294()
		: null);
    }
    
    public int method2310(int i, int i_216_) {
	return i | i_216_;
    }
    
    public final void method2179() {
	((Class87_Sub1) this).aClass139_8939.method3463();
    }
    
    public final boolean method2174() {
	return ((Class87_Sub1) this).aClass139_8939.method3459();
    }
    
    boolean method15004() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public final void method2114(int i, int i_217_, int i_218_, int i_219_) {
	if (((Class87_Sub1) this).anInt8955 < i)
	    ((Class87_Sub1) this).anInt8955 = i;
	if (((Class87_Sub1) this).anInt8891 > i_218_)
	    ((Class87_Sub1) this).anInt8891 = i_218_;
	if (((Class87_Sub1) this).anInt8986 < i_217_)
	    ((Class87_Sub1) this).anInt8986 = i_217_;
	if (((Class87_Sub1) this).anInt8919 > i_219_)
	    ((Class87_Sub1) this).anInt8919 = i_219_;
	OpenGL.glEnable(3089);
	method14988();
    }
    
    public final boolean method2186() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public boolean method2086() {
	return true;
    }
    
    public final void method2346(int i, int i_220_, int i_221_) {
	if (((Class87_Sub1) this).anInt8989 != i
	    || ((Class87_Sub1) this).anInt8949 != i_220_
	    || ((Class87_Sub1) this).anInt8950 != i_221_) {
	    ((Class87_Sub1) this).anInt8989 = i;
	    ((Class87_Sub1) this).anInt8949 = i_220_;
	    ((Class87_Sub1) this).anInt8950 = i_221_;
	    method15129();
	    method15054();
	}
    }
    
    final Interface10 method15005(int i, byte[] is, int i_222_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, is, i_222_, bool);
	return new Class152_Sub1(this, i, is, i_222_);
    }
    
    public boolean method2096() {
	return true;
    }
    
    public void method2384(int i, Class105 class105) {
	if (!((Class87_Sub1) this).aBool8969)
	    throw new RuntimeException("");
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	if (((Class87_Sub1) this).aBool8916) {
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15812();
	}
    }
    
    public final void method2187() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
	    && ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863.method16465()) {
	    ((Class87_Sub1) this).aClass139_8939
		.method3458(((Class87_Sub1) this).aClass243_Sub47_Sub3_8863);
	    ((Class87_Sub1) this).aClass162_8860.method3741();
	}
    }
    
    public final boolean method2124() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		       .method16465());
    }
    
    final void method15006(Class140 class140, Class140 class140_223_,
			   Class140 class140_224_, Class140 class140_225_) {
	if (class140 != null) {
	    method15010(((Class140) class140).anInterface10_1684);
	    OpenGL.glVertexPointer(((Class140) class140).aByte1681,
				   ((Class140) class140).aShort1682,
				   ((Class87_Sub1) this).anInterface10_8960
				       .method26(),
				   (((Class87_Sub1) this)
					.anInterface10_8960.method52()
				    + (long) ((Class140) class140).aByte1683));
	    OpenGL.glEnableClientState(32884);
	} else
	    OpenGL.glDisableClientState(32884);
	if (class140_223_ != null) {
	    method15010(((Class140) class140_223_).anInterface10_1684);
	    OpenGL.glNormalPointer
		(((Class140) class140_223_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_223_).aByte1683));
	    OpenGL.glEnableClientState(32885);
	} else
	    OpenGL.glDisableClientState(32885);
	if (class140_224_ != null) {
	    method15010(((Class140) class140_224_).anInterface10_1684);
	    OpenGL.glColorPointer
		(((Class140) class140_224_).aByte1681,
		 ((Class140) class140_224_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_224_).aByte1683));
	    OpenGL.glEnableClientState(32886);
	} else
	    OpenGL.glDisableClientState(32886);
	if (class140_225_ != null) {
	    method15010(((Class140) class140_225_).anInterface10_1684);
	    OpenGL.glTexCoordPointer
		(((Class140) class140_225_).aByte1681,
		 ((Class140) class140_225_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_225_).aByte1683));
	    OpenGL.glEnableClientState(32888);
	} else
	    OpenGL.glDisableClientState(32888);
    }
    
    public Class169_Sub2 method2163() {
	return new Class169_Sub2_Sub2(this);
    }
    
    public Interface4 method2105(int i, int i_226_) {
	return new Class243_Sub11_Sub18(this, Class173.aClass173_2129,
					Class90.aClass90_1043, i, i_226_);
    }
    
    final void method15007() {
	OpenGL.glPushMatrix();
    }
    
    public Interface5 method2318(int i, int i_227_, Class173 class173,
				 Class90 class90, int i_228_) {
	return new Class243_Sub11_Sub18(this, class173, class90, i, i_227_,
					i_228_);
    }
    
    final Interface11 method15008(int i, byte[] is, int i_229_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub1(this, i, is, i_229_, bool);
	return new Class152_Sub2(this, i, is, i_229_);
    }
    
    final Interface10 method15009(int i, byte[] is, int i_230_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, is, i_230_, bool);
	return new Class152_Sub1(this, i, is, i_230_);
    }
    
    boolean method2138(int i, int i_231_, int i_232_, int i_233_,
		       Class350 class350, Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	return class346.method6486(i, i_231_, i_232_, i_233_, class276,
				   ((Class87_Sub1) this).aFloat8833,
				   ((Class87_Sub1) this).aFloat9003,
				   ((Class87_Sub1) this).aFloat8905,
				   ((Class87_Sub1) this).aFloat8907);
    }
    
    final void method15010(Interface10 interface10) {
	if (((Class87_Sub1) this).anInterface10_8960 != interface10) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34962, interface10.method28());
	    ((Class87_Sub1) this).anInterface10_8960 = interface10;
	}
    }
    
    final void method15011(Interface11 interface11) {
	if (((Class87_Sub1) this).anInterface11_8959 != interface11) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34963, interface11.method28());
	    ((Class87_Sub1) this).anInterface11_8959 = interface11;
	}
    }
    
    void method15012() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_234_ = 16384 + i;
	    OpenGL.glLightfv(i_234_, 4608, fs, 0);
	    OpenGL.glLightf(i_234_, 4615, 0.0F);
	    OpenGL.glLightf(i_234_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    final void method15013(int i, int i_235_) {
	((Class87_Sub1) this).anInt8872 = i;
	((Class87_Sub1) this).anInt8923 = i_235_;
	method15061();
	method14988();
    }
    
    final void method15014(Interface11 interface11, int i, int i_236_,
			   int i_237_) {
	method15011(interface11);
	OpenGL.glDrawElements(i, i_237_, 5123,
			      interface11.method61() + (long) (i_236_ * 2));
    }
    
    void method2080() {
	for (Class243 class243
		 = ((Class87_Sub1) this).aClass420_8876.method7523(-527305884);
	     class243 != null;
	     class243
		 = ((Class87_Sub1) this).aClass420_8876.method7520(-511979215))
	    ((Class243_Sub30_Sub1) class243).method16871();
	if (((Class87_Sub1) this).aClass139_8939 != null)
	    ((Class87_Sub1) this).aClass139_8939.method3457();
	if (((Class87_Sub1) this).aBool8874) {
	    Class5.method495(false, true, -1071390009);
	    ((Class87_Sub1) this).aBool8874 = false;
	}
    }
    
    final void method15015(int i) {
	aFloatArray9005[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9005[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9005[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    final Interface11 method15016(int i, byte[] is, int i_238_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub1(this, i, is, i_238_, bool);
	return new Class152_Sub2(this, i, is, i_238_);
    }
    
    public void method2260(int i, int i_239_, int i_240_, int i_241_,
			   int i_242_) {
	method14985();
	method15035(i_242_);
	float f = (float) i + 0.35F;
	float f_243_ = (float) i_239_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_241_ >> 16), (byte) (i_241_ >> 8),
			  (byte) i_241_, (byte) (i_241_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_243_);
	OpenGL.glVertex2f(f, f_243_ + (float) i_240_);
	OpenGL.glEnd();
    }
    
    public void method2234(boolean bool) {
	((Class87_Sub1) this).aBool8917 = bool;
	method15050();
    }
    
    public boolean method2216() {
	return true;
    }
    
    final void method15017() {
	if (aClass169_993 != null) {
	    int i;
	    int i_244_;
	    int i_245_;
	    int i_246_;
	    if (((Class87_Sub1) this).anInt8827 == 2) {
		i = ((Class87_Sub1) this).anInt8924;
		i_244_ = ((Class87_Sub1) this).anInt8925;
		i_245_ = ((Class87_Sub1) this).anInt8926;
		i_246_ = ((Class87_Sub1) this).anInt8927;
	    } else {
		i = 0;
		i_244_ = 0;
		i_245_ = aClass169_993.method3826();
		i_246_ = aClass169_993.method3836();
	    }
	    if (i_245_ < 1)
		i_245_ = 1;
	    if (i_246_ < 1)
		i_246_ = 1;
	    OpenGL.glViewport(((Class87_Sub1) this).anInt8872 + i,
			      (((Class87_Sub1) this).anInt8923
			       + aClass169_993.method3836() - i_244_ - i_246_),
			      i_245_, i_246_);
	    ((Class87_Sub1) this).aFloat8905
		= (float) ((Class87_Sub1) this).anInt8926 / 2.0F;
	    ((Class87_Sub1) this).aFloat8907
		= (float) ((Class87_Sub1) this).anInt8927 / 2.0F;
	    ((Class87_Sub1) this).aFloat8833
		= ((float) ((Class87_Sub1) this).anInt8924
		   + ((Class87_Sub1) this).aFloat8905);
	    ((Class87_Sub1) this).aFloat9003
		= ((float) ((Class87_Sub1) this).anInt8925
		   + ((Class87_Sub1) this).aFloat8907);
	}
    }
    
    final void method15018(int i) {
	if (((Class87_Sub1) this).anInt8995 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class87_Sub1) this).anInt8995 = i;
	}
    }
    
    final void method15019(Class141 class141) {
	Class141 class141_247_ = (((Class87_Sub1) this).aClass141Array8930
				  [((Class87_Sub1) this).anInt8995]);
	if (class141_247_ != class141) {
	    if (class141 != null) {
		if (class141_247_ != null) {
		    if (((Class141) class141).anInt1693
			!= ((Class141) class141_247_).anInt1693) {
			OpenGL.glDisable(((Class141) class141_247_).anInt1693);
			OpenGL.glEnable(((Class141) class141).anInt1693);
		    }
		} else
		    OpenGL.glEnable(((Class141) class141).anInt1693);
		OpenGL.glBindTexture(((Class141) class141).anInt1693,
				     ((Class141) class141).anInt1695);
	    } else
		OpenGL.glDisable(((Class141) class141_247_).anInt1693);
	    ((Class87_Sub1) this).aClass141Array8930[(((Class87_Sub1) this)
						      .anInt8995)]
		= class141;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x1;
    }
    
    final void method15020(int i) {
	if (i == 1)
	    method15022(7681, 7681);
	else if (i == 0)
	    method15022(8448, 8448);
	else if (i == 2)
	    method15022(34165, 7681);
	else if (i == 3)
	    method15022(260, 8448);
	else if (i == 4)
	    method15022(34023, 34023);
    }
    
    final int method15021(int i) {
	if (i == 1)
	    return 7681;
	if (i == 0)
	    return 8448;
	if (i == 2)
	    return 34165;
	if (i == 3)
	    return 260;
	if (i == 4)
	    return 34023;
	throw new IllegalArgumentException();
    }
    
    final void method15022(int i, int i_248_) {
	if (((Class87_Sub1) this).anInt8995 == 0) {
	    boolean bool = false;
	    if (((Class87_Sub1) this).anInt8954 != i) {
		OpenGL.glTexEnvi(8960, 34161, i);
		((Class87_Sub1) this).anInt8954 = i;
		bool = true;
	    }
	    if (((Class87_Sub1) this).anInt8963 != i_248_) {
		OpenGL.glTexEnvi(8960, 34162, i_248_);
		((Class87_Sub1) this).anInt8963 = i_248_;
		bool = true;
	    }
	    if (bool)
		((Class87_Sub1) this).anInt8908 &= ~0xd;
	} else {
	    OpenGL.glTexEnvi(8960, 34161, i);
	    OpenGL.glTexEnvi(8960, 34162, i_248_);
	}
    }
    
    final void method15023(int i, int i_249_, int i_250_) {
	OpenGL.glTexEnvi(8960, 34176 + i, i_249_);
	OpenGL.glTexEnvi(8960, 34192 + i, i_250_);
    }
    
    final void method15024(int i, int i_251_, int i_252_) {
	OpenGL.glTexEnvi(8960, 34184 + i, i_251_);
	OpenGL.glTexEnvi(8960, 34200 + i, i_252_);
    }
    
    final void method15025(int i) {
	aFloatArray9005[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9005[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9005[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    final void method15026(float f, float f_253_, float f_254_, float f_255_) {
	aFloatArray9005[0] = f;
	aFloatArray9005[1] = f_253_;
	aFloatArray9005[2] = f_254_;
	aFloatArray9005[3] = f_255_;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    final void method15027(float f, float f_256_, float f_257_) {
	OpenGL.glMatrixMode(5890);
	if (((Class87_Sub1) this).aBool8909)
	    OpenGL.glLoadIdentity();
	OpenGL.glTranslatef(f, f_256_, f_257_);
	OpenGL.glMatrixMode(5888);
	((Class87_Sub1) this).aBool8909 = true;
    }
    
    final void method15028() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    final void method15029() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    final void method15030(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8887) {
	    ((Class87_Sub1) this).aBool8887 = bool;
	    method15059();
	    ((Class87_Sub1) this).anInt8908 &= ~0x7;
	}
    }
    
    final void method15031(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8910) {
	    ((Class87_Sub1) this).aBool8910 = bool;
	    method15059();
	}
    }
    
    final void method15032(int i, int i_258_, int i_259_) {
	OpenGL.glDrawArrays(i, i_258_, i_259_);
    }
    
    final void method15033(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8915) {
	    if (bool)
		OpenGL.glEnable(2929);
	    else
		OpenGL.glDisable(2929);
	    ((Class87_Sub1) this).aBool8915 = bool;
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15034(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8895) {
	    ((Class87_Sub1) this).aBool8895 = bool;
	    method15050();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    public void method2407(int i, int i_260_, int i_261_, int i_262_,
			   int i_263_) {
	method14985();
	method15035(i_263_);
	float f = (float) i + 0.35F;
	float f_264_ = (float) i_260_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_262_ >> 16), (byte) (i_262_ >> 8),
			  (byte) i_262_, (byte) (i_262_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_264_);
	OpenGL.glVertex2f(f, f_264_ + (float) i_261_);
	OpenGL.glEnd();
    }
    
    final void method15035(int i) {
	if (((Class87_Sub1) this).anInt8944 != i) {
	    int i_265_;
	    boolean bool;
	    boolean bool_266_;
	    if (i == 1) {
		i_265_ = 1;
		bool = true;
		bool_266_ = true;
	    } else if (i == 2) {
		i_265_ = 2;
		bool = true;
		bool_266_ = false;
	    } else if (i == 128) {
		i_265_ = 3;
		bool = true;
		bool_266_ = true;
	    } else {
		i_265_ = 0;
		bool = true;
		bool_266_ = false;
	    }
	    if (bool != ((Class87_Sub1) this).aBool8892) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class87_Sub1) this).aBool8892 = bool;
	    }
	    if (bool_266_ != ((Class87_Sub1) this).aBool8893) {
		if (bool_266_)
		    OpenGL.glEnable(3008);
		else
		    OpenGL.glDisable(3008);
		((Class87_Sub1) this).aBool8893 = bool_266_;
	    }
	    if (i_265_ != ((Class87_Sub1) this).anInt8880) {
		if (i_265_ == 1) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(770, 771);
		} else if (i_265_ == 2) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(1, 1);
		} else if (i_265_ == 3) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(774, 1);
		} else
		    OpenGL.glDisable(3042);
		((Class87_Sub1) this).anInt8880 = i_265_;
	    }
	    ((Class87_Sub1) this).anInt8944 = i;
	    ((Class87_Sub1) this).anInt8908 &= ~0xc;
	}
    }
    
    public void method2134(int i, int i_267_, int i_268_, int i_269_,
			   int i_270_, int i_271_, Class171 class171,
			   int i_272_, int i_273_, int i_274_, int i_275_,
			   int i_276_) {
	if (i != i_268_ || i_267_ != i_269_) {
	    Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	    Class141_Sub3_Sub1 class141_sub3_sub1
		= ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	    method15121();
	    method15019(((Class171_Sub1) class171_sub1)
			.aClass141_Sub3_Sub1_9437);
	    method15035(i_271_);
	    method15022(7681, 8448);
	    method15023(0, 34167, 768);
	    float f = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
		       / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
				  .anInt10566));
	    float f_277_
		= (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
		   / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
			      .anInt10564));
	    float f_278_ = (float) i_268_ - (float) i;
	    float f_279_ = (float) i_269_ - (float) i_267_;
	    float f_280_
		= (float) (1.0 / Math.sqrt((double) (f_278_ * f_278_
						     + f_279_ * f_279_)));
	    f_278_ *= f_280_;
	    f_279_ *= f_280_;
	    OpenGL.glColor4ub((byte) (i_270_ >> 16), (byte) (i_270_ >> 8),
			      (byte) i_270_, (byte) (i_270_ >> 24));
	    i_276_ %= i_275_ + i_274_;
	    float f_281_ = f_278_ * (float) i_274_;
	    float f_282_ = f_279_ * (float) i_274_;
	    float f_283_ = 0.0F;
	    float f_284_ = 0.0F;
	    float f_285_ = f_281_;
	    float f_286_ = f_282_;
	    if (i_276_ > i_274_) {
		f_283_ = f_278_ * (float) (i_274_ + i_275_ - i_276_);
		f_284_ = f_279_ * (float) (i_274_ + i_275_ - i_276_);
	    } else {
		f_285_ = f_278_ * (float) (i_274_ - i_276_);
		f_286_ = f_279_ * (float) (i_274_ - i_276_);
	    }
	    float f_287_ = (float) i + 0.35F + f_283_;
	    float f_288_ = (float) i_267_ + 0.35F + f_284_;
	    float f_289_ = f_278_ * (float) i_275_;
	    float f_290_ = f_279_ * (float) i_275_;
	    for (;;) {
		if (i_268_ > i) {
		    if (f_287_ > (float) i_268_ + 0.35F)
			break;
		    if (f_287_ + f_285_ > (float) i_268_)
			f_285_ = (float) i_268_ - f_287_;
		} else {
		    if (f_287_ < (float) i_268_ + 0.35F)
			break;
		    if (f_287_ + f_285_ < (float) i_268_)
			f_285_ = (float) i_268_ - f_287_;
		}
		if (i_269_ > i_267_) {
		    if (f_288_ > (float) i_269_ + 0.35F)
			break;
		    if (f_288_ + f_286_ > (float) i_269_)
			f_286_ = (float) i_269_ - f_288_;
		} else {
		    if (f_288_ < (float) i_269_ + 0.35F)
			break;
		    if (f_288_ + f_286_ < (float) i_269_)
			f_286_ = (float) i_269_ - f_288_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_287_ - (float) i_272_),
				    f_277_ * (f_288_ - (float) i_273_));
		OpenGL.glVertex2f(f_287_, f_288_);
		OpenGL.glTexCoord2f(f * (f_287_ + f_285_ - (float) i_272_),
				    f_277_ * (f_288_ + f_286_
					      - (float) i_273_));
		OpenGL.glVertex2f(f_287_ + f_285_, f_288_ + f_286_);
		OpenGL.glEnd();
		f_287_ += f_289_ + f_285_;
		f_288_ += f_290_ + f_286_;
		f_285_ = f_281_;
		f_286_ = f_282_;
	    }
	    method15023(0, 5890, 768);
	}
    }
    
    public final void method2341(int i, float f, float f_291_, float f_292_,
				 float f_293_, float f_294_) {
	boolean bool = ((Class87_Sub1) this).anInt8935 != i;
	if (bool || ((Class87_Sub1) this).aFloat8940 != f
	    || ((Class87_Sub1) this).aFloat8873 != f_291_) {
	    ((Class87_Sub1) this).anInt8935 = i;
	    ((Class87_Sub1) this).aFloat8940 = f;
	    ((Class87_Sub1) this).aFloat8873 = f_291_;
	    if (bool) {
		((Class87_Sub1) this).aFloat8936
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff0000)
		       / 1.671168E7F);
		((Class87_Sub1) this).aFloat8956
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff00)
		       / 65280.0F);
		((Class87_Sub1) this).aFloat8938
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff)
		       / 255.0F);
		method14984();
	    }
	    method15001();
	}
	if (((Class87_Sub1) this).aFloatArray8931[0] != f_292_
	    || ((Class87_Sub1) this).aFloatArray8931[1] != f_293_
	    || ((Class87_Sub1) this).aFloatArray8931[2] != f_294_) {
	    ((Class87_Sub1) this).aFloatArray8931[0] = f_292_;
	    ((Class87_Sub1) this).aFloatArray8931[1] = f_293_;
	    ((Class87_Sub1) this).aFloatArray8931[2] = f_294_;
	    ((Class87_Sub1) this).aFloatArray8932[0] = -f_292_;
	    ((Class87_Sub1) this).aFloatArray8932[1] = -f_293_;
	    ((Class87_Sub1) this).aFloatArray8932[2] = -f_294_;
	    float f_295_
		= (float) (1.0 / Math.sqrt((double) (f_292_ * f_292_
						     + f_293_ * f_293_
						     + f_294_ * f_294_)));
	    ((Class87_Sub1) this).aFloatArray8933[0] = f_292_ * f_295_;
	    ((Class87_Sub1) this).aFloatArray8933[1] = f_293_ * f_295_;
	    ((Class87_Sub1) this).aFloatArray8933[2] = f_294_ * f_295_;
	    ((Class87_Sub1) this).aFloatArray8934[0]
		= -((Class87_Sub1) this).aFloatArray8933[0];
	    ((Class87_Sub1) this).aFloatArray8934[1]
		= -((Class87_Sub1) this).aFloatArray8933[1];
	    ((Class87_Sub1) this).aFloatArray8934[2]
		= -((Class87_Sub1) this).aFloatArray8933[2];
	    method15002();
	    ((Class87_Sub1) this).anInt8945 = (int) (f_292_ * 256.0F / f_293_);
	    ((Class87_Sub1) this).anInt8869 = (int) (f_294_ * 256.0F / f_293_);
	}
    }
    
    public Class103 method2218(Class103 class103, Class103 class103_296_,
			       float f, Class103 class103_297_) {
	if (class103 != null && class103_296_ != null
	    && ((Class87_Sub1) this).aBool8987
	    && ((Class87_Sub1) this).aBool8979) {
	    Class103_Sub2_Sub2 class103_sub2_sub2 = null;
	    Class103_Sub2 class103_sub2 = (Class103_Sub2) class103;
	    Class103_Sub2 class103_sub2_298_ = (Class103_Sub2) class103_296_;
	    Class141_Sub4 class141_sub4 = class103_sub2.method15294();
	    Class141_Sub4 class141_sub4_299_
		= class103_sub2_298_.method15294();
	    if (class141_sub4 != null && class141_sub4_299_ != null) {
		int i = ((((Class141_Sub4) class141_sub4).anInt10450
			  > ((Class141_Sub4) class141_sub4_299_).anInt10450)
			 ? ((Class141_Sub4) class141_sub4).anInt10450
			 : ((Class141_Sub4) class141_sub4_299_).anInt10450);
		if (class103 != class103_297_ && class103_296_ != class103_297_
		    && class103_297_ instanceof Class103_Sub2_Sub2) {
		    Class103_Sub2_Sub2 class103_sub2_sub2_300_
			= (Class103_Sub2_Sub2) class103_297_;
		    if (class103_sub2_sub2_300_.method16900() == i)
			class103_sub2_sub2 = class103_sub2_sub2_300_;
		}
		if (class103_sub2_sub2 == null)
		    class103_sub2_sub2 = new Class103_Sub2_Sub2(this, i);
		if (class103_sub2_sub2.method16902(class141_sub4,
						   class141_sub4_299_, f))
		    return class103_sub2_sub2;
	    }
	}
	return f < 0.5F ? class103 : class103_296_;
    }
    
    final synchronized void method15036(int i, int i_301_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_301_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8868.method7495(class243_sub9,
							1138525866);
    }
    
    final synchronized void method15037(int i) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i);
	((Class87_Sub1) this).aClass420_8883.method7495(class243_sub9,
							-2131774160);
    }
    
    final synchronized void method15038(int i, int i_302_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_302_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8884.method7495(class243_sub9,
							-885375631);
    }
    
    final synchronized void method15039(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8885.method7495(class243, 989777987);
    }
    
    Class87_Sub1(Canvas canvas, Class106 class106, Interface7 interface7,
		 int i) {
	super(class106, interface7);
	((Class87_Sub1) this).aClass350_8840 = new Class350();
	((Class87_Sub1) this).anInt8942 = 8;
	((Class87_Sub1) this).anInt8921 = 3;
	((Class87_Sub1) this).aBool8874 = false;
	((Class87_Sub1) this).aClass420_8876 = new Class420();
	((Class87_Sub1) this).aClass420_8988 = new Class420();
	((Class87_Sub1) this).aClass420_8881 = new Class420();
	((Class87_Sub1) this).aClass420_8868 = new Class420();
	((Class87_Sub1) this).aClass420_8883 = new Class420();
	((Class87_Sub1) this).aClass420_8884 = new Class420();
	((Class87_Sub1) this).aClass420_8885 = new Class420();
	((Class87_Sub1) this).aClass420_8886 = new Class420();
	((Class87_Sub1) this).aClass350_8896 = new Class350();
	((Class87_Sub1) this).aClass276_8897 = new Class276();
	((Class87_Sub1) this).aClass276_8898 = new Class276();
	((Class87_Sub1) this).aClass276_9000 = new Class276();
	((Class87_Sub1) this).aClass276_8990 = new Class276();
	((Class87_Sub1) this).aClass276_8882 = new Class276();
	((Class87_Sub1) this).aFloatArrayArray8902 = new float[6][4];
	((Class87_Sub1) this).aFloatArray8903 = new float[4];
	((Class87_Sub1) this).aFloat8877 = 0.0F;
	((Class87_Sub1) this).aFloat8901 = 1.0F;
	((Class87_Sub1) this).aFloat8858 = 0.0F;
	((Class87_Sub1) this).aFloat8839 = -1.0F;
	((Class87_Sub1) this).aClass350_8912 = new Class350();
	((Class87_Sub1) this).aClass276_8913 = new Class276();
	((Class87_Sub1) this).aClass276_8914 = new Class276();
	((Class87_Sub1) this).aFloatArray8817 = new float[16];
	((Class87_Sub1) this).aBool8917 = true;
	((Class87_Sub1) this).anInt8986 = 0;
	((Class87_Sub1) this).anInt8919 = 0;
	((Class87_Sub1) this).anInt8955 = 0;
	((Class87_Sub1) this).anInt8891 = 0;
	((Class87_Sub1) this).anInt8872 = 0;
	((Class87_Sub1) this).anInt8923 = 0;
	((Class87_Sub1) this).aFloatArray8931 = new float[4];
	((Class87_Sub1) this).aFloatArray8932 = new float[4];
	((Class87_Sub1) this).aFloatArray8933 = new float[4];
	((Class87_Sub1) this).aFloatArray8934 = new float[4];
	((Class87_Sub1) this).anInt8935 = -1;
	((Class87_Sub1) this).aFloat8936 = 1.0F;
	((Class87_Sub1) this).aFloat8956 = 1.0F;
	((Class87_Sub1) this).aFloat8938 = 1.0F;
	((Class87_Sub1) this).aFloat8940 = -1.0F;
	((Class87_Sub1) this).aFloat8873 = -1.0F;
	((Class87_Sub1) this).aClass243_Sub42Array8820
	    = new Class243_Sub42[anInt8957];
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8949 = -1;
	((Class87_Sub1) this).anInt8950 = 0;
	((Class87_Sub1) this).aFloat8953 = 1.0F;
	((Class87_Sub1) this).aFloat8904 = 0.0F;
	((Class87_Sub1) this).aBool8916 = false;
	((Class87_Sub1) this).anInt8954 = 8448;
	((Class87_Sub1) this).anInt8963 = 8448;
	((Class87_Sub1) this).aFloat8997 = -1.0F;
	((Class87_Sub1) this).aFloat8998 = -1.0F;
	((Class87_Sub1) this).aClass86_Sub3Array8999 = new Class86_Sub3[7];
	((Class87_Sub1) this).aClass86_Sub3Array8906 = new Class86_Sub3[7];
	((Class87_Sub1) this).aClass243_Sub10_Sub2_9007
	    = new Class243_Sub10_Sub2(8192);
	((Class87_Sub1) this).anIntArray9008 = new int[1];
	((Class87_Sub1) this).anIntArray9009 = new int[1];
	((Class87_Sub1) this).anIntArray9010 = new int[1];
	((Class87_Sub1) this).aByteArray9011 = new byte[16384];
	try {
	    ((Class87_Sub1) this).anInt8859 = i;
	    Class437.method7817(1802087840).method105("jaclib", -1139650905);
	    Class437.method7817(400749440).method105("jaggl", 1705377996);
	    ((Class87_Sub1) this).anOpenGL8928 = new OpenGL();
	    long l = ((Class87_Sub1) this).anOpenGL8928.init(canvas, 8, 8, 8,
							     24, 0,
							     ((Class87_Sub1)
							      this).anInt8859);
	    if (l == 0L)
		throw new RuntimeException("");
	    method15049();
	    int i_303_ = method14972();
	    if (i_303_ != 0)
		throw new RuntimeException("");
	    ((Class87_Sub1) this).anInt8996
		= ((Class87_Sub1) this).aBool8974 ? 33639 : 5121;
	    if (((Class87_Sub1) this).aString8971.indexOf("radeon") != -1) {
		int i_304_ = 0;
		boolean bool = false;
		boolean bool_305_ = false;
		String[] strings
		    = Class295.method5926(((Class87_Sub1) this).aString8971
					      .replace('/', ' '),
					  ' ', 1153372);
		for (int i_306_ = 0; i_306_ < strings.length; i_306_++) {
		    String string = strings[i_306_];
		    try {
			if (string.length() <= 0)
			    continue;
			if (string.charAt(0) == 'x' && string.length() >= 3
			    && Class498.method11287(string.substring(1, 3),
						    -464911664)) {
			    string = string.substring(1);
			    bool_305_ = true;
			}
			if (string.equals("hd")) {
			    bool = true;
			    continue;
			}
			if (string.startsWith("hd")) {
			    string = string.substring(2);
			    bool = true;
			}
			if (string.length() < 4
			    || !Class498.method11287(string.substring(0, 4),
						     -115110415))
			    continue;
			i_304_ = Class240.method4874(string.substring(0, 4),
						     1615407989);
		    } catch (Exception exception) {
			continue;
		    }
		    break;
		}
		if (!bool_305_ && !bool) {
		    if (i_304_ >= 7000 && i_304_ <= 7999)
			((Class87_Sub1) this).aBool8984 = false;
		    if (i_304_ >= 7000 && i_304_ <= 9250)
			((Class87_Sub1) this).aBool8875 = false;
		}
		if (!bool || i_304_ < 4000)
		    ((Class87_Sub1) this).aBool8862 = false;
		((Class87_Sub1) this).aBool8981
		    &= ((Class87_Sub1) this).anOpenGL8928
			   .method3728("GL_ARB_half_float_pixel");
		((Class87_Sub1) this).aBool8985
		    = ((Class87_Sub1) this).aBool8984;
		((Class87_Sub1) this).aBool8972 = true;
	    }
	    if (((Class87_Sub1) this).aString8815.indexOf("intel") != -1)
		((Class87_Sub1) this).aBool8979 = false;
	    ((Class87_Sub1) this).aBool8952
		= !((Class87_Sub1) this).aString8815.equals("s3 graphics");
	    if (((Class87_Sub1) this).aBool8984) {
		try {
		    int[] is = new int[1];
		    OpenGL.glGenBuffersARB(1, is, 0);
		} catch (Throwable throwable) {
		    throw new RuntimeException("");
		}
	    }
	    Class298.method5950(false, true, (byte) -15);
	    ((Class87_Sub1) this).aBool8874 = true;
	    ((Class87_Sub1) this).aClass162_8860
		= new Class162(this, anInterface7_991);
	    method15066();
	    ((Class87_Sub1) this).aClass153_8870 = new Class153(this);
	    ((Class87_Sub1) this).aClass139_8939 = new Class139(this);
	    if (((Class87_Sub1) this).aClass139_8939.method3472()) {
		((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		    = new Class243_Sub47_Sub3(this);
		if (!((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
			 .method17475()) {
		    ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
			.method16458();
		    ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 = null;
		}
		((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		    = new Class243_Sub47_Sub2(this);
		if (!((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
			 .method16865()) {
		    ((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
			.method16458();
		    ((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 = null;
		}
		((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		    = new Class243_Sub47_Sub1(this);
		if (!((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
			 .method16859()) {
		    ((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
			.method16458();
		    ((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 = null;
		}
	    }
	    method2457(canvas, new Class169_Sub1_Sub1(this, canvas, l),
		       -1875927384);
	    method2098(canvas, (byte) -90);
	    ((Class87_Sub1) this).aClass156_8965 = new Class156(this);
	    method15012();
	    method2108();
	    method15004();
	    method15065();
	} catch (Throwable throwable) {
	    throwable.printStackTrace();
	    method2240(-430873615);
	    if (throwable instanceof OutOfMemoryError)
		throw (OutOfMemoryError) throwable;
	    throw new RuntimeException("");
	}
    }
    
    final Interface10 method15040(int i, Buffer buffer, int i_307_,
				  boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, buffer, i_307_, bool);
	return new Class152_Sub1(this, i, buffer);
    }
    
    static int method15041(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 6409;
	    case 9:
		return 6406;
	    case 4:
		return 6408;
	    case 6:
		return 6410;
	    case 1:
		return 6407;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 9:
		return 32830;
	    case 0:
		return 32834;
	    case 4:
		return 32859;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 32852;
	    case 6:
		return 36219;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 7:
		return 33190;
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 34847;
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    default:
		throw new IllegalArgumentException();
	    case 4:
		return 34842;
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 1:
		return 34837;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    case 0:
		return 34840;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public void method2196(boolean bool) {
	/* empty */
    }
    
    final synchronized void method15042(int i, int i_308_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_308_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8881.method7495(class243_sub9,
							1433023305);
    }
    
    public Class174 method2322() {
	int i = -1;
	if (((Class87_Sub1) this).aString8815.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub1) this).aString8815.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class87_Sub1) this).aString8815.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, "OpenGL", ((Class87_Sub1) this).anInt8973,
			    ((Class87_Sub1) this).aString8971, 0L);
    }
    
    public Class174 method2198() {
	int i = -1;
	if (((Class87_Sub1) this).aString8815.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub1) this).aString8815.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class87_Sub1) this).aString8815.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, "OpenGL", ((Class87_Sub1) this).anInt8973,
			    ((Class87_Sub1) this).aString8971, 0L);
    }
    
    public Class174 method2220() {
	int i = -1;
	if (((Class87_Sub1) this).aString8815.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class87_Sub1) this).aString8815.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class87_Sub1) this).aString8815.indexOf("ati") != -1)
	    i = 4098;
	return new Class174(i, "OpenGL", ((Class87_Sub1) this).anInt8973,
			    ((Class87_Sub1) this).aString8971, 0L);
    }
    
    void method2146(int i, int i_309_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 56);
    }
    
    public void method2282(float f, float f_310_) {
	((Class87_Sub1) this).aFloat8877 = f;
	((Class87_Sub1) this).aFloat8901 = f_310_;
	method14983();
    }
    
    void method2202(int i, int i_311_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 119);
    }
    
    final void method15043(int i) {
	if (((Class87_Sub1) this).anInt8995 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class87_Sub1) this).anInt8995 = i;
	}
    }
    
    public void method2253(int i, int i_312_, int i_313_, int i_314_,
			   int i_315_, int i_316_) {
	float f = (float) i + 0.35F;
	float f_317_ = (float) i_312_ + 0.35F;
	float f_318_ = f + (float) i_313_;
	float f_319_ = f_317_ + (float) i_314_;
	method14985();
	method15035(i_316_);
	OpenGL.glColor4ub((byte) (i_315_ >> 16), (byte) (i_315_ >> 8),
			  (byte) i_315_, (byte) (i_315_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_317_);
	OpenGL.glVertex2f(f, f_319_);
	OpenGL.glVertex2f(f_318_, f_319_);
	OpenGL.glVertex2f(f_318_, f_317_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2127() {
	OpenGL.glFinish();
    }
    
    void method2206() {
	for (Class243 class243
		 = ((Class87_Sub1) this).aClass420_8876.method7523(-978349465);
	     class243 != null;
	     class243
		 = ((Class87_Sub1) this).aClass420_8876.method7520(1925124804))
	    ((Class243_Sub30_Sub1) class243).method16871();
	if (((Class87_Sub1) this).aClass139_8939 != null)
	    ((Class87_Sub1) this).aClass139_8939.method3457();
	if (((Class87_Sub1) this).aBool8874) {
	    Class5.method495(false, true, -323480268);
	    ((Class87_Sub1) this).aBool8874 = false;
	}
    }
    
    public final int method2371() {
	return (((Class87_Sub1) this).anInt8878
		+ ((Class87_Sub1) this).anInt8920
		+ ((Class87_Sub1) this).anInt8879);
    }
    
    public boolean method2239() {
	return true;
    }
    
    final synchronized void method15044(long l) {
	Class243 class243 = new Class243();
	class243.aLong3905 = l * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8886.method7495(class243, -507211545);
    }
    
    final Interface10 method15045(int i, byte[] is, int i_320_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, is, i_320_, bool);
	return new Class152_Sub1(this, i, is, i_320_);
    }
    
    public boolean method2094() {
	return true;
    }
    
    public boolean method2212() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& (((Class87_Sub1) this).anInt8859 <= 1
		    || ((Class87_Sub1) this).aBool8983));
    }
    
    public boolean method2213() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& (((Class87_Sub1) this).anInt8859 <= 1
		    || ((Class87_Sub1) this).aBool8983));
    }
    
    public boolean method2432() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& (((Class87_Sub1) this).anInt8859 <= 1
		    || ((Class87_Sub1) this).aBool8983));
    }
    
    public Class135 method2147(int i, int i_321_, int i_322_, int i_323_,
			       boolean bool) {
	return new Class135_Sub2(this, i, i_321_, i_322_, i_323_);
    }
    
    final void method15046(int i, boolean bool) {
	method15188(i, bool, true);
    }
    
    public boolean method2462() {
	return true;
    }
    
    public boolean method2207() {
	return true;
    }
    
    public boolean method2219() {
	return true;
    }
    
    public boolean method2076() {
	return (((Class87_Sub1) this).aBool8982
		&& (!method2124() || ((Class87_Sub1) this).aBool8983));
    }
    
    public boolean method2221() {
	return (((Class87_Sub1) this).aBool8982
		&& (!method2124() || ((Class87_Sub1) this).aBool8983));
    }
    
    public boolean method2222() {
	return false;
    }
    
    public void method2223(boolean bool) {
	/* empty */
    }
    
    final void method15047(int i, int i_324_, int i_325_) {
	OpenGL.glDrawArrays(i, i_324_, i_325_);
    }
    
    public boolean method2363() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		       .method16465());
    }
    
    public int[] method2226(int i, int i_326_, int i_327_, int i_328_) {
	if (aClass169_993 != null) {
	    int[] is = new int[i_327_ * i_328_];
	    int i_329_ = aClass169_993.method3836();
	    for (int i_330_ = 0; i_330_ < i_328_; i_330_++)
		OpenGL.glReadPixelsi(i, i_329_ - i_326_ - i_330_ - 1, i_327_,
				     1, 32993, ((Class87_Sub1) this).anInt8996,
				     is, i_330_ * i_327_);
	    return is;
	}
	return null;
    }
    
    public void method2227() {
	if (((Class87_Sub1) this).aBool8952 && aClass169_993 != null) {
	    int i = ((Class87_Sub1) this).anInt8955;
	    int i_331_ = ((Class87_Sub1) this).anInt8891;
	    int i_332_ = ((Class87_Sub1) this).anInt8986;
	    int i_333_ = ((Class87_Sub1) this).anInt8919;
	    method2112();
	    int i_334_ = ((Class87_Sub1) this).anInt8924;
	    int i_335_ = ((Class87_Sub1) this).anInt8925;
	    int i_336_ = ((Class87_Sub1) this).anInt8926;
	    int i_337_ = ((Class87_Sub1) this).anInt8927;
	    method2331();
	    OpenGL.glReadBuffer(1028);
	    OpenGL.glDrawBuffer(1029);
	    method14993();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    method15035(0);
	    OpenGL.glMatrixMode(5889);
	    OpenGL.glLoadIdentity();
	    OpenGL.glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
	    OpenGL.glMatrixMode(5888);
	    OpenGL.glLoadIdentity();
	    OpenGL.glRasterPos2i(0, 0);
	    OpenGL.glCopyPixels(0, 0, aClass169_993.method3826(),
				aClass169_993.method3836(), 6144);
	    OpenGL.glFlush();
	    OpenGL.glReadBuffer(1029);
	    OpenGL.glDrawBuffer(1029);
	    method2113(i, i_332_, i_331_, i_333_);
	    method2110(i_334_, i_335_, i_336_, i_337_);
	}
    }
    
    public void method2107(boolean bool) {
	((Class87_Sub1) this).aBool8917 = bool;
	method15050();
    }
    
    public void method2434(boolean bool) {
	((Class87_Sub1) this).aBool8917 = bool;
	method15050();
    }
    
    final void method15048(int i, int i_338_, int i_339_) {
	OpenGL.glDrawArrays(i, i_338_, i_339_);
    }
    
    void method15049() {
	int i = 0;
	while (!((Class87_Sub1) this).anOpenGL8928.method3729()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class43.method1220(1000L);
	}
    }
    
    public void method2236() {
	((Class87_Sub1) this).anInt8924 = 0;
	((Class87_Sub1) this).anInt8925 = 0;
	((Class87_Sub1) this).anInt8926 = aClass169_993.method3826();
	((Class87_Sub1) this).anInt8927 = aClass169_993.method3836();
	method15061();
    }
    
    public void method2100(int i, int i_340_, int i_341_, int i_342_) {
	((Class87_Sub1) this).anInt8924 = i;
	((Class87_Sub1) this).anInt8925 = i_340_;
	((Class87_Sub1) this).anInt8926 = i_341_;
	((Class87_Sub1) this).anInt8927 = i_342_;
	method15061();
    }
    
    public void method2238(float f, float f_343_) {
	((Class87_Sub1) this).aFloat8877 = f;
	((Class87_Sub1) this).aFloat8901 = f_343_;
	method14983();
    }
    
    public void method2408(float f, float f_344_) {
	((Class87_Sub1) this).aFloat8877 = f;
	((Class87_Sub1) this).aFloat8901 = f_344_;
	method14983();
    }
    
    public void method2337(float f, float f_345_) {
	((Class87_Sub1) this).aFloat8877 = f;
	((Class87_Sub1) this).aFloat8901 = f_345_;
	method14983();
    }
    
    public final void method2229() {
	if (aClass169_993 != null) {
	    ((Class87_Sub1) this).anInt8955 = 0;
	    ((Class87_Sub1) this).anInt8986 = 0;
	    ((Class87_Sub1) this).anInt8891 = aClass169_993.method3826();
	    ((Class87_Sub1) this).anInt8919 = aClass169_993.method3836();
	    OpenGL.glDisable(3089);
	}
    }
    
    public int method2308(int i, int i_346_) {
	return i & i_346_ ^ i_346_;
    }
    
    public void method2173(Class104 class104) {
	((Class87_Sub1) this).aClass154_8866.method3670(this, class104);
    }
    
    public final void method2354(int[] is) {
	is[0] = ((Class87_Sub1) this).anInt8955;
	is[1] = ((Class87_Sub1) this).anInt8986;
	is[2] = ((Class87_Sub1) this).anInt8891;
	is[3] = ((Class87_Sub1) this).anInt8919;
    }
    
    final void method15050() {
	OpenGL.glDepthMask(((Class87_Sub1) this).aBool8895
			   && ((Class87_Sub1) this).aBool8917);
    }
    
    public final void method2391(int[] is) {
	is[0] = ((Class87_Sub1) this).anInt8955;
	is[1] = ((Class87_Sub1) this).anInt8986;
	is[2] = ((Class87_Sub1) this).anInt8891;
	is[3] = ((Class87_Sub1) this).anInt8919;
    }
    
    public final void method2247(int[] is) {
	is[0] = ((Class87_Sub1) this).anInt8955;
	is[1] = ((Class87_Sub1) this).anInt8986;
	is[2] = ((Class87_Sub1) this).anInt8891;
	is[3] = ((Class87_Sub1) this).anInt8919;
    }
    
    final void method2190(float f, float f_347_, float f_348_, float f_349_,
			  float f_350_, float f_351_) {
	Class243_Sub47_Sub3.aFloat10973 = f;
	Class243_Sub47_Sub3.aFloat10963 = f_347_;
	Class243_Sub47_Sub3.aFloat10962 = f_348_;
    }
    
    public void method2249(int i, int i_352_) {
	int i_353_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_352_ & 0xff0000) / 1.671168E7F,
				(float) (i_352_ & 0xff00) / 65280.0F,
				(float) (i_352_ & 0xff) / 255.0F,
				(float) (i_352_ >>> 24) / 255.0F);
	    i_353_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15034(true);
	    i_353_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_353_ |= 0x400;
	OpenGL.glClear(i_353_);
    }
    
    final void method15051(Interface11 interface11) {
	if (((Class87_Sub1) this).anInterface11_8959 != interface11) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34963, interface11.method28());
	    ((Class87_Sub1) this).anInterface11_8959 = interface11;
	}
    }
    
    public void method2479(int i, int i_354_) {
	int i_355_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_354_ & 0xff0000) / 1.671168E7F,
				(float) (i_354_ & 0xff00) / 65280.0F,
				(float) (i_354_ & 0xff) / 255.0F,
				(float) (i_354_ >>> 24) / 255.0F);
	    i_355_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15034(true);
	    i_355_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_355_ |= 0x400;
	OpenGL.glClear(i_355_);
    }
    
    public void method2425(int i, int i_356_, int i_357_, int i_358_,
			   int i_359_, int i_360_) {
	float f = (float) i + 0.35F;
	float f_361_ = (float) i_356_ + 0.35F;
	float f_362_ = f + (float) i_357_;
	float f_363_ = f_361_ + (float) i_358_;
	method14985();
	method15035(i_360_);
	OpenGL.glColor4ub((byte) (i_359_ >> 16), (byte) (i_359_ >> 8),
			  (byte) i_359_, (byte) (i_359_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_361_);
	OpenGL.glVertex2f(f, f_363_);
	OpenGL.glVertex2f(f_362_, f_363_);
	OpenGL.glVertex2f(f_362_, f_361_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2250(int i, int i_364_) {
	int i_365_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_364_ & 0xff0000) / 1.671168E7F,
				(float) (i_364_ & 0xff00) / 65280.0F,
				(float) (i_364_ & 0xff) / 255.0F,
				(float) (i_364_ >>> 24) / 255.0F);
	    i_365_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15034(true);
	    i_365_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_365_ |= 0x400;
	OpenGL.glClear(i_365_);
    }
    
    public void method2171(int i, int i_366_, int i_367_, int i_368_,
			   int i_369_, int i_370_, byte[] is, int i_371_,
			   int i_372_) {
	float f;
	float f_373_;
	if (((Class87_Sub1) this).aClass141_Sub3_Sub1_8890 == null
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10440
		< i_367_)
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10441
		< i_368_)) {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890
		= Class141_Sub3_Sub1.method16929(this, Class173.aClass173_2127,
						 Class90.aClass90_1040, i_367_,
						 i_368_, false, is,
						 Class173.aClass173_2127);
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16841(false,
								       false);
	    f = ((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562;
	    f_373_
		= ((Class141_Sub3_Sub1)
		   ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565;
	} else {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16829
		(0, 0, i_367_, i_368_, is, Class173.aClass173_2127, 0, 0,
		 false);
	    f = (((Class141_Sub3_Sub1)
		  ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562
		 * (float) i_368_
		 / (float) (((Class141_Sub3_Sub1)
			     ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			    .anInt10441));
	    f_373_
		= (((Class141_Sub3_Sub1)
		    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565
		   * (float) i_367_
		   / (float) (((Class141_Sub3_Sub1)
			       ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			      .anInt10440));
	}
	method15121();
	method15019(((Class87_Sub1) this).aClass141_Sub3_Sub1_8890);
	method15035(i_372_);
	OpenGL.glColor4ub((byte) (i_369_ >> 16), (byte) (i_369_ >> 8),
			  (byte) i_369_, (byte) (i_369_ >> 24));
	method15025(i_370_);
	method15022(34165, 34165);
	method15023(0, 34166, 768);
	method15023(2, 5890, 770);
	method15024(0, 34166, 770);
	method15024(2, 5890, 770);
	float f_374_ = (float) i;
	float f_375_ = (float) i_366_;
	float f_376_ = f_374_ + (float) i_367_;
	float f_377_ = f_375_ + (float) i_368_;
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(0.0F, 0.0F);
	OpenGL.glVertex2f(f_374_, f_375_);
	OpenGL.glTexCoord2f(0.0F, f_373_);
	OpenGL.glVertex2f(f_374_, f_377_);
	OpenGL.glTexCoord2f(f, f_373_);
	OpenGL.glVertex2f(f_376_, f_377_);
	OpenGL.glTexCoord2f(f, 0.0F);
	OpenGL.glVertex2f(f_376_, f_375_);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
	method15023(2, 34166, 770);
	method15024(0, 5890, 770);
	method15024(2, 34166, 770);
    }
    
    public void method2141(int i, int i_378_, int i_379_, int i_380_,
			   int i_381_, int i_382_, byte[] is, int i_383_,
			   int i_384_) {
	float f;
	float f_385_;
	if (((Class87_Sub1) this).aClass141_Sub3_Sub1_8890 == null
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10440
		< i_379_)
	    || (((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).anInt10441
		< i_380_)) {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890
		= Class141_Sub3_Sub1.method16929(this, Class173.aClass173_2127,
						 Class90.aClass90_1040, i_379_,
						 i_380_, false, is,
						 Class173.aClass173_2127);
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16841(false,
								       false);
	    f = ((Class141_Sub3_Sub1)
		 ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562;
	    f_385_
		= ((Class141_Sub3_Sub1)
		   ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565;
	} else {
	    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890.method16829
		(0, 0, i_379_, i_380_, is, Class173.aClass173_2127, 0, 0,
		 false);
	    f = (((Class141_Sub3_Sub1)
		  ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10562
		 * (float) i_380_
		 / (float) (((Class141_Sub3_Sub1)
			     ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			    .anInt10441));
	    f_385_
		= (((Class141_Sub3_Sub1)
		    ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890).aFloat10565
		   * (float) i_379_
		   / (float) (((Class141_Sub3_Sub1)
			       ((Class87_Sub1) this).aClass141_Sub3_Sub1_8890)
			      .anInt10440));
	}
	method15121();
	method15019(((Class87_Sub1) this).aClass141_Sub3_Sub1_8890);
	method15035(i_384_);
	OpenGL.glColor4ub((byte) (i_381_ >> 16), (byte) (i_381_ >> 8),
			  (byte) i_381_, (byte) (i_381_ >> 24));
	method15025(i_382_);
	method15022(34165, 34165);
	method15023(0, 34166, 768);
	method15023(2, 5890, 770);
	method15024(0, 34166, 770);
	method15024(2, 5890, 770);
	float f_386_ = (float) i;
	float f_387_ = (float) i_378_;
	float f_388_ = f_386_ + (float) i_379_;
	float f_389_ = f_387_ + (float) i_380_;
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(0.0F, 0.0F);
	OpenGL.glVertex2f(f_386_, f_387_);
	OpenGL.glTexCoord2f(0.0F, f_385_);
	OpenGL.glVertex2f(f_386_, f_389_);
	OpenGL.glTexCoord2f(f, f_385_);
	OpenGL.glVertex2f(f_388_, f_389_);
	OpenGL.glTexCoord2f(f, 0.0F);
	OpenGL.glVertex2f(f_388_, f_387_);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
	method15023(2, 34166, 770);
	method15024(0, 5890, 770);
	method15024(2, 34166, 770);
    }
    
    void method15052() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_390_ = 16384 + i;
	    OpenGL.glLightfv(i_390_, 4608, fs, 0);
	    OpenGL.glLightf(i_390_, 4615, 0.0F);
	    OpenGL.glLightf(i_390_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    void method2477(int i, int i_391_, int i_392_, int i_393_, int i_394_) {
	if (i_392_ < 0)
	    i_392_ = -i_392_;
	if (i + i_392_ >= ((Class87_Sub1) this).anInt8955
	    && i - i_392_ <= ((Class87_Sub1) this).anInt8891
	    && i_391_ + i_392_ >= ((Class87_Sub1) this).anInt8986
	    && i_391_ - i_392_ <= ((Class87_Sub1) this).anInt8919) {
	    method14985();
	    method15035(i_394_);
	    OpenGL.glColor4ub((byte) (i_393_ >> 16), (byte) (i_393_ >> 8),
			      (byte) i_393_, (byte) (i_393_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_395_ = (float) i_391_ + 0.35F;
	    int i_396_ = i_392_ << 1;
	    if ((float) i_396_ < ((Class87_Sub1) this).aFloat8998) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_395_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_395_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_395_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_395_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_396_ <= ((Class87_Sub1) this).aFloat8997) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_396_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_395_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_395_);
		int i_397_ = 262144 / (6 * i_392_);
		if (i_397_ <= 64)
		    i_397_ = 64;
		else if (i_397_ > 512)
		    i_397_ = 512;
		i_397_ = Class578.method12730(i_397_, 2087668775);
		OpenGL.glVertex2f(f + (float) i_392_, f_395_);
		for (int i_398_ = 16384 - i_397_; i_398_ > 0; i_398_ -= i_397_)
		    OpenGL.glVertex2f(f + (Class137.aFloatArray1647[i_398_]
					   * (float) i_392_),
				      f_395_ + (Class137.aFloatArray1646
						[i_398_]) * (float) i_392_);
		OpenGL.glVertex2f(f + (float) i_392_, f_395_);
		OpenGL.glEnd();
	    }
	}
    }
    
    public void method2258(int i, int i_399_, int i_400_, int i_401_,
			   int i_402_) {
	method14985();
	method15035(i_402_);
	float f = (float) i + 0.35F;
	float f_403_ = (float) i_399_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_401_ >> 16), (byte) (i_401_ >> 8),
			  (byte) i_401_, (byte) (i_401_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_403_);
	OpenGL.glVertex2f(f + (float) i_400_, f_403_);
	OpenGL.glEnd();
    }
    
    public void method2442(int i, int i_404_, int i_405_, int i_406_,
			   int i_407_) {
	method14985();
	method15035(i_407_);
	float f = (float) i + 0.35F;
	float f_408_ = (float) i_404_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_406_ >> 16), (byte) (i_406_ >> 8),
			  (byte) i_406_, (byte) (i_406_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_408_);
	OpenGL.glVertex2f(f + (float) i_405_, f_408_);
	OpenGL.glEnd();
    }
    
    public void method2125(int i, int i_409_, int i_410_, int i_411_,
			   int i_412_, int i_413_) {
	float f = (float) i + 0.35F;
	float f_414_ = (float) i_409_ + 0.35F;
	float f_415_ = f + (float) i_410_;
	float f_416_ = f_414_ + (float) i_411_;
	method14985();
	method15035(i_413_);
	OpenGL.glColor4ub((byte) (i_412_ >> 16), (byte) (i_412_ >> 8),
			  (byte) i_412_, (byte) (i_412_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_414_);
	OpenGL.glVertex2f(f, f_416_);
	OpenGL.glVertex2f(f_415_, f_416_);
	OpenGL.glVertex2f(f_415_, f_414_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2268(int i, int i_417_, int i_418_, int i_419_,
			   int i_420_, int i_421_, Class171 class171,
			   int i_422_, int i_423_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(i_421_);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_424_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	float f_425_ = (float) i_418_ - (float) i;
	float f_426_ = (float) i_419_ - (float) i_417_;
	float f_427_ = (float) (1.0 / Math.sqrt((double) (f_425_ * f_425_
							  + f_426_ * f_426_)));
	f_425_ *= f_427_;
	f_426_ *= f_427_;
	OpenGL.glColor4ub((byte) (i_420_ >> 16), (byte) (i_420_ >> 8),
			  (byte) i_420_, (byte) (i_420_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_422_),
			    f_424_ * (float) (i_417_ - i_423_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_417_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_418_ - i_422_),
			    f_424_ * (float) (i_419_ - i_423_));
	OpenGL.glVertex2f((float) i_418_ + f_425_ + 0.35F,
			  (float) i_419_ + f_426_ + 0.35F);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    final void method15053() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    public void method2392(float f, float f_428_, float f_429_, float[] fs) {
	float f_430_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * f_428_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * f_429_));
	float f_431_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_428_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_429_));
	if (f_430_ < -f_431_ || f_430_ > f_431_) {
	    float[] fs_432_ = fs;
	    float[] fs_433_ = fs;
	    fs[2] = Float.NaN;
	    fs_433_[1] = Float.NaN;
	    fs_432_[0] = Float.NaN;
	} else {
	    float f_434_
		= (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		      * f)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		      * f_428_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		      * f_429_));
	    if (f_434_ < -f_431_ || f_434_ > f_431_) {
		float[] fs_435_ = fs;
		float[] fs_436_ = fs;
		fs[2] = Float.NaN;
		fs_436_[1] = Float.NaN;
		fs_435_[0] = Float.NaN;
	    } else {
		float f_437_
		    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [1]) * f
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [5]) * f_428_
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [9]) * f_429_);
		if (f_437_ < -f_431_ || f_437_ > f_431_) {
		    float[] fs_438_ = fs;
		    float[] fs_439_ = fs;
		    fs[2] = Float.NaN;
		    fs_439_[1] = Float.NaN;
		    fs_438_[0] = Float.NaN;
		} else {
		    float f_440_ = ((((Class87_Sub1) this).aClass276_8897
				     .aFloatArray4141[14])
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[2]) * f
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[6]) * f_428_
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[10]) * f_429_);
		    fs[0] = (((Class87_Sub1) this).aFloat8833
			     + (((Class87_Sub1) this).aFloat8905 * f_434_
				/ f_431_));
		    fs[1] = (((Class87_Sub1) this).aFloat9003
			     + (((Class87_Sub1) this).aFloat8907 * f_437_
				/ f_431_));
		    fs[2] = f_440_;
		}
	    }
	}
    }
    
    public void method2291(int i, int i_441_, int i_442_, int i_443_,
			   int i_444_, int i_445_) {
	method14985();
	method15035(i_445_);
	float f = (float) i_442_ - (float) i;
	float f_446_ = (float) i_443_ - (float) i_441_;
	if (f == 0.0F && f_446_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_447_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_446_ * f_446_)));
	    f *= f_447_;
	    f_446_ *= f_447_;
	}
	OpenGL.glColor4ub((byte) (i_444_ >> 16), (byte) (i_444_ >> 8),
			  (byte) i_444_, (byte) (i_444_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_441_ + 0.35F);
	OpenGL.glVertex2f((float) i_442_ + f + 0.35F,
			  (float) i_443_ + f_446_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public void method2194(float f, float f_448_, float f_449_, float[] fs) {
	float f_450_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * f_448_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * f_449_));
	float f_451_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_448_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_449_));
	if (f_450_ < -f_451_ || f_450_ > f_451_) {
	    float[] fs_452_ = fs;
	    float[] fs_453_ = fs;
	    fs[2] = Float.NaN;
	    fs_453_[1] = Float.NaN;
	    fs_452_[0] = Float.NaN;
	} else {
	    float f_454_
		= (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		      * f)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		      * f_448_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		      * f_449_));
	    if (f_454_ < -f_451_ || f_454_ > f_451_) {
		float[] fs_455_ = fs;
		float[] fs_456_ = fs;
		fs[2] = Float.NaN;
		fs_456_[1] = Float.NaN;
		fs_455_[0] = Float.NaN;
	    } else {
		float f_457_
		    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [1]) * f
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [5]) * f_448_
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [9]) * f_449_);
		if (f_457_ < -f_451_ || f_457_ > f_451_) {
		    float[] fs_458_ = fs;
		    float[] fs_459_ = fs;
		    fs[2] = Float.NaN;
		    fs_459_[1] = Float.NaN;
		    fs_458_[0] = Float.NaN;
		} else {
		    float f_460_ = ((((Class87_Sub1) this).aClass276_8897
				     .aFloatArray4141[14])
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[2]) * f
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[6]) * f_448_
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[10]) * f_449_);
		    fs[0] = (((Class87_Sub1) this).aFloat8833
			     + (((Class87_Sub1) this).aFloat8905 * f_454_
				/ f_451_));
		    fs[1] = (((Class87_Sub1) this).aFloat9003
			     + (((Class87_Sub1) this).aFloat8907 * f_457_
				/ f_451_));
		    fs[2] = f_460_;
		}
	    }
	}
    }
    
    public final void method2443(int i, int i_461_, int i_462_, int i_463_) {
	if (((Class87_Sub1) this).anInt8955 < i)
	    ((Class87_Sub1) this).anInt8955 = i;
	if (((Class87_Sub1) this).anInt8891 > i_462_)
	    ((Class87_Sub1) this).anInt8891 = i_462_;
	if (((Class87_Sub1) this).anInt8986 < i_461_)
	    ((Class87_Sub1) this).anInt8986 = i_461_;
	if (((Class87_Sub1) this).anInt8919 > i_463_)
	    ((Class87_Sub1) this).anInt8919 = i_463_;
	OpenGL.glEnable(3089);
	method14988();
    }
    
    void method15054() {
	if (((Class87_Sub1) this).aBool8947
	    && ((Class87_Sub1) this).anInt8949 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    final void method2413(float f, float f_464_, float f_465_, float f_466_,
			  float f_467_, float f_468_) {
	Class243_Sub47_Sub3.aFloat10973 = f;
	Class243_Sub47_Sub3.aFloat10963 = f_464_;
	Class243_Sub47_Sub3.aFloat10962 = f_465_;
    }
    
    final void method15055(Class276 class276) {
	OpenGL.glLoadMatrixf(class276.aFloatArray4141, 0);
    }
    
    final void method15056() {
	OpenGL.glPushMatrix();
    }
    
    public void method2270(int i, int i_469_, int i_470_, int i_471_,
			   int i_472_, int i_473_, Class171 class171,
			   int i_474_, int i_475_, int i_476_, int i_477_,
			   int i_478_) {
	if (i != i_470_ || i_469_ != i_471_) {
	    Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	    Class141_Sub3_Sub1 class141_sub3_sub1
		= ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	    method15121();
	    method15019(((Class171_Sub1) class171_sub1)
			.aClass141_Sub3_Sub1_9437);
	    method15035(i_473_);
	    method15022(7681, 8448);
	    method15023(0, 34167, 768);
	    float f = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
		       / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
				  .anInt10566));
	    float f_479_
		= (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
		   / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
			      .anInt10564));
	    float f_480_ = (float) i_470_ - (float) i;
	    float f_481_ = (float) i_471_ - (float) i_469_;
	    float f_482_
		= (float) (1.0 / Math.sqrt((double) (f_480_ * f_480_
						     + f_481_ * f_481_)));
	    f_480_ *= f_482_;
	    f_481_ *= f_482_;
	    OpenGL.glColor4ub((byte) (i_472_ >> 16), (byte) (i_472_ >> 8),
			      (byte) i_472_, (byte) (i_472_ >> 24));
	    i_478_ %= i_477_ + i_476_;
	    float f_483_ = f_480_ * (float) i_476_;
	    float f_484_ = f_481_ * (float) i_476_;
	    float f_485_ = 0.0F;
	    float f_486_ = 0.0F;
	    float f_487_ = f_483_;
	    float f_488_ = f_484_;
	    if (i_478_ > i_476_) {
		f_485_ = f_480_ * (float) (i_476_ + i_477_ - i_478_);
		f_486_ = f_481_ * (float) (i_476_ + i_477_ - i_478_);
	    } else {
		f_487_ = f_480_ * (float) (i_476_ - i_478_);
		f_488_ = f_481_ * (float) (i_476_ - i_478_);
	    }
	    float f_489_ = (float) i + 0.35F + f_485_;
	    float f_490_ = (float) i_469_ + 0.35F + f_486_;
	    float f_491_ = f_480_ * (float) i_477_;
	    float f_492_ = f_481_ * (float) i_477_;
	    for (;;) {
		if (i_470_ > i) {
		    if (f_489_ > (float) i_470_ + 0.35F)
			break;
		    if (f_489_ + f_487_ > (float) i_470_)
			f_487_ = (float) i_470_ - f_489_;
		} else {
		    if (f_489_ < (float) i_470_ + 0.35F)
			break;
		    if (f_489_ + f_487_ < (float) i_470_)
			f_487_ = (float) i_470_ - f_489_;
		}
		if (i_471_ > i_469_) {
		    if (f_490_ > (float) i_471_ + 0.35F)
			break;
		    if (f_490_ + f_488_ > (float) i_471_)
			f_488_ = (float) i_471_ - f_490_;
		} else {
		    if (f_490_ < (float) i_471_ + 0.35F)
			break;
		    if (f_490_ + f_488_ < (float) i_471_)
			f_488_ = (float) i_471_ - f_490_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_489_ - (float) i_474_),
				    f_479_ * (f_490_ - (float) i_475_));
		OpenGL.glVertex2f(f_489_, f_490_);
		OpenGL.glTexCoord2f(f * (f_489_ + f_487_ - (float) i_474_),
				    f_479_ * (f_490_ + f_488_
					      - (float) i_475_));
		OpenGL.glVertex2f(f_489_ + f_487_, f_490_ + f_488_);
		OpenGL.glEnd();
		f_489_ += f_491_ + f_487_;
		f_490_ += f_492_ + f_488_;
		f_487_ = f_483_;
		f_488_ = f_484_;
	    }
	    method15023(0, 5890, 768);
	}
    }
    
    boolean method15057() {
	return ((Class87_Sub1) this).aClass156_8965.method3691(3);
    }
    
    public void method2273(int i, int i_493_, int i_494_, int i_495_,
			   int i_496_, int i_497_, int i_498_) {
	OpenGL.glLineWidth((float) i_497_);
	method2131(i, i_493_, i_494_, i_495_, i_496_, i_498_);
	OpenGL.glLineWidth(1.0F);
    }
    
    public void method2254(int i, Class105 class105) {
	if (!((Class87_Sub1) this).aBool8969)
	    throw new RuntimeException("");
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	if (((Class87_Sub1) this).aBool8916) {
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15812();
	}
    }
    
    public int method2470(int i, int i_499_, int i_500_, int i_501_,
			  int i_502_, int i_503_) {
	int i_504_ = 0;
	float f = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		      * (float) i)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		      * (float) i_499_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		      * (float) i_500_));
	float f_505_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2]
		  * (float) i_501_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * (float) i_502_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * (float) i_503_));
	float f_506_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_499_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_500_));
	float f_507_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3]
		  * (float) i_501_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * (float) i_502_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * (float) i_503_));
	if (f < -f_506_ && f_505_ < -f_507_)
	    i_504_ |= 0x10;
	else if (f > f_506_ && f_505_ > f_507_)
	    i_504_ |= 0x20;
	float f_508_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_499_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_500_));
	float f_509_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		  * (float) i_501_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * (float) i_502_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * (float) i_503_));
	if (f_508_ < -f_506_ && f_509_ < -f_507_)
	    i_504_ |= 0x1;
	if (f_508_ > f_506_ && f_509_ > f_507_)
	    i_504_ |= 0x2;
	float f_510_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_499_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_500_));
	float f_511_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1]
		  * (float) i_501_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * (float) i_502_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * (float) i_503_));
	if (f_510_ < -f_506_ && f_511_ < -f_507_)
	    i_504_ |= 0x4;
	if (f_510_ > f_506_ && f_511_ > f_507_)
	    i_504_ |= 0x8;
	return i_504_;
    }
    
    boolean method2276(int i, int i_512_, int i_513_, int i_514_,
		       Class350 class350, Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	return class346.method6486(i, i_512_, i_513_, i_514_, class276,
				   ((Class87_Sub1) this).aFloat8833,
				   ((Class87_Sub1) this).aFloat9003,
				   ((Class87_Sub1) this).aFloat8905,
				   ((Class87_Sub1) this).aFloat8907);
    }
    
    public void method2399(int i, Class105 class105) {
	if (!((Class87_Sub1) this).aBool8969)
	    throw new RuntimeException("");
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	if (((Class87_Sub1) this).aBool8916) {
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15812();
	}
    }
    
    public void method2278(Class350 class350, Class97 class97,
			   Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	class97.method2544(class346, ((Class87_Sub1) this).aClass276_9000,
			   class276, ((Class87_Sub1) this).aFloat8833,
			   ((Class87_Sub1) this).aFloat9003,
			   ((Class87_Sub1) this).aFloat8905,
			   ((Class87_Sub1) this).aFloat8907);
    }
    
    public void method2235() {
	((Class87_Sub1) this).anInt8924 = 0;
	((Class87_Sub1) this).anInt8925 = 0;
	((Class87_Sub1) this).anInt8926 = aClass169_993.method3826();
	((Class87_Sub1) this).anInt8927 = aClass169_993.method3836();
	method15061();
    }
    
    void method15058() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_515_ = 16384 + i;
	    OpenGL.glLightfv(i_515_, 4608, fs, 0);
	    OpenGL.glLightf(i_515_, 4615, 0.0F);
	    OpenGL.glLightf(i_515_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    public Class243_Sub30 method2480(int i) {
	Class243_Sub30_Sub1 class243_sub30_sub1 = new Class243_Sub30_Sub1(i);
	((Class87_Sub1) this).aClass420_8876.method7495(class243_sub30_sub1,
							508297194);
	return class243_sub30_sub1;
    }
    
    void method15059() {
	if (((Class87_Sub1) this).aBool8887
	    && !((Class87_Sub1) this).aBool8910)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    public void method2283(Class243_Sub30 class243_sub30) {
	((Class87_Sub1) this).aNativeHeap8918
	    = (((Class243_Sub30_Sub1) (Class243_Sub30_Sub1) class243_sub30)
	       .aNativeHeap10520);
	if (((Class87_Sub1) this).anInterface10_9004 == null) {
	    Class243_Sub10_Sub2 class243_sub10_sub2
		= new Class243_Sub10_Sub2(80);
	    if (((Class87_Sub1) this).aBool8974) {
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
	    } else {
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
	    }
	    ((Class87_Sub1) this).anInterface10_9004
		= method15009(20, class243_sub10_sub2.aByteArray8691,
			      class243_sub10_sub2.anInt8688 * 126215893,
			      false);
	    ((Class87_Sub1) this).aClass140_9002
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       3, 0);
	    ((Class87_Sub1) this).aClass140_8849
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       2, 12);
	    ((Class87_Sub1) this).aClass154_8866.method3676(this);
	}
    }
    
    public Class135 method2248(int i, int i_516_, boolean bool,
			       boolean bool_517_) {
	return new Class135_Sub2(this, i, i_516_, bool);
    }
    
    public Class135 method2357(int i, int i_518_, boolean bool,
			       boolean bool_519_) {
	return new Class135_Sub2(this, i, i_518_, bool);
    }
    
    static int method15060(Class173 class173) {
	switch (class173.anInt2137 * -598663847) {
	case 6:
	    return 6410;
	case 0:
	    return 6409;
	case 7:
	    return 6402;
	case 4:
	    return 6408;
	case 9:
	    return 6406;
	default:
	    throw new IllegalStateException();
	case 1:
	    return 6407;
	}
    }
    
    final void method15061() {
	if (aClass169_993 != null) {
	    int i;
	    int i_520_;
	    int i_521_;
	    int i_522_;
	    if (((Class87_Sub1) this).anInt8827 == 2) {
		i = ((Class87_Sub1) this).anInt8924;
		i_520_ = ((Class87_Sub1) this).anInt8925;
		i_521_ = ((Class87_Sub1) this).anInt8926;
		i_522_ = ((Class87_Sub1) this).anInt8927;
	    } else {
		i = 0;
		i_520_ = 0;
		i_521_ = aClass169_993.method3826();
		i_522_ = aClass169_993.method3836();
	    }
	    if (i_521_ < 1)
		i_521_ = 1;
	    if (i_522_ < 1)
		i_522_ = 1;
	    OpenGL.glViewport(((Class87_Sub1) this).anInt8872 + i,
			      (((Class87_Sub1) this).anInt8923
			       + aClass169_993.method3836() - i_520_ - i_522_),
			      i_521_, i_522_);
	    ((Class87_Sub1) this).aFloat8905
		= (float) ((Class87_Sub1) this).anInt8926 / 2.0F;
	    ((Class87_Sub1) this).aFloat8907
		= (float) ((Class87_Sub1) this).anInt8927 / 2.0F;
	    ((Class87_Sub1) this).aFloat8833
		= ((float) ((Class87_Sub1) this).anInt8924
		   + ((Class87_Sub1) this).aFloat8905);
	    ((Class87_Sub1) this).aFloat9003
		= ((float) ((Class87_Sub1) this).anInt8925
		   + ((Class87_Sub1) this).aFloat8907);
	}
    }
    
    public boolean method2373() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& (((Class87_Sub1) this).anInt8859 <= 1
		    || ((Class87_Sub1) this).aBool8983));
    }
    
    void method15062() {
	int i = aClass169_993.method3826();
	int i_523_ = aClass169_993.method3836();
	((Class87_Sub1) this).aClass276_8990
	    .method5466(0.0F, (float) i, 0.0F, (float) i_523_, -1.0F, 1.0F);
	method2331();
	method14993();
	method2112();
    }
    
    public Class135 method2290(Class102 class102, boolean bool) {
	int[] is = class102.method2729(false);
	Class135 class135
	    = method2145(is, 0, class102.method2740(), class102.method2740(),
			 class102.method2715(), 2086741028);
	class135.method3344(class102.method2716(), class102.method2773(),
			    class102.method2732(), class102.method2719());
	return class135;
    }
    
    public Class135 method2083(int i, int i_524_, int i_525_, int i_526_,
			       boolean bool) {
	return new Class135_Sub2(this, i, i_524_, i_525_, i_526_);
    }
    
    public Class135 method2303(int i, int i_527_, int i_528_, int i_529_,
			       boolean bool) {
	return new Class135_Sub2(this, i, i_527_, i_528_, i_529_);
    }
    
    public Class135 method2293(int i, int i_530_, int i_531_, int i_532_,
			       boolean bool) {
	return new Class135_Sub2(this, i, i_530_, i_531_, i_532_);
    }
    
    public Class171 method2294(int i, int i_533_, int[] is, int[] is_534_) {
	return Class171_Sub1.method15819(this, i, i_533_, is, is_534_);
    }
    
    public Class171 method2295(int i, int i_535_, int[] is, int[] is_536_) {
	return Class171_Sub1.method15819(this, i, i_535_, is, is_536_);
    }
    
    public Class99 method2296(Class622 class622,
			      Class102_Sub1[] class102_sub1s, boolean bool) {
	return new Class99_Sub1(this, class622, class102_sub1s, bool);
    }
    
    final void method15063(Interface11 interface11) {
	if (((Class87_Sub1) this).anInterface11_8959 != interface11) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34963, interface11.method28());
	    ((Class87_Sub1) this).anInterface11_8959 = interface11;
	}
    }
    
    static int method15064(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 6409;
	    case 9:
		return 6406;
	    case 4:
		return 6408;
	    case 6:
		return 6410;
	    case 1:
		return 6407;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 9:
		return 32830;
	    case 0:
		return 32834;
	    case 4:
		return 32859;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 32852;
	    case 6:
		return 36219;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 7:
		return 33190;
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 34847;
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    default:
		throw new IllegalArgumentException();
	    case 4:
		return 34842;
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 1:
		return 34837;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    case 0:
		return 34840;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public void method2379(int i) {
	/* empty */
    }
    
    boolean method15065() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public void method2301(int i) {
	/* empty */
    }
    
    public void method2302(int i) {
	/* empty */
    }
    
    public final void method2345(int i, int i_537_, int i_538_) {
	if (((Class87_Sub1) this).anInt8989 != i
	    || ((Class87_Sub1) this).anInt8949 != i_537_
	    || ((Class87_Sub1) this).anInt8950 != i_538_) {
	    ((Class87_Sub1) this).anInt8989 = i;
	    ((Class87_Sub1) this).anInt8949 = i_537_;
	    ((Class87_Sub1) this).anInt8950 = i_538_;
	    method15129();
	    method15054();
	}
    }
    
    void method15066() {
	((Class87_Sub1) this).aClass141Array8930
	    = new Class141[((Class87_Sub1) this).anInt8976];
	((Class87_Sub1) this).aClass141_Sub3_8967
	    = new Class141_Sub3(this, 3553, Class173.aClass173_2131,
				Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	for (int i = 0; i < 7; i++) {
	    ((Class87_Sub1) this).aClass86_Sub3Array8999[i]
		= new Class86_Sub3(this);
	    ((Class87_Sub1) this).aClass86_Sub3Array8906[i]
		= new Class86_Sub3(this);
	}
	if (((Class87_Sub1) this).aBool8979) {
	    ((Class87_Sub1) this).aClass169_Sub2_Sub2_9001
		= new Class169_Sub2_Sub2(this);
	    new Class169_Sub2_Sub2(this);
	}
    }
    
    public int method2305(int i, int i_539_) {
	return i & i_539_ ^ i_539_;
    }
    
    public int method2306(int i, int i_540_) {
	return i & i_540_ ^ i_540_;
    }
    
    public int method2307(int i, int i_541_) {
	return i & i_541_ ^ i_541_;
    }
    
    final void method15067() {
	OpenGL.glPushMatrix();
    }
    
    public int method2309(int i, int i_542_) {
	return i | i_542_;
    }
    
    public Class99 method2298(Class622 class622,
			      Class102_Sub1[] class102_sub1s, boolean bool) {
	return new Class99_Sub1(this, class622, class102_sub1s, bool);
    }
    
    public int method2411(int i, int i_543_) {
	return i | i_543_;
    }
    
    public int method2312(int i, int i_544_) {
	return i | i_544_;
    }
    
    final void method15068() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    public Class163 method2313(int i, int i_545_, int[][] is, int[][] is_546_,
			       int i_547_, int i_548_, int i_549_) {
	return new Class163_Sub1(this, i_548_, i_549_, i, i_545_, is, is_546_,
				 i_547_);
    }
    
    final void method15069(int i) {
	if (((Class87_Sub1) this).anInt8944 != i) {
	    int i_550_;
	    boolean bool;
	    boolean bool_551_;
	    if (i == 1) {
		i_550_ = 1;
		bool = true;
		bool_551_ = true;
	    } else if (i == 2) {
		i_550_ = 2;
		bool = true;
		bool_551_ = false;
	    } else if (i == 128) {
		i_550_ = 3;
		bool = true;
		bool_551_ = true;
	    } else {
		i_550_ = 0;
		bool = true;
		bool_551_ = false;
	    }
	    if (bool != ((Class87_Sub1) this).aBool8892) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class87_Sub1) this).aBool8892 = bool;
	    }
	    if (bool_551_ != ((Class87_Sub1) this).aBool8893) {
		if (bool_551_)
		    OpenGL.glEnable(3008);
		else
		    OpenGL.glDisable(3008);
		((Class87_Sub1) this).aBool8893 = bool_551_;
	    }
	    if (i_550_ != ((Class87_Sub1) this).anInt8880) {
		if (i_550_ == 1) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(770, 771);
		} else if (i_550_ == 2) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(1, 1);
		} else if (i_550_ == 3) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(774, 1);
		} else
		    OpenGL.glDisable(3042);
		((Class87_Sub1) this).anInt8880 = i_550_;
	    }
	    ((Class87_Sub1) this).anInt8944 = i;
	    ((Class87_Sub1) this).anInt8908 &= ~0xc;
	}
    }
    
    public Class276 method2189() {
	return ((Class87_Sub1) this).aClass276_8867;
    }
    
    public Class276 method2275() {
	return ((Class87_Sub1) this).aClass276_8867;
    }
    
    public boolean method2467() {
	return true;
    }
    
    public Class350 method2211() {
	return ((Class87_Sub1) this).aClass350_8840;
    }
    
    public final synchronized void method2081(int i) {
	int i_552_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub1) this).aClass420_8881.method7467(458927824)) {
	    Class243_Sub9 class243_sub9
		= ((Class243_Sub9)
		   ((Class87_Sub1) this).aClass420_8881.method7458(-67357176));
	    anIntArray8888[i_552_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8878
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_552_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_552_, anIntArray8888, 0);
		i_552_ = 0;
	    }
	}
	if (i_552_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_552_, anIntArray8888, 0);
	    i_552_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8868.method7467(2082257430)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8868
				      .method7458(-843458632);
	    anIntArray8888[i_552_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8920
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_552_ == 1000) {
		OpenGL.glDeleteTextures(i_552_, anIntArray8888, 0);
		i_552_ = 0;
	    }
	}
	if (i_552_ > 0) {
	    OpenGL.glDeleteTextures(i_552_, anIntArray8888, 0);
	    i_552_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8883.method7467(-233439668)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8883
				      .method7458(-495951894);
	    anIntArray8888[i_552_++] = class243_sub9.anInt8679 * 1627367037;
	    if (i_552_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_552_, anIntArray8888, 0);
		i_552_ = 0;
	    }
	}
	if (i_552_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_552_, anIntArray8888, 0);
	    i_552_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8884.method7467(1837158080)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8884
				      .method7458(-127700541);
	    anIntArray8888[i_552_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8879
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_552_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_552_, anIntArray8888, 0);
		i_552_ = 0;
	    }
	}
	if (i_552_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_552_, anIntArray8888, 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(260424791)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-1132653378);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub1) this).aClass420_8885.method7467(1405084898)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8885.method7458(-879651726);
	    OpenGL.glDeleteProgramARB((int) (class243.aLong3905
					     * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8886.method7467(-144630906)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8886.method7458(-990272493);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(-197881424)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-1471409958);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	((Class87_Sub1) this).aClass162_8860.method3740();
	if (method2082() > 100663296
	    && (Class46.method1238(-786456424)
		> ((Class87_Sub1) this).aLong8816 + 60000L)) {
	    System.gc();
	    ((Class87_Sub1) this).aLong8816 = Class46.method1238(370298386);
	}
	((Class87_Sub1) this).anInt8871 = i;
    }
    
    public int method2382() {
	return 4;
    }
    
    public void method2286(Class243_Sub30 class243_sub30) {
	((Class87_Sub1) this).aNativeHeap8918
	    = (((Class243_Sub30_Sub1) (Class243_Sub30_Sub1) class243_sub30)
	       .aNativeHeap10520);
	if (((Class87_Sub1) this).anInterface10_9004 == null) {
	    Class243_Sub10_Sub2 class243_sub10_sub2
		= new Class243_Sub10_Sub2(80);
	    if (((Class87_Sub1) this).aBool8974) {
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(-1.0F);
		class243_sub10_sub2.method17080(0.0F);
		class243_sub10_sub2.method17080(1.0F);
		class243_sub10_sub2.method17080(0.0F);
	    } else {
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(-1.0F);
		class243_sub10_sub2.method17081(0.0F);
		class243_sub10_sub2.method17081(1.0F);
		class243_sub10_sub2.method17081(0.0F);
	    }
	    ((Class87_Sub1) this).anInterface10_9004
		= method15009(20, class243_sub10_sub2.aByteArray8691,
			      class243_sub10_sub2.anInt8688 * 126215893,
			      false);
	    ((Class87_Sub1) this).aClass140_9002
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       3, 0);
	    ((Class87_Sub1) this).aClass140_8849
		= new Class140(((Class87_Sub1) this).anInterface10_9004, 5126,
			       2, 12);
	    ((Class87_Sub1) this).aClass154_8866.method3676(this);
	}
    }
    
    public void method2324(int i, Class243_Sub42[] class243_sub42s) {
	for (int i_553_ = 0; i_553_ < i; i_553_++)
	    ((Class87_Sub1) this).aClass243_Sub42Array8820[i_553_]
		= class243_sub42s[i_553_];
	((Class87_Sub1) this).anInt8831 = i;
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14998();
    }
    
    public void method2325(int i, Class243_Sub42[] class243_sub42s) {
	for (int i_554_ = 0; i_554_ < i; i_554_++)
	    ((Class87_Sub1) this).aClass243_Sub42Array8820[i_554_]
		= class243_sub42s[i_554_];
	((Class87_Sub1) this).anInt8831 = i;
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14998();
    }
    
    public void method2326(int i, Class243_Sub42[] class243_sub42s) {
	for (int i_555_ = 0; i_555_ < i; i_555_++)
	    ((Class87_Sub1) this).aClass243_Sub42Array8820[i_555_]
		= class243_sub42s[i_555_];
	((Class87_Sub1) this).anInt8831 = i;
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14998();
    }
    
    public void method2327(Class104 class104) {
	((Class87_Sub1) this).aClass154_8866.method3670(this, class104);
    }
    
    public final void method2335(Class276 class276) {
	((Class87_Sub1) this).aClass276_9000.method5455(class276);
	method14996();
	method14995();
    }
    
    public final void method2245(int[] is) {
	is[0] = ((Class87_Sub1) this).anInt8955;
	is[1] = ((Class87_Sub1) this).anInt8986;
	is[2] = ((Class87_Sub1) this).anInt8891;
	is[3] = ((Class87_Sub1) this).anInt8919;
    }
    
    public final void method2113(int i, int i_556_, int i_557_, int i_558_) {
	if (aClass169_993 != null) {
	    if (i < 0)
		i = 0;
	    if (i_557_ > aClass169_993.method3826())
		i_557_ = aClass169_993.method3826();
	    if (i_556_ < 0)
		i_556_ = 0;
	    if (i_558_ > aClass169_993.method3836())
		i_558_ = aClass169_993.method3836();
	    ((Class87_Sub1) this).anInt8955 = i;
	    ((Class87_Sub1) this).anInt8986 = i_556_;
	    ((Class87_Sub1) this).anInt8891 = i_557_;
	    ((Class87_Sub1) this).anInt8919 = i_558_;
	    OpenGL.glEnable(3089);
	    method14988();
	}
    }
    
    public void method2414(int i, Class171 class171, int i_559_, int i_560_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(1);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_561_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_559_),
			    f_561_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_560_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_559_),
			    f_561_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_560_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_559_),
			    f_561_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_560_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_559_),
			    f_561_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_560_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    final void method15070(int i) {
	aFloatArray9005[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9005[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9005[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    public Class350 method2333() {
	return new Class350(((Class87_Sub1) this).aClass350_8896);
    }
    
    public Class350 method2334() {
	return new Class350(((Class87_Sub1) this).aClass350_8896);
    }
    
    public void method2262(int i, int i_562_, int i_563_, int i_564_,
			   int i_565_) {
	method14985();
	method15035(i_565_);
	float f = (float) i + 0.35F;
	float f_566_ = (float) i_562_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_564_ >> 16), (byte) (i_564_ >> 8),
			  (byte) i_564_, (byte) (i_564_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_566_);
	OpenGL.glVertex2f(f, f_566_ + (float) i_563_);
	OpenGL.glEnd();
    }
    
    Class169_Sub1 method2297(Canvas canvas, int i, int i_567_) {
	return new Class169_Sub1_Sub1(this, canvas);
    }
    
    public void method2192(int i, Class105 class105) {
	if (!((Class87_Sub1) this).aBool8969)
	    throw new RuntimeException("");
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	if (((Class87_Sub1) this).aBool8916) {
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15812();
	}
    }
    
    public void method2139(Class350 class350, Class97 class97,
			   Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	class97.method2544(class346, ((Class87_Sub1) this).aClass276_9000,
			   class276, ((Class87_Sub1) this).aFloat8833,
			   ((Class87_Sub1) this).aFloat9003,
			   ((Class87_Sub1) this).aFloat8905,
			   ((Class87_Sub1) this).aFloat8907);
    }
    
    public final void method2397(float f) {
	if (((Class87_Sub1) this).aFloat8864 != f) {
	    ((Class87_Sub1) this).aFloat8864 = f;
	    method14984();
	}
    }
    
    public final void method2340(int i, float f, float f_568_, float f_569_,
				 float f_570_, float f_571_) {
	boolean bool = ((Class87_Sub1) this).anInt8935 != i;
	if (bool || ((Class87_Sub1) this).aFloat8940 != f
	    || ((Class87_Sub1) this).aFloat8873 != f_568_) {
	    ((Class87_Sub1) this).anInt8935 = i;
	    ((Class87_Sub1) this).aFloat8940 = f;
	    ((Class87_Sub1) this).aFloat8873 = f_568_;
	    if (bool) {
		((Class87_Sub1) this).aFloat8936
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff0000)
		       / 1.671168E7F);
		((Class87_Sub1) this).aFloat8956
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff00)
		       / 65280.0F);
		((Class87_Sub1) this).aFloat8938
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff)
		       / 255.0F);
		method14984();
	    }
	    method15001();
	}
	if (((Class87_Sub1) this).aFloatArray8931[0] != f_569_
	    || ((Class87_Sub1) this).aFloatArray8931[1] != f_570_
	    || ((Class87_Sub1) this).aFloatArray8931[2] != f_571_) {
	    ((Class87_Sub1) this).aFloatArray8931[0] = f_569_;
	    ((Class87_Sub1) this).aFloatArray8931[1] = f_570_;
	    ((Class87_Sub1) this).aFloatArray8931[2] = f_571_;
	    ((Class87_Sub1) this).aFloatArray8932[0] = -f_569_;
	    ((Class87_Sub1) this).aFloatArray8932[1] = -f_570_;
	    ((Class87_Sub1) this).aFloatArray8932[2] = -f_571_;
	    float f_572_
		= (float) (1.0 / Math.sqrt((double) (f_569_ * f_569_
						     + f_570_ * f_570_
						     + f_571_ * f_571_)));
	    ((Class87_Sub1) this).aFloatArray8933[0] = f_569_ * f_572_;
	    ((Class87_Sub1) this).aFloatArray8933[1] = f_570_ * f_572_;
	    ((Class87_Sub1) this).aFloatArray8933[2] = f_571_ * f_572_;
	    ((Class87_Sub1) this).aFloatArray8934[0]
		= -((Class87_Sub1) this).aFloatArray8933[0];
	    ((Class87_Sub1) this).aFloatArray8934[1]
		= -((Class87_Sub1) this).aFloatArray8933[1];
	    ((Class87_Sub1) this).aFloatArray8934[2]
		= -((Class87_Sub1) this).aFloatArray8933[2];
	    method15002();
	    ((Class87_Sub1) this).anInt8945 = (int) (f_569_ * 256.0F / f_570_);
	    ((Class87_Sub1) this).anInt8869 = (int) (f_571_ * 256.0F / f_570_);
	}
    }
    
    public void method2265(int i, int i_573_, int i_574_, int i_575_,
			   int i_576_, int i_577_) {
	method14985();
	method15035(i_577_);
	float f = (float) i_574_ - (float) i;
	float f_578_ = (float) i_575_ - (float) i_573_;
	if (f == 0.0F && f_578_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_579_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_578_ * f_578_)));
	    f *= f_579_;
	    f_578_ *= f_579_;
	}
	OpenGL.glColor4ub((byte) (i_576_ >> 16), (byte) (i_576_ >> 8),
			  (byte) i_576_, (byte) (i_576_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_573_ + 0.35F);
	OpenGL.glVertex2f((float) i_574_ + f + 0.35F,
			  (float) i_575_ + f_578_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public final void method2351(int i, float f, float f_580_, float f_581_,
				 float f_582_, float f_583_) {
	boolean bool = ((Class87_Sub1) this).anInt8935 != i;
	if (bool || ((Class87_Sub1) this).aFloat8940 != f
	    || ((Class87_Sub1) this).aFloat8873 != f_580_) {
	    ((Class87_Sub1) this).anInt8935 = i;
	    ((Class87_Sub1) this).aFloat8940 = f;
	    ((Class87_Sub1) this).aFloat8873 = f_580_;
	    if (bool) {
		((Class87_Sub1) this).aFloat8936
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff0000)
		       / 1.671168E7F);
		((Class87_Sub1) this).aFloat8956
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff00)
		       / 65280.0F);
		((Class87_Sub1) this).aFloat8938
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff)
		       / 255.0F);
		method14984();
	    }
	    method15001();
	}
	if (((Class87_Sub1) this).aFloatArray8931[0] != f_581_
	    || ((Class87_Sub1) this).aFloatArray8931[1] != f_582_
	    || ((Class87_Sub1) this).aFloatArray8931[2] != f_583_) {
	    ((Class87_Sub1) this).aFloatArray8931[0] = f_581_;
	    ((Class87_Sub1) this).aFloatArray8931[1] = f_582_;
	    ((Class87_Sub1) this).aFloatArray8931[2] = f_583_;
	    ((Class87_Sub1) this).aFloatArray8932[0] = -f_581_;
	    ((Class87_Sub1) this).aFloatArray8932[1] = -f_582_;
	    ((Class87_Sub1) this).aFloatArray8932[2] = -f_583_;
	    float f_584_
		= (float) (1.0 / Math.sqrt((double) (f_581_ * f_581_
						     + f_582_ * f_582_
						     + f_583_ * f_583_)));
	    ((Class87_Sub1) this).aFloatArray8933[0] = f_581_ * f_584_;
	    ((Class87_Sub1) this).aFloatArray8933[1] = f_582_ * f_584_;
	    ((Class87_Sub1) this).aFloatArray8933[2] = f_583_ * f_584_;
	    ((Class87_Sub1) this).aFloatArray8934[0]
		= -((Class87_Sub1) this).aFloatArray8933[0];
	    ((Class87_Sub1) this).aFloatArray8934[1]
		= -((Class87_Sub1) this).aFloatArray8933[1];
	    ((Class87_Sub1) this).aFloatArray8934[2]
		= -((Class87_Sub1) this).aFloatArray8933[2];
	    method15002();
	    ((Class87_Sub1) this).anInt8945 = (int) (f_581_ * 256.0F / f_582_);
	    ((Class87_Sub1) this).anInt8869 = (int) (f_583_ * 256.0F / f_582_);
	}
    }
    
    public int method2319() {
	return 4;
    }
    
    void method2203(int i, int i_585_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 39);
    }
    
    final void method15071() {
	if (((Class87_Sub1) this).anInt8908 != 4) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15172(-2);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 4;
	}
    }
    
    public void method2185(Class167 class167, float f, Class167 class167_586_,
			   float f_587_, Class167 class167_588_,
			   float f_589_) {
	int i = 0;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[0]
	    = (Class167_Sub2) class167;
	Class243_Sub47_Sub1.aFloatArray10502[0] = f;
	if (f > 0.0F)
	    i++;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[1]
	    = (Class167_Sub2) class167_586_;
	Class243_Sub47_Sub1.aFloatArray10502[1] = f_587_;
	if (f_587_ > 0.0F)
	    i++;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[2]
	    = (Class167_Sub2) class167_588_;
	Class243_Sub47_Sub1.aFloatArray10502[2] = f_589_;
	if (f_589_ > 0.0F)
	    i++;
	Class243_Sub47_Sub1.anInt10497 = i;
	Class243_Sub47_Sub1.aFloat10501 = 1.0F - (f + f_587_ + f_589_);
    }
    
    public Class103 method2347(int i) {
	return (((Class87_Sub1) this).aBool8987
		? new Class103_Sub2_Sub1(this, i) : null);
    }
    
    public Class103 method2106(int i) {
	return (((Class87_Sub1) this).aBool8987
		? new Class103_Sub2_Sub1(this, i) : null);
    }
    
    public Class103 method2349(int i) {
	return (((Class87_Sub1) this).aBool8987
		? new Class103_Sub2_Sub1(this, i) : null);
    }
    
    void method15072() {
	method14977();
    }
    
    public boolean method2402() {
	return true;
    }
    
    public Class103 method2352(Class103 class103, Class103 class103_590_,
			       float f, Class103 class103_591_) {
	if (class103 != null && class103_590_ != null
	    && ((Class87_Sub1) this).aBool8987
	    && ((Class87_Sub1) this).aBool8979) {
	    Class103_Sub2_Sub2 class103_sub2_sub2 = null;
	    Class103_Sub2 class103_sub2 = (Class103_Sub2) class103;
	    Class103_Sub2 class103_sub2_592_ = (Class103_Sub2) class103_590_;
	    Class141_Sub4 class141_sub4 = class103_sub2.method15294();
	    Class141_Sub4 class141_sub4_593_
		= class103_sub2_592_.method15294();
	    if (class141_sub4 != null && class141_sub4_593_ != null) {
		int i = ((((Class141_Sub4) class141_sub4).anInt10450
			  > ((Class141_Sub4) class141_sub4_593_).anInt10450)
			 ? ((Class141_Sub4) class141_sub4).anInt10450
			 : ((Class141_Sub4) class141_sub4_593_).anInt10450);
		if (class103 != class103_591_ && class103_590_ != class103_591_
		    && class103_591_ instanceof Class103_Sub2_Sub2) {
		    Class103_Sub2_Sub2 class103_sub2_sub2_594_
			= (Class103_Sub2_Sub2) class103_591_;
		    if (class103_sub2_sub2_594_.method16900() == i)
			class103_sub2_sub2 = class103_sub2_sub2_594_;
		}
		if (class103_sub2_sub2 == null)
		    class103_sub2_sub2 = new Class103_Sub2_Sub2(this, i);
		if (class103_sub2_sub2.method16902(class141_sub4,
						   class141_sub4_593_, f))
		    return class103_sub2_sub2;
	    }
	}
	return f < 0.5F ? class103 : class103_590_;
    }
    
    public final void method2353(Class103 class103) {
	((Class87_Sub1) this).aClass103_Sub2_8968 = (Class103_Sub2) class103;
    }
    
    public final void method2393(Class103 class103) {
	((Class87_Sub1) this).aClass103_Sub2_8968 = (Class103_Sub2) class103;
    }
    
    public final void method2355(Class103 class103) {
	((Class87_Sub1) this).aClass103_Sub2_8968 = (Class103_Sub2) class103;
    }
    
    final void method15073(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8947) {
	    ((Class87_Sub1) this).aBool8947 = bool;
	    method15054();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15074() {
	OpenGL.glPopMatrix();
    }
    
    public final void method2266() {
	((Class87_Sub1) this).aClass139_8939.method3463();
    }
    
    public void method2285(int i, int i_595_, int i_596_, int i_597_,
			   int i_598_, int i_599_, Class171 class171,
			   int i_600_, int i_601_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(i_599_);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_602_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	float f_603_ = (float) i_596_ - (float) i;
	float f_604_ = (float) i_597_ - (float) i_595_;
	float f_605_ = (float) (1.0 / Math.sqrt((double) (f_603_ * f_603_
							  + f_604_ * f_604_)));
	f_603_ *= f_605_;
	f_604_ *= f_605_;
	OpenGL.glColor4ub((byte) (i_598_ >> 16), (byte) (i_598_ >> 8),
			  (byte) i_598_, (byte) (i_598_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_600_),
			    f_602_ * (float) (i_595_ - i_601_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_595_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_596_ - i_600_),
			    f_602_ * (float) (i_597_ - i_601_));
	OpenGL.glVertex2f((float) i_596_ + f_603_ + 0.35F,
			  (float) i_597_ + f_604_ + 0.35F);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    final void method15075() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    public final boolean method2361() {
	return ((Class87_Sub1) this).aClass139_8939.method3459();
    }
    
    public boolean method2362() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		       .method16465());
    }
    
    public Class350 method2317() {
	return ((Class87_Sub1) this).aClass350_8840;
    }
    
    public void method2168(float f, float f_606_, float f_607_, float f_608_,
			   float f_609_) {
	Class243_Sub47_Sub2.aFloat10512 = f;
	Class243_Sub47_Sub2.aFloat10510 = f_606_;
	Class243_Sub47_Sub2.aFloat10511 = f_607_;
	Class243_Sub47_Sub2.aFloat10514 = f_608_;
	Class243_Sub47_Sub2.aFloat10513 = f_609_;
    }
    
    public void method2365(float f, float f_610_, float f_611_, float f_612_,
			   float f_613_) {
	Class243_Sub47_Sub2.aFloat10512 = f;
	Class243_Sub47_Sub2.aFloat10510 = f_610_;
	Class243_Sub47_Sub2.aFloat10511 = f_611_;
	Class243_Sub47_Sub2.aFloat10514 = f_612_;
	Class243_Sub47_Sub2.aFloat10513 = f_613_;
    }
    
    public Class167 method2366(int[] is) {
	return new Class167_Sub2(this, is);
    }
    
    public Class103 method2350(int i) {
	return (((Class87_Sub1) this).aBool8987
		? new Class103_Sub2_Sub1(this, i) : null);
    }
    
    final void method15076() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class87_Sub1) this).aClass276_8897
			      .aFloatArray4141),
			     0);
	if (((Class87_Sub1) this).aBool8916)
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	method15002();
	method14998();
    }
    
    public boolean method2369() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		       .method16465());
    }
    
    public void method2111(Class167 class167, float f, Class167 class167_614_,
			   float f_615_, Class167 class167_616_,
			   float f_617_) {
	int i = 0;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[0]
	    = (Class167_Sub2) class167;
	Class243_Sub47_Sub1.aFloatArray10502[0] = f;
	if (f > 0.0F)
	    i++;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[1]
	    = (Class167_Sub2) class167_614_;
	Class243_Sub47_Sub1.aFloatArray10502[1] = f_615_;
	if (f_615_ > 0.0F)
	    i++;
	Class243_Sub47_Sub1.aClass167_Sub2Array10498[2]
	    = (Class167_Sub2) class167_616_;
	Class243_Sub47_Sub1.aFloatArray10502[2] = f_617_;
	if (f_617_ > 0.0F)
	    i++;
	Class243_Sub47_Sub1.anInt10497 = i;
	Class243_Sub47_Sub1.aFloat10501 = 1.0F - (f + f_615_ + f_617_);
    }
    
    public final boolean method2450() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public final boolean method2284() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public final void method2367() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
	    && ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863.method16465()) {
	    ((Class87_Sub1) this).aClass139_8939
		.method3458(((Class87_Sub1) this).aClass243_Sub47_Sub3_8863);
	    ((Class87_Sub1) this).aClass162_8860.method3741();
	}
    }
    
    public final void method2374() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
	    && ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863.method16465()) {
	    ((Class87_Sub1) this).aClass139_8939
		.method3458(((Class87_Sub1) this).aClass243_Sub47_Sub3_8863);
	    ((Class87_Sub1) this).aClass162_8860.method3741();
	}
    }
    
    public final void method2375() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
	    && ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863.method16465()) {
	    ((Class87_Sub1) this).aClass139_8939
		.method3458(((Class87_Sub1) this).aClass243_Sub47_Sub3_8863);
	    ((Class87_Sub1) this).aClass162_8860.method3741();
	}
    }
    
    public final boolean method2370() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		       .method16465());
    }
    
    public final boolean method2377() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub3_8863
		       .method16465());
    }
    
    public void method2378(int i, Class105 class105) {
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	((Class87_Sub1) this).aBool8969 = true;
    }
    
    void method2376(int i, int i_618_, int i_619_, int i_620_, int i_621_) {
	if (i_619_ < 0)
	    i_619_ = -i_619_;
	if (i + i_619_ >= ((Class87_Sub1) this).anInt8955
	    && i - i_619_ <= ((Class87_Sub1) this).anInt8891
	    && i_618_ + i_619_ >= ((Class87_Sub1) this).anInt8986
	    && i_618_ - i_619_ <= ((Class87_Sub1) this).anInt8919) {
	    method14985();
	    method15035(i_621_);
	    OpenGL.glColor4ub((byte) (i_620_ >> 16), (byte) (i_620_ >> 8),
			      (byte) i_620_, (byte) (i_620_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_622_ = (float) i_618_ + 0.35F;
	    int i_623_ = i_619_ << 1;
	    if ((float) i_623_ < ((Class87_Sub1) this).aFloat8998) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_622_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_622_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_622_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_622_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_623_ <= ((Class87_Sub1) this).aFloat8997) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_623_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_622_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_622_);
		int i_624_ = 262144 / (6 * i_619_);
		if (i_624_ <= 64)
		    i_624_ = 64;
		else if (i_624_ > 512)
		    i_624_ = 512;
		i_624_ = Class578.method12730(i_624_, 1281983431);
		OpenGL.glVertex2f(f + (float) i_619_, f_622_);
		for (int i_625_ = 16384 - i_624_; i_625_ > 0; i_625_ -= i_624_)
		    OpenGL.glVertex2f(f + (Class137.aFloatArray1647[i_625_]
					   * (float) i_619_),
				      f_622_ + (Class137.aFloatArray1646
						[i_625_]) * (float) i_619_);
		OpenGL.glVertex2f(f + (float) i_619_, f_622_);
		OpenGL.glEnd();
	    }
	}
    }
    
    public void method2380(int i, Class105 class105) {
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	((Class87_Sub1) this).aBool8969 = true;
    }
    
    public void method2381(int i, Class105 class105) {
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	((Class87_Sub1) this).aBool8969 = true;
    }
    
    static int method15077(Class173 class173, Class90 class90) {
	if (class90 == Class90.aClass90_1040) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 6409;
	    case 9:
		return 6406;
	    case 4:
		return 6408;
	    case 6:
		return 6410;
	    case 1:
		return 6407;
	    }
	}
	if (class90 == Class90.aClass90_1042) {
	    switch (class173.anInt2137 * -598663847) {
	    case 9:
		return 32830;
	    case 0:
		return 32834;
	    case 4:
		return 32859;
	    default:
		throw new IllegalArgumentException();
	    case 1:
		return 32852;
	    case 6:
		return 36219;
	    case 7:
		return 33189;
	    }
	}
	if (class90 == Class90.aClass90_1043) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 7:
		return 33190;
	    }
	}
	if (class90 == Class90.aClass90_1044) {
	    switch (class173.anInt2137 * -598663847) {
	    case 6:
		return 34847;
	    case 0:
		return 34846;
	    case 9:
		return 34844;
	    default:
		throw new IllegalArgumentException();
	    case 4:
		return 34842;
	    case 1:
		return 34843;
	    }
	}
	if (class90 == Class90.aClass90_1045) {
	    switch (class173.anInt2137 * -598663847) {
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34838;
	    case 1:
		return 34837;
	    case 4:
		return 34836;
	    case 6:
		return 34841;
	    case 0:
		return 34840;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public boolean method2215() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub3_8863 != null
		&& (((Class87_Sub1) this).anInt8859 <= 1
		    || ((Class87_Sub1) this).aBool8983));
    }
    
    public Class135 method2287(int[] is, int i, int i_626_, int i_627_,
			       int i_628_, boolean bool) {
	return new Class135_Sub2(this, i_627_, i_628_, is, i, i_626_);
    }
    
    void method15078() {
	if (((Class87_Sub1) this).aBool8947
	    && ((Class87_Sub1) this).anInt8949 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    public void method2386() {
	((Class87_Sub1) this).aBool8969 = false;
    }
    
    public void method2387() {
	((Class87_Sub1) this).aBool8969 = false;
    }
    
    public void method2388(int i, int i_629_, float f, int i_630_, int i_631_,
			   float f_632_, int i_633_, int i_634_, float f_635_,
			   int i_636_, int i_637_, int i_638_, int i_639_) {
	method14985();
	method15035(i_639_);
	OpenGL.glBegin(4);
	OpenGL.glColor4ub((byte) (i_636_ >> 16), (byte) (i_636_ >> 8),
			  (byte) i_636_, (byte) (i_636_ >> 24));
	OpenGL.glVertex3f((float) i + 0.35F, (float) i_629_ + 0.35F, f);
	OpenGL.glColor4ub((byte) (i_637_ >> 16), (byte) (i_637_ >> 8),
			  (byte) i_637_, (byte) (i_637_ >> 24));
	OpenGL.glVertex3f((float) i_630_ + 0.35F, (float) i_631_ + 0.35F,
			  f_632_);
	OpenGL.glColor4ub((byte) (i_638_ >> 16), (byte) (i_638_ >> 8),
			  (byte) i_638_, (byte) (i_638_ >> 24));
	OpenGL.glVertex3f((float) i_633_ + 0.35F, (float) i_634_ + 0.35F,
			  f_635_);
	OpenGL.glEnd();
    }
    
    public void method2389(int i, int i_640_, float f, int i_641_, int i_642_,
			   float f_643_, int i_644_, int i_645_, float f_646_,
			   int i_647_, int i_648_, int i_649_, int i_650_) {
	method14985();
	method15035(i_650_);
	OpenGL.glBegin(4);
	OpenGL.glColor4ub((byte) (i_647_ >> 16), (byte) (i_647_ >> 8),
			  (byte) i_647_, (byte) (i_647_ >> 24));
	OpenGL.glVertex3f((float) i + 0.35F, (float) i_640_ + 0.35F, f);
	OpenGL.glColor4ub((byte) (i_648_ >> 16), (byte) (i_648_ >> 8),
			  (byte) i_648_, (byte) (i_648_ >> 24));
	OpenGL.glVertex3f((float) i_641_ + 0.35F, (float) i_642_ + 0.35F,
			  f_643_);
	OpenGL.glColor4ub((byte) (i_649_ >> 16), (byte) (i_649_ >> 8),
			  (byte) i_649_, (byte) (i_649_ >> 24));
	OpenGL.glVertex3f((float) i_644_ + 0.35F, (float) i_645_ + 0.35F,
			  f_646_);
	OpenGL.glEnd();
    }
    
    public final void method2181(int i, int i_651_, int i_652_, int i_653_) {
	((Class87_Sub1) this).aClass139_8939.method3462(i, i_651_, i_652_,
							i_653_);
    }
    
    public Class243_Sub30 method2405(int i) {
	Class243_Sub30_Sub1 class243_sub30_sub1 = new Class243_Sub30_Sub1(i);
	((Class87_Sub1) this).aClass420_8876.method7495(class243_sub30_sub1,
							261489611);
	return class243_sub30_sub1;
    }
    
    public void method2182(float f, float f_654_, float f_655_, float f_656_,
			   float f_657_) {
	Class243_Sub47_Sub2.aFloat10512 = f;
	Class243_Sub47_Sub2.aFloat10510 = f_654_;
	Class243_Sub47_Sub2.aFloat10511 = f_655_;
	Class243_Sub47_Sub2.aFloat10514 = f_656_;
	Class243_Sub47_Sub2.aFloat10513 = f_657_;
    }
    
    public Class135 method2288(Class102 class102, boolean bool) {
	int[] is = class102.method2729(false);
	Class135 class135
	    = method2145(is, 0, class102.method2740(), class102.method2740(),
			 class102.method2715(), -260298376);
	class135.method3344(class102.method2716(), class102.method2773(),
			    class102.method2732(), class102.method2719());
	return class135;
    }
    
    public void method2394(float f, float f_658_, float f_659_, float[] fs) {
	float f_660_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * f_658_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * f_659_));
	float f_661_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_658_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_659_));
	if (f_660_ < -f_661_ || f_660_ > f_661_) {
	    float[] fs_662_ = fs;
	    float[] fs_663_ = fs;
	    fs[2] = Float.NaN;
	    fs_663_[1] = Float.NaN;
	    fs_662_[0] = Float.NaN;
	} else {
	    float f_664_
		= (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		      * f)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		      * f_658_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		      * f_659_));
	    if (f_664_ < -f_661_ || f_664_ > f_661_) {
		float[] fs_665_ = fs;
		float[] fs_666_ = fs;
		fs[2] = Float.NaN;
		fs_666_[1] = Float.NaN;
		fs_665_[0] = Float.NaN;
	    } else {
		float f_667_
		    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [1]) * f
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [5]) * f_658_
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [9]) * f_659_);
		if (f_667_ < -f_661_ || f_667_ > f_661_) {
		    float[] fs_668_ = fs;
		    float[] fs_669_ = fs;
		    fs[2] = Float.NaN;
		    fs_669_[1] = Float.NaN;
		    fs_668_[0] = Float.NaN;
		} else {
		    float f_670_ = ((((Class87_Sub1) this).aClass276_8897
				     .aFloatArray4141[14])
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[2]) * f
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[6]) * f_658_
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[10]) * f_659_);
		    fs[0] = (((Class87_Sub1) this).aFloat8833
			     + (((Class87_Sub1) this).aFloat8905 * f_664_
				/ f_661_));
		    fs[1] = (((Class87_Sub1) this).aFloat9003
			     + (((Class87_Sub1) this).aFloat8907 * f_667_
				/ f_661_));
		    fs[2] = f_670_;
		}
	    }
	}
    }
    
    public void method2210(float f, float f_671_, float f_672_, float[] fs) {
	float f_673_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_671_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_672_));
	float f_674_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * f_671_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * f_672_));
	float f_675_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * f_671_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * f_672_));
	float f_676_
	    = (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8897.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[6]
		  * f_671_)
	       + (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[10]
		  * f_672_));
	fs[0] = (((Class87_Sub1) this).aFloat8833
		 + ((Class87_Sub1) this).aFloat8905 * f_674_ / f_673_);
	fs[1] = (((Class87_Sub1) this).aFloat9003
		 + ((Class87_Sub1) this).aFloat8907 * f_675_ / f_673_);
	fs[2] = f_676_;
    }
    
    public Class169_Sub2 method2396() {
	return new Class169_Sub2_Sub2(this);
    }
    
    public Interface4 method2385(int i, int i_677_) {
	return new Class243_Sub11_Sub18(this, Class173.aClass173_2129,
					Class90.aClass90_1043, i, i_677_);
    }
    
    final void method15079(Interface10 interface10) {
	if (((Class87_Sub1) this).anInterface10_8960 != interface10) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34962, interface10.method28());
	    ((Class87_Sub1) this).anInterface10_8960 = interface10;
	}
    }
    
    void method15080() {
	((Class87_Sub1) this).aClass141Array8930
	    = new Class141[((Class87_Sub1) this).anInt8976];
	((Class87_Sub1) this).aClass141_Sub3_8967
	    = new Class141_Sub3(this, 3553, Class173.aClass173_2131,
				Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	new Class141_Sub3(this, 3553, Class173.aClass173_2131,
			  Class90.aClass90_1040, 1, 1);
	for (int i = 0; i < 7; i++) {
	    ((Class87_Sub1) this).aClass86_Sub3Array8999[i]
		= new Class86_Sub3(this);
	    ((Class87_Sub1) this).aClass86_Sub3Array8906[i]
		= new Class86_Sub3(this);
	}
	if (((Class87_Sub1) this).aBool8979) {
	    ((Class87_Sub1) this).aClass169_Sub2_Sub2_9001
		= new Class169_Sub2_Sub2(this);
	    new Class169_Sub2_Sub2(this);
	}
    }
    
    final void method15081() {
	if (aClass169_993 != null) {
	    int i;
	    int i_678_;
	    int i_679_;
	    int i_680_;
	    if (((Class87_Sub1) this).anInt8827 == 2) {
		i = ((Class87_Sub1) this).anInt8924;
		i_678_ = ((Class87_Sub1) this).anInt8925;
		i_679_ = ((Class87_Sub1) this).anInt8926;
		i_680_ = ((Class87_Sub1) this).anInt8927;
	    } else {
		i = 0;
		i_678_ = 0;
		i_679_ = aClass169_993.method3826();
		i_680_ = aClass169_993.method3836();
	    }
	    if (i_679_ < 1)
		i_679_ = 1;
	    if (i_680_ < 1)
		i_680_ = 1;
	    OpenGL.glViewport(((Class87_Sub1) this).anInt8872 + i,
			      (((Class87_Sub1) this).anInt8923
			       + aClass169_993.method3836() - i_678_ - i_680_),
			      i_679_, i_680_);
	    ((Class87_Sub1) this).aFloat8905
		= (float) ((Class87_Sub1) this).anInt8926 / 2.0F;
	    ((Class87_Sub1) this).aFloat8907
		= (float) ((Class87_Sub1) this).anInt8927 / 2.0F;
	    ((Class87_Sub1) this).aFloat8833
		= ((float) ((Class87_Sub1) this).anInt8924
		   + ((Class87_Sub1) this).aFloat8905);
	    ((Class87_Sub1) this).aFloat9003
		= ((float) ((Class87_Sub1) this).anInt8925
		   + ((Class87_Sub1) this).aFloat8907);
	}
    }
    
    void method15082() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_681_ = 16384 + i;
	    OpenGL.glLightfv(i_681_, 4608, fs, 0);
	    OpenGL.glLightf(i_681_, 4615, 0.0F);
	    OpenGL.glLightf(i_681_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    void method15083() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_682_ = 16384 + i;
	    OpenGL.glLightfv(i_682_, 4608, fs, 0);
	    OpenGL.glLightf(i_682_, 4615, 0.0F);
	    OpenGL.glLightf(i_682_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    public void method2263(int i, int i_683_, int i_684_, int i_685_,
			   int i_686_, int i_687_) {
	method14985();
	method15035(i_687_);
	float f = (float) i_684_ - (float) i;
	float f_688_ = (float) i_685_ - (float) i_683_;
	if (f == 0.0F && f_688_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_689_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_688_ * f_688_)));
	    f *= f_689_;
	    f_688_ *= f_689_;
	}
	OpenGL.glColor4ub((byte) (i_686_ >> 16), (byte) (i_686_ >> 8),
			  (byte) i_686_, (byte) (i_686_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_683_ + 0.35F);
	OpenGL.glVertex2f((float) i_684_ + f + 0.35F,
			  (float) i_685_ + f_688_ + 0.35F);
	OpenGL.glEnd();
    }
    
    final void method15084() {
	OpenGL.glDepthMask(((Class87_Sub1) this).aBool8895
			   && ((Class87_Sub1) this).aBool8917);
    }
    
    public void method2267(int i, int i_690_, int i_691_, int i_692_,
			   int i_693_, int i_694_, Class171 class171,
			   int i_695_, int i_696_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(i_694_);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_697_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	float f_698_ = (float) i_691_ - (float) i;
	float f_699_ = (float) i_692_ - (float) i_690_;
	float f_700_ = (float) (1.0 / Math.sqrt((double) (f_698_ * f_698_
							  + f_699_ * f_699_)));
	f_698_ *= f_700_;
	f_699_ *= f_700_;
	OpenGL.glColor4ub((byte) (i_693_ >> 16), (byte) (i_693_ >> 8),
			  (byte) i_693_, (byte) (i_693_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_695_),
			    f_697_ * (float) (i_690_ - i_696_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_690_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_691_ - i_695_),
			    f_697_ * (float) (i_692_ - i_696_));
	OpenGL.glVertex2f((float) i_691_ + f_698_ + 0.35F,
			  (float) i_692_ + f_699_ + 0.35F);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    public boolean method2420() {
	return true;
    }
    
    public boolean method2400() {
	return true;
    }
    
    public final void method2343(int i) {
	((Class87_Sub1) this).anInt8921 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class87_Sub1) this).anInt8921++;
	((Class87_Sub1) this).anInt8942 = 1 << ((Class87_Sub1) this).anInt8921;
    }
    
    boolean method15085() {
	return ((Class87_Sub1) this).aClass156_8965.method3691(3);
    }
    
    public int method2452(int i, int i_701_) {
	return i | i_701_;
    }
    
    public boolean method2368() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		       .method16465());
    }
    
    public Class135 method2232(Class102 class102, boolean bool) {
	int[] is = class102.method2729(false);
	Class135 class135
	    = method2145(is, 0, class102.method2740(), class102.method2740(),
			 class102.method2715(), 87244496);
	class135.method3344(class102.method2716(), class102.method2773(),
			    class102.method2732(), class102.method2719());
	return class135;
    }
    
    void method15086() {
	method14977();
    }
    
    void method2390(int i, int i_702_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 81);
    }
    
    void method15087() {
	int i = aClass169_993.method3826();
	int i_703_ = aClass169_993.method3836();
	((Class87_Sub1) this).aClass276_8990
	    .method5466(0.0F, (float) i, 0.0F, (float) i_703_, -1.0F, 1.0F);
	method2331();
	method14993();
	method2112();
    }
    
    public void method2130(float f, float f_704_, float f_705_, float[] fs) {
	float f_706_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[6]
		  * f_704_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[10]
		  * f_705_));
	float f_707_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_704_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_705_));
	if (f_706_ < -f_707_ || f_706_ > f_707_) {
	    float[] fs_708_ = fs;
	    float[] fs_709_ = fs;
	    fs[2] = Float.NaN;
	    fs_709_[1] = Float.NaN;
	    fs_708_[0] = Float.NaN;
	} else {
	    float f_710_
		= (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0]
		      * f)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		      * f_704_)
		   + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		      * f_705_));
	    if (f_710_ < -f_707_ || f_710_ > f_707_) {
		float[] fs_711_ = fs;
		float[] fs_712_ = fs;
		fs[2] = Float.NaN;
		fs_712_[1] = Float.NaN;
		fs_711_[0] = Float.NaN;
	    } else {
		float f_713_
		    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [1]) * f
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [5]) * f_704_
		       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141
			  [9]) * f_705_);
		if (f_713_ < -f_707_ || f_713_ > f_707_) {
		    float[] fs_714_ = fs;
		    float[] fs_715_ = fs;
		    fs[2] = Float.NaN;
		    fs_715_[1] = Float.NaN;
		    fs_714_[0] = Float.NaN;
		} else {
		    float f_716_ = ((((Class87_Sub1) this).aClass276_8897
				     .aFloatArray4141[14])
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[2]) * f
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[6]) * f_704_
				    + (((Class87_Sub1) this).aClass276_8897
				       .aFloatArray4141[10]) * f_705_);
		    fs[0] = (((Class87_Sub1) this).aFloat8833
			     + (((Class87_Sub1) this).aFloat8905 * f_710_
				/ f_707_));
		    fs[1] = (((Class87_Sub1) this).aFloat9003
			     + (((Class87_Sub1) this).aFloat8907 * f_713_
				/ f_707_));
		    fs[2] = f_716_;
		}
	    }
	}
    }
    
    public void method2404(int i, int i_717_, int i_718_, int i_719_,
			   int i_720_, int i_721_) {
	float f = (float) i + 0.35F;
	float f_722_ = (float) i_717_ + 0.35F;
	float f_723_ = f + (float) i_718_ - 1.0F;
	float f_724_ = f_722_ + (float) i_719_ - 1.0F;
	method14985();
	method15035(i_721_);
	OpenGL.glColor4ub((byte) (i_720_ >> 16), (byte) (i_720_ >> 8),
			  (byte) i_720_, (byte) (i_720_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_722_);
	OpenGL.glVertex2f(f, f_724_);
	OpenGL.glVertex2f(f_723_, f_724_);
	OpenGL.glVertex2f(f_723_, f_722_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2208(int i, int i_725_, int i_726_, int i_727_,
			   int i_728_, int i_729_) {
	float f = (float) i + 0.35F;
	float f_730_ = (float) i_725_ + 0.35F;
	float f_731_ = f + (float) i_726_ - 1.0F;
	float f_732_ = f_730_ + (float) i_727_ - 1.0F;
	method14985();
	method15035(i_729_);
	OpenGL.glColor4ub((byte) (i_728_ >> 16), (byte) (i_728_ >> 8),
			  (byte) i_728_, (byte) (i_728_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_730_);
	OpenGL.glVertex2f(f, f_732_);
	OpenGL.glVertex2f(f_731_, f_732_);
	OpenGL.glVertex2f(f_731_, f_730_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2406(int i, int i_733_, int i_734_, int i_735_,
			   int i_736_, int i_737_) {
	float f = (float) i + 0.35F;
	float f_738_ = (float) i_733_ + 0.35F;
	float f_739_ = f + (float) i_734_ - 1.0F;
	float f_740_ = f_738_ + (float) i_735_ - 1.0F;
	method14985();
	method15035(i_737_);
	OpenGL.glColor4ub((byte) (i_736_ >> 16), (byte) (i_736_ >> 8),
			  (byte) i_736_, (byte) (i_736_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_738_);
	OpenGL.glVertex2f(f, f_740_);
	OpenGL.glVertex2f(f_739_, f_740_);
	OpenGL.glVertex2f(f_739_, f_738_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    public void method2103(int i, int i_741_, int i_742_, int i_743_,
			   int i_744_, int i_745_, int i_746_, int i_747_,
			   int i_748_) {
	if (i != i_742_ || i_741_ != i_743_) {
	    method14985();
	    method15035(i_745_);
	    float f = (float) i_742_ - (float) i;
	    float f_749_ = (float) i_743_ - (float) i_741_;
	    float f_750_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_749_ * f_749_)));
	    f *= f_750_;
	    f_749_ *= f_750_;
	    OpenGL.glColor4ub((byte) (i_744_ >> 16), (byte) (i_744_ >> 8),
			      (byte) i_744_, (byte) (i_744_ >> 24));
	    i_748_ %= i_747_ + i_746_;
	    float f_751_ = f * (float) i_746_;
	    float f_752_ = f_749_ * (float) i_746_;
	    float f_753_ = 0.0F;
	    float f_754_ = 0.0F;
	    float f_755_ = f_751_;
	    float f_756_ = f_752_;
	    if (i_748_ > i_746_) {
		f_753_ = f * (float) (i_746_ + i_747_ - i_748_);
		f_754_ = f_749_ * (float) (i_746_ + i_747_ - i_748_);
	    } else {
		f_755_ = f * (float) (i_746_ - i_748_);
		f_756_ = f_749_ * (float) (i_746_ - i_748_);
	    }
	    float f_757_ = (float) i + 0.35F + f_753_;
	    float f_758_ = (float) i_741_ + 0.35F + f_754_;
	    float f_759_ = f * (float) i_747_;
	    float f_760_ = f_749_ * (float) i_747_;
	    for (;;) {
		if (i_742_ > i) {
		    if (f_757_ > (float) i_742_ + 0.35F)
			break;
		    if (f_757_ + f_755_ > (float) i_742_)
			f_755_ = (float) i_742_ - f_757_;
		} else {
		    if (f_757_ < (float) i_742_ + 0.35F)
			break;
		    if (f_757_ + f_755_ < (float) i_742_)
			f_755_ = (float) i_742_ - f_757_;
		}
		if (i_743_ > i_741_) {
		    if (f_758_ > (float) i_743_ + 0.35F)
			break;
		    if (f_758_ + f_756_ > (float) i_743_)
			f_756_ = (float) i_743_ - f_758_;
		} else {
		    if (f_758_ < (float) i_743_ + 0.35F)
			break;
		    if (f_758_ + f_756_ < (float) i_743_)
			f_756_ = (float) i_743_ - f_758_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_757_, f_758_);
		OpenGL.glVertex2f(f_757_ + f_755_, f_758_ + f_756_);
		OpenGL.glEnd();
		f_757_ += f_759_ + f_755_;
		f_758_ += f_760_ + f_756_;
		f_755_ = f_751_;
		f_756_ = f_752_;
	    }
	}
    }
    
    public void method2348(int i, int i_761_, int i_762_, int i_763_,
			   int i_764_, int i_765_, int i_766_, int i_767_,
			   int i_768_) {
	if (i != i_762_ || i_761_ != i_763_) {
	    method14985();
	    method15035(i_765_);
	    float f = (float) i_762_ - (float) i;
	    float f_769_ = (float) i_763_ - (float) i_761_;
	    float f_770_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_769_ * f_769_)));
	    f *= f_770_;
	    f_769_ *= f_770_;
	    OpenGL.glColor4ub((byte) (i_764_ >> 16), (byte) (i_764_ >> 8),
			      (byte) i_764_, (byte) (i_764_ >> 24));
	    i_768_ %= i_767_ + i_766_;
	    float f_771_ = f * (float) i_766_;
	    float f_772_ = f_769_ * (float) i_766_;
	    float f_773_ = 0.0F;
	    float f_774_ = 0.0F;
	    float f_775_ = f_771_;
	    float f_776_ = f_772_;
	    if (i_768_ > i_766_) {
		f_773_ = f * (float) (i_766_ + i_767_ - i_768_);
		f_774_ = f_769_ * (float) (i_766_ + i_767_ - i_768_);
	    } else {
		f_775_ = f * (float) (i_766_ - i_768_);
		f_776_ = f_769_ * (float) (i_766_ - i_768_);
	    }
	    float f_777_ = (float) i + 0.35F + f_773_;
	    float f_778_ = (float) i_761_ + 0.35F + f_774_;
	    float f_779_ = f * (float) i_767_;
	    float f_780_ = f_769_ * (float) i_767_;
	    for (;;) {
		if (i_762_ > i) {
		    if (f_777_ > (float) i_762_ + 0.35F)
			break;
		    if (f_777_ + f_775_ > (float) i_762_)
			f_775_ = (float) i_762_ - f_777_;
		} else {
		    if (f_777_ < (float) i_762_ + 0.35F)
			break;
		    if (f_777_ + f_775_ < (float) i_762_)
			f_775_ = (float) i_762_ - f_777_;
		}
		if (i_763_ > i_761_) {
		    if (f_778_ > (float) i_763_ + 0.35F)
			break;
		    if (f_778_ + f_776_ > (float) i_763_)
			f_776_ = (float) i_763_ - f_778_;
		} else {
		    if (f_778_ < (float) i_763_ + 0.35F)
			break;
		    if (f_778_ + f_776_ < (float) i_763_)
			f_776_ = (float) i_763_ - f_778_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_777_, f_778_);
		OpenGL.glVertex2f(f_777_ + f_775_, f_778_ + f_776_);
		OpenGL.glEnd();
		f_777_ += f_779_ + f_775_;
		f_778_ += f_780_ + f_776_;
		f_775_ = f_771_;
		f_776_ = f_772_;
	    }
	}
    }
    
    public void method2460(float f, float f_781_, float f_782_, float[] fs) {
	float f_783_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[15]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[3] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[7]
		  * f_781_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[11]
		  * f_782_));
	float f_784_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[12]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[0] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[4]
		  * f_781_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[8]
		  * f_782_));
	float f_785_
	    = (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[13]
	       + ((Class87_Sub1) this).aClass276_8882.aFloatArray4141[1] * f
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[5]
		  * f_781_)
	       + (((Class87_Sub1) this).aClass276_8882.aFloatArray4141[9]
		  * f_782_));
	float f_786_
	    = (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[14]
	       + ((Class87_Sub1) this).aClass276_8897.aFloatArray4141[2] * f
	       + (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[6]
		  * f_781_)
	       + (((Class87_Sub1) this).aClass276_8897.aFloatArray4141[10]
		  * f_782_));
	fs[0] = (((Class87_Sub1) this).aFloat8833
		 + ((Class87_Sub1) this).aFloat8905 * f_784_ / f_783_);
	fs[1] = (((Class87_Sub1) this).aFloat9003
		 + ((Class87_Sub1) this).aFloat8907 * f_785_ / f_783_);
	fs[2] = f_786_;
    }
    
    public void method2410(int i, Class171 class171, int i_787_, int i_788_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(1);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_789_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_787_),
			    f_789_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_788_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8955
					 - i_787_),
			    f_789_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_788_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8955,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_787_),
			    f_789_ * (float) (((Class87_Sub1) this).anInt8919
					      - i_788_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8919);
	OpenGL.glTexCoord2f(f * (float) (((Class87_Sub1) this).anInt8891
					 - i_787_),
			    f_789_ * (float) (((Class87_Sub1) this).anInt8986
					      - i_788_));
	OpenGL.glVertex2i(((Class87_Sub1) this).anInt8891,
			  ((Class87_Sub1) this).anInt8986);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    final void method15088(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8947) {
	    ((Class87_Sub1) this).aBool8947 = bool;
	    method15054();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15089(int i, int i_790_) {
	((Class87_Sub1) this).anInt8872 = i;
	((Class87_Sub1) this).anInt8923 = i_790_;
	method15061();
	method14988();
    }
    
    public int[] method2242(int i, int i_791_, int i_792_, int i_793_) {
	if (aClass169_993 != null) {
	    int[] is = new int[i_792_ * i_793_];
	    int i_794_ = aClass169_993.method3836();
	    for (int i_795_ = 0; i_795_ < i_793_; i_795_++)
		OpenGL.glReadPixelsi(i, i_794_ - i_791_ - i_795_ - 1, i_792_,
				     1, 32993, ((Class87_Sub1) this).anInt8996,
				     is, i_795_ * i_792_);
	    return is;
	}
	return null;
    }
    
    final void method15090(int i, int i_796_, int i_797_) {
	OpenGL.glTexEnvi(8960, 34176 + i, i_796_);
	OpenGL.glTexEnvi(8960, 34192 + i, i_797_);
    }
    
    final void method15091() {
	if (((Class87_Sub1) this).anInt8827 == 2)
	    OpenGL.glDepthRange(((Class87_Sub1) this).aFloat8877,
				((Class87_Sub1) this).aFloat8901);
	else
	    OpenGL.glDepthRange(0.0F, 1.0F);
    }
    
    final void method15092() {
	if (((Class87_Sub1) this).anInt8827 == 2)
	    OpenGL.glDepthRange(((Class87_Sub1) this).aFloat8877,
				((Class87_Sub1) this).aFloat8901);
	else
	    OpenGL.glDepthRange(0.0F, 1.0F);
    }
    
    final void method15093() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    public boolean method2401() {
	return true;
    }
    
    public final void method2336(Class276 class276) {
	((Class87_Sub1) this).aClass276_9000.method5455(class276);
	method14996();
	method14995();
    }
    
    final void method15094(Class276 class276) {
	OpenGL.glLoadMatrixf(class276.aFloatArray4141, 0);
    }
    
    final void method15095(Class276 class276) {
	OpenGL.glLoadMatrixf(class276.aFloatArray4141, 0);
    }
    
    public Class276 method2154() {
	return ((Class87_Sub1) this).aClass276_8867;
    }
    
    final void method15096() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class87_Sub1) this).aClass276_8897
			      .aFloatArray4141),
			     0);
	if (((Class87_Sub1) this).aBool8916)
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	method15002();
	method14998();
    }
    
    void method15097() {
	((Class87_Sub1) this).aFloat8899
	    = (((Class87_Sub1) this).aFloat8839
	       - (float) ((Class87_Sub1) this).anInt8950
	       - ((Class87_Sub1) this).aFloat8904);
	((Class87_Sub1) this).aFloat8951
	    = (((Class87_Sub1) this).aFloat8899
	       - ((float) ((Class87_Sub1) this).anInt8949
		  * ((Class87_Sub1) this).aFloat8953));
	if (((Class87_Sub1) this).aFloat8951
	    < ((Class87_Sub1) this).aFloat8858)
	    ((Class87_Sub1) this).aFloat8951
		= ((Class87_Sub1) this).aFloat8858;
	OpenGL.glFogf(2915, ((Class87_Sub1) this).aFloat8951);
	OpenGL.glFogf(2916, ((Class87_Sub1) this).aFloat8899);
	aFloatArray9005[0] = (float) (((Class87_Sub1) this).anInt8989
				      & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff00) / 65280.0F;
	aFloatArray9005[2]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff) / 255.0F;
	OpenGL.glFogfv(2918, aFloatArray9005, 0);
    }
    
    public final Class276 method2321() {
	return new Class276(((Class87_Sub1) this).aClass276_9000);
    }
    
    public final Class276 method2412() {
	return new Class276(((Class87_Sub1) this).aClass276_9000);
    }
    
    final void method15098() {
	if (((Class87_Sub1) this).anInt8827 != 0) {
	    ((Class87_Sub1) this).anInt8827 = 0;
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15099() {
	if (((Class87_Sub1) this).anInt8827 != 0) {
	    ((Class87_Sub1) this).anInt8827 = 0;
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15100() {
	if (((Class87_Sub1) this).anInt8827 != 0) {
	    ((Class87_Sub1) this).anInt8827 = 0;
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15101() {
	if (((Class87_Sub1) this).anInt8827 != 0) {
	    ((Class87_Sub1) this).anInt8827 = 0;
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15102() {
	if (((Class87_Sub1) this).anInt8827 != 1) {
	    ((Class87_Sub1) this).anInt8827 = 1;
	    method14995();
	    method15061();
	    method14983();
	    OpenGL.glMatrixMode(5888);
	    OpenGL.glLoadIdentity();
	    ((Class87_Sub1) this).anInt8908 &= ~0x8;
	}
    }
    
    final void method15103() {
	if (((Class87_Sub1) this).anInt8827 != 2) {
	    ((Class87_Sub1) this).anInt8827 = 2;
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	    method14992();
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0x7;
	}
    }
    
    final void method15104() {
	if (((Class87_Sub1) this).anInt8827 != 2) {
	    ((Class87_Sub1) this).anInt8827 = 2;
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	    method14992();
	    method15061();
	    method14983();
	    ((Class87_Sub1) this).anInt8908 &= ~0x7;
	}
    }
    
    final void method15105() {
	((Class87_Sub1) this).aFloat8839
	    = ((Class87_Sub1) this).aClass276_9000.method5473();
	((Class87_Sub1) this).aFloat8858
	    = ((Class87_Sub1) this).aClass276_9000.method5509();
	method15129();
	if (((Class87_Sub1) this).anInt8827 == 2)
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	else if (((Class87_Sub1) this).anInt8827 == 1)
	    method14997(((Class87_Sub1) this).aClass276_8990.aFloatArray4141);
    }
    
    final void method15106() {
	((Class87_Sub1) this).aFloat8839
	    = ((Class87_Sub1) this).aClass276_9000.method5473();
	((Class87_Sub1) this).aFloat8858
	    = ((Class87_Sub1) this).aClass276_9000.method5509();
	method15129();
	if (((Class87_Sub1) this).anInt8827 == 2)
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	else if (((Class87_Sub1) this).anInt8827 == 1)
	    method14997(((Class87_Sub1) this).aClass276_8990.aFloatArray4141);
    }
    
    final void method15107() {
	((Class87_Sub1) this).aFloat8839
	    = ((Class87_Sub1) this).aClass276_9000.method5473();
	((Class87_Sub1) this).aFloat8858
	    = ((Class87_Sub1) this).aClass276_9000.method5509();
	method15129();
	if (((Class87_Sub1) this).anInt8827 == 2)
	    method14997(((Class87_Sub1) this).aClass276_9000.aFloatArray4141);
	else if (((Class87_Sub1) this).anInt8827 == 1)
	    method14997(((Class87_Sub1) this).aClass276_8990.aFloatArray4141);
    }
    
    final void method15108() {
	((Class87_Sub1) this).aClass276_8882
	    .method5455(((Class87_Sub1) this).aClass276_8897);
	((Class87_Sub1) this).aClass276_8882
	    .method5537(((Class87_Sub1) this).aClass276_9000);
	((Class87_Sub1) this).aClass276_8882
	    .method5515(((Class87_Sub1) this).aFloatArrayArray8902[0]);
	((Class87_Sub1) this).aClass276_8882
	    .method5479(((Class87_Sub1) this).aFloatArrayArray8902[1]);
	((Class87_Sub1) this).aClass276_8882
	    .method5474(((Class87_Sub1) this).aFloatArrayArray8902[2]);
	((Class87_Sub1) this).aClass276_8882
	    .method5475(((Class87_Sub1) this).aFloatArrayArray8902[3]);
	((Class87_Sub1) this).aClass276_8882
	    .method5549(((Class87_Sub1) this).aFloatArrayArray8902[4]);
	((Class87_Sub1) this).aClass276_8882
	    .method5569(((Class87_Sub1) this).aFloatArrayArray8902[5]);
    }
    
    final void method15109(float[] fs) {
	float[] fs_798_ = new float[16];
	System.arraycopy(fs, 0, fs_798_, 0, 16);
	fs_798_[1] = -fs_798_[1];
	fs_798_[5] = -fs_798_[5];
	fs_798_[9] = -fs_798_[9];
	fs_798_[13] = -fs_798_[13];
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(fs_798_, 0);
	OpenGL.glMatrixMode(5888);
    }
    
    final void method15110(float[] fs) {
	float[] fs_799_ = new float[16];
	System.arraycopy(fs, 0, fs_799_, 0, 16);
	fs_799_[1] = -fs_799_[1];
	fs_799_[5] = -fs_799_[5];
	fs_799_[9] = -fs_799_[9];
	fs_799_[13] = -fs_799_[13];
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(fs_799_, 0);
	OpenGL.glMatrixMode(5888);
    }
    
    boolean method15111() {
	return ((Class87_Sub1) this).aClass156_8965.method3691(3);
    }
    
    final void method15112(float f, float f_800_) {
	((Class87_Sub1) this).aFloat8953 = f;
	((Class87_Sub1) this).aFloat8904 = f_800_;
	method15129();
    }
    
    final void method15113(float f, float f_801_) {
	((Class87_Sub1) this).aFloat8953 = f;
	((Class87_Sub1) this).aFloat8904 = f_801_;
	method15129();
    }
    
    void method15114() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8864
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightModelfv(2899, aFloatArray9005, 0);
    }
    
    void method15115() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9005, 0);
	aFloatArray9005[0] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9005, 0);
    }
    
    void method15116() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9005, 0);
	aFloatArray9005[0] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9005, 0);
    }
    
    void method15117() {
	aFloatArray9005[0] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (((Class87_Sub1) this).aFloat8940
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9005, 0);
	aFloatArray9005[0] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8936);
	aFloatArray9005[1] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8956);
	aFloatArray9005[2] = (-((Class87_Sub1) this).aFloat8873
			      * ((Class87_Sub1) this).aFloat8938);
	aFloatArray9005[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9005, 0);
    }
    
    public boolean method2255() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		       .method16465());
    }
    
    void method15118() {
	if (((Class87_Sub1) this).aBool8947
	    && ((Class87_Sub1) this).anInt8949 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    void method15119() {
	if (((Class87_Sub1) this).aBool8947
	    && ((Class87_Sub1) this).anInt8949 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    void method15120() {
	if (((Class87_Sub1) this).aBool8947
	    && ((Class87_Sub1) this).anInt8949 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    final void method15121() {
	if (((Class87_Sub1) this).anInt8908 != 2) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15172(-2);
	    ((Class87_Sub1) this).anInt8908 = 2;
	}
    }
    
    void method15122() {
	((Class87_Sub1) this).aFloat8899
	    = (((Class87_Sub1) this).aFloat8839
	       - (float) ((Class87_Sub1) this).anInt8950
	       - ((Class87_Sub1) this).aFloat8904);
	((Class87_Sub1) this).aFloat8951
	    = (((Class87_Sub1) this).aFloat8899
	       - ((float) ((Class87_Sub1) this).anInt8949
		  * ((Class87_Sub1) this).aFloat8953));
	if (((Class87_Sub1) this).aFloat8951
	    < ((Class87_Sub1) this).aFloat8858)
	    ((Class87_Sub1) this).aFloat8951
		= ((Class87_Sub1) this).aFloat8858;
	OpenGL.glFogf(2915, ((Class87_Sub1) this).aFloat8951);
	OpenGL.glFogf(2916, ((Class87_Sub1) this).aFloat8899);
	aFloatArray9005[0] = (float) (((Class87_Sub1) this).anInt8989
				      & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff00) / 65280.0F;
	aFloatArray9005[2]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff) / 255.0F;
	OpenGL.glFogfv(2918, aFloatArray9005, 0);
    }
    
    void method15123() {
	((Class87_Sub1) this).aFloat8899
	    = (((Class87_Sub1) this).aFloat8839
	       - (float) ((Class87_Sub1) this).anInt8950
	       - ((Class87_Sub1) this).aFloat8904);
	((Class87_Sub1) this).aFloat8951
	    = (((Class87_Sub1) this).aFloat8899
	       - ((float) ((Class87_Sub1) this).anInt8949
		  * ((Class87_Sub1) this).aFloat8953));
	if (((Class87_Sub1) this).aFloat8951
	    < ((Class87_Sub1) this).aFloat8858)
	    ((Class87_Sub1) this).aFloat8951
		= ((Class87_Sub1) this).aFloat8858;
	OpenGL.glFogf(2915, ((Class87_Sub1) this).aFloat8951);
	OpenGL.glFogf(2916, ((Class87_Sub1) this).aFloat8899);
	aFloatArray9005[0] = (float) (((Class87_Sub1) this).anInt8989
				      & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff00) / 65280.0F;
	aFloatArray9005[2]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff) / 255.0F;
	OpenGL.glFogfv(2918, aFloatArray9005, 0);
    }
    
    final Class141_Sub4 method15124() {
	return (((Class87_Sub1) this).aClass103_Sub2_8968 != null
		? ((Class87_Sub1) this).aClass103_Sub2_8968.method15294()
		: null);
    }
    
    boolean method15125() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    boolean method15126() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub2_8941
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub2_8941))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    boolean method15127() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    boolean method15128() {
	if (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null) {
	    if (!((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		     .method16465()) {
		if (((Class87_Sub1) this).aClass139_8939.method3465
		    (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865))
		    ((Class87_Sub1) this).aClass162_8860.method3741();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    void method15129() {
	((Class87_Sub1) this).aFloat8899
	    = (((Class87_Sub1) this).aFloat8839
	       - (float) ((Class87_Sub1) this).anInt8950
	       - ((Class87_Sub1) this).aFloat8904);
	((Class87_Sub1) this).aFloat8951
	    = (((Class87_Sub1) this).aFloat8899
	       - ((float) ((Class87_Sub1) this).anInt8949
		  * ((Class87_Sub1) this).aFloat8953));
	if (((Class87_Sub1) this).aFloat8951
	    < ((Class87_Sub1) this).aFloat8858)
	    ((Class87_Sub1) this).aFloat8951
		= ((Class87_Sub1) this).aFloat8858;
	OpenGL.glFogf(2915, ((Class87_Sub1) this).aFloat8951);
	OpenGL.glFogf(2916, ((Class87_Sub1) this).aFloat8899);
	aFloatArray9005[0] = (float) (((Class87_Sub1) this).anInt8989
				      & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff00) / 65280.0F;
	aFloatArray9005[2]
	    = (float) (((Class87_Sub1) this).anInt8989 & 0xff) / 255.0F;
	OpenGL.glFogfv(2918, aFloatArray9005, 0);
    }
    
    final void method2188(float f, float f_802_, float f_803_, float f_804_,
			  float f_805_, float f_806_) {
	Class243_Sub47_Sub3.aFloat10973 = f;
	Class243_Sub47_Sub3.aFloat10963 = f_802_;
	Class243_Sub47_Sub3.aFloat10962 = f_803_;
    }
    
    public final boolean method2360() {
	return ((Class87_Sub1) this).aClass139_8939.method3459();
    }
    
    public Interface5 method2416(int i, int i_807_, Class173 class173,
				 Class90 class90, int i_808_) {
	return new Class243_Sub11_Sub18(this, class173, class90, i, i_807_,
					i_808_);
    }
    
    public Class86 method2087(Class98 class98, int i, int i_809_, int i_810_,
			      int i_811_) {
	return new Class86_Sub3(this, class98, i, i_810_, i_811_, i_809_);
    }
    
    public Interface5 method2418(int i, int i_812_, Class173 class173,
				 Class90 class90, int i_813_) {
	return new Class243_Sub11_Sub18(this, class173, class90, i, i_812_,
					i_813_);
    }
    
    public final void method2169(int i, float f, float f_814_, float f_815_,
				 float f_816_, float f_817_) {
	boolean bool = ((Class87_Sub1) this).anInt8935 != i;
	if (bool || ((Class87_Sub1) this).aFloat8940 != f
	    || ((Class87_Sub1) this).aFloat8873 != f_814_) {
	    ((Class87_Sub1) this).anInt8935 = i;
	    ((Class87_Sub1) this).aFloat8940 = f;
	    ((Class87_Sub1) this).aFloat8873 = f_814_;
	    if (bool) {
		((Class87_Sub1) this).aFloat8936
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff0000)
		       / 1.671168E7F);
		((Class87_Sub1) this).aFloat8956
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff00)
		       / 65280.0F);
		((Class87_Sub1) this).aFloat8938
		    = ((float) (((Class87_Sub1) this).anInt8935 & 0xff)
		       / 255.0F);
		method14984();
	    }
	    method15001();
	}
	if (((Class87_Sub1) this).aFloatArray8931[0] != f_815_
	    || ((Class87_Sub1) this).aFloatArray8931[1] != f_816_
	    || ((Class87_Sub1) this).aFloatArray8931[2] != f_817_) {
	    ((Class87_Sub1) this).aFloatArray8931[0] = f_815_;
	    ((Class87_Sub1) this).aFloatArray8931[1] = f_816_;
	    ((Class87_Sub1) this).aFloatArray8931[2] = f_817_;
	    ((Class87_Sub1) this).aFloatArray8932[0] = -f_815_;
	    ((Class87_Sub1) this).aFloatArray8932[1] = -f_816_;
	    ((Class87_Sub1) this).aFloatArray8932[2] = -f_817_;
	    float f_818_
		= (float) (1.0 / Math.sqrt((double) (f_815_ * f_815_
						     + f_816_ * f_816_
						     + f_817_ * f_817_)));
	    ((Class87_Sub1) this).aFloatArray8933[0] = f_815_ * f_818_;
	    ((Class87_Sub1) this).aFloatArray8933[1] = f_816_ * f_818_;
	    ((Class87_Sub1) this).aFloatArray8933[2] = f_817_ * f_818_;
	    ((Class87_Sub1) this).aFloatArray8934[0]
		= -((Class87_Sub1) this).aFloatArray8933[0];
	    ((Class87_Sub1) this).aFloatArray8934[1]
		= -((Class87_Sub1) this).aFloatArray8933[1];
	    ((Class87_Sub1) this).aFloatArray8934[2]
		= -((Class87_Sub1) this).aFloatArray8933[2];
	    method15002();
	    ((Class87_Sub1) this).anInt8945 = (int) (f_815_ * 256.0F / f_816_);
	    ((Class87_Sub1) this).anInt8869 = (int) (f_817_ * 256.0F / f_816_);
	}
    }
    
    final Interface11 method15130(int i, byte[] is, int i_819_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub1(this, i, is, i_819_, bool);
	return new Class152_Sub2(this, i, is, i_819_);
    }
    
    final void method15131(int i, int i_820_) {
	((Class87_Sub1) this).anInt8872 = i;
	((Class87_Sub1) this).anInt8923 = i_820_;
	method15061();
	method14988();
    }
    
    final Interface10 method15132(int i, byte[] is, int i_821_, boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, is, i_821_, bool);
	return new Class152_Sub1(this, i, is, i_821_);
    }
    
    public void method2224(boolean bool) {
	/* empty */
    }
    
    final Interface10 method15133(int i, Buffer buffer, int i_822_,
				  boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, buffer, i_822_, bool);
	return new Class152_Sub1(this, i, buffer);
    }
    
    final Interface10 method15134(int i, Buffer buffer, int i_823_,
				  boolean bool) {
	if (((Class87_Sub1) this).aBool8984
	    && (!bool || ((Class87_Sub1) this).aBool8985))
	    return new Class158_Sub2(this, i, buffer, i_823_, bool);
	return new Class152_Sub1(this, i, buffer);
    }
    
    final void method15135(int i, boolean bool, boolean bool_824_) {
	if (i != ((Class87_Sub1) this).anInt8961
	    || (((Class87_Sub1) this).aBool8916
		!= ((Class87_Sub1) this).aBool8969)) {
	    Class141_Sub3 class141_sub3 = null;
	    byte i_825_ = 0;
	    byte i_826_ = 0;
	    int i_827_ = 0;
	    byte i_828_
		= ((Class87_Sub1) this).aBool8969 ? (byte) 3 : (byte) 0;
	    if (i >= 0) {
		Class160 class160 = aClass106_981.method2798(i, -1245567803);
		if (class160.anInt1867 * 1599613663 != -1) {
		    class141_sub3 = ((Class87_Sub1) this).aClass162_8860
					.method3738(class160);
		    if (class160.aByte1847 != 0 || class160.aByte1844 != 0)
			method15027(((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1847
				     / 64.0F % 1.0F),
				    ((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1844
				     / 64.0F % 1.0F),
				    0.0F);
		    else
			method15028();
		    if (!((Class87_Sub1) this).aBool8969) {
			i_826_ = class160.aByte1863;
			i_827_ = class160.anInt1856 * 2861275;
			i_828_ = class160.aByte1862;
		    }
		    i_825_ = class160.aByte1807;
		} else
		    method15028();
	    } else
		method15028();
	    ((Class87_Sub1) this).aClass156_8965
		.method3692(i_828_, i_826_, i_827_, bool, bool_824_);
	    if (!((Class87_Sub1) this).aClass156_8965.method3693(class141_sub3,
								 i_825_)) {
		method15019(class141_sub3);
		method15020(i_825_);
	    }
	    ((Class87_Sub1) this).aBool8916 = ((Class87_Sub1) this).aBool8969;
	    ((Class87_Sub1) this).anInt8961 = i;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x7;
    }
    
    final void method15136(Interface11 interface11) {
	if (((Class87_Sub1) this).anInterface11_8959 != interface11) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34963, interface11.method28());
	    ((Class87_Sub1) this).anInterface11_8959 = interface11;
	}
    }
    
    final void method15137(Interface11 interface11) {
	if (((Class87_Sub1) this).anInterface11_8959 != interface11) {
	    if (((Class87_Sub1) this).aBool8984)
		OpenGL.glBindBufferARB(34963, interface11.method28());
	    ((Class87_Sub1) this).anInterface11_8959 = interface11;
	}
    }
    
    final void method15138(int i) {
	method15046(i, true);
    }
    
    public void method2233(int i, Class105 class105) {
	if (!((Class87_Sub1) this).aBool8969)
	    throw new RuntimeException("");
	((Class87_Sub1) this).anInt8980 = i;
	((Class87_Sub1) this).aClass105_8970 = class105;
	if (((Class87_Sub1) this).aBool8916) {
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15815();
	    ((Class156) ((Class87_Sub1) this).aClass156_8965)
		.aClass150_Sub1_1774.method15812();
	}
    }
    
    final void method15139(Class140 class140, Class140 class140_829_,
			   Class140 class140_830_, Class140 class140_831_) {
	if (class140 != null) {
	    method15010(((Class140) class140).anInterface10_1684);
	    OpenGL.glVertexPointer(((Class140) class140).aByte1681,
				   ((Class140) class140).aShort1682,
				   ((Class87_Sub1) this).anInterface10_8960
				       .method26(),
				   (((Class87_Sub1) this)
					.anInterface10_8960.method52()
				    + (long) ((Class140) class140).aByte1683));
	    OpenGL.glEnableClientState(32884);
	} else
	    OpenGL.glDisableClientState(32884);
	if (class140_829_ != null) {
	    method15010(((Class140) class140_829_).anInterface10_1684);
	    OpenGL.glNormalPointer
		(((Class140) class140_829_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_829_).aByte1683));
	    OpenGL.glEnableClientState(32885);
	} else
	    OpenGL.glDisableClientState(32885);
	if (class140_830_ != null) {
	    method15010(((Class140) class140_830_).anInterface10_1684);
	    OpenGL.glColorPointer
		(((Class140) class140_830_).aByte1681,
		 ((Class140) class140_830_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_830_).aByte1683));
	    OpenGL.glEnableClientState(32886);
	} else
	    OpenGL.glDisableClientState(32886);
	if (class140_831_ != null) {
	    method15010(((Class140) class140_831_).anInterface10_1684);
	    OpenGL.glTexCoordPointer
		(((Class140) class140_831_).aByte1681,
		 ((Class140) class140_831_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_831_).aByte1683));
	    OpenGL.glEnableClientState(32888);
	} else
	    OpenGL.glDisableClientState(32888);
    }
    
    final void method15140(Class140 class140, Class140 class140_832_,
			   Class140 class140_833_, Class140 class140_834_) {
	if (class140 != null) {
	    method15010(((Class140) class140).anInterface10_1684);
	    OpenGL.glVertexPointer(((Class140) class140).aByte1681,
				   ((Class140) class140).aShort1682,
				   ((Class87_Sub1) this).anInterface10_8960
				       .method26(),
				   (((Class87_Sub1) this)
					.anInterface10_8960.method52()
				    + (long) ((Class140) class140).aByte1683));
	    OpenGL.glEnableClientState(32884);
	} else
	    OpenGL.glDisableClientState(32884);
	if (class140_832_ != null) {
	    method15010(((Class140) class140_832_).anInterface10_1684);
	    OpenGL.glNormalPointer
		(((Class140) class140_832_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_832_).aByte1683));
	    OpenGL.glEnableClientState(32885);
	} else
	    OpenGL.glDisableClientState(32885);
	if (class140_833_ != null) {
	    method15010(((Class140) class140_833_).anInterface10_1684);
	    OpenGL.glColorPointer
		(((Class140) class140_833_).aByte1681,
		 ((Class140) class140_833_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_833_).aByte1683));
	    OpenGL.glEnableClientState(32886);
	} else
	    OpenGL.glDisableClientState(32886);
	if (class140_834_ != null) {
	    method15010(((Class140) class140_834_).anInterface10_1684);
	    OpenGL.glTexCoordPointer
		(((Class140) class140_834_).aByte1681,
		 ((Class140) class140_834_).aShort1682,
		 ((Class87_Sub1) this).anInterface10_8960.method26(),
		 (((Class87_Sub1) this).anInterface10_8960.method52()
		  + (long) ((Class140) class140_834_).aByte1683));
	    OpenGL.glEnableClientState(32888);
	} else
	    OpenGL.glDisableClientState(32888);
    }
    
    public boolean method2184() {
	return (((Class87_Sub1) this).aClass243_Sub47_Sub1_8865 != null
		&& ((Class87_Sub1) this).aClass243_Sub47_Sub1_8865
		       .method16465());
    }
    
    final void method15141(int i, int i_835_, int i_836_) {
	OpenGL.glDrawArrays(i, i_835_, i_836_);
    }
    
    final void method15142(float f, float f_837_, float f_838_, float f_839_) {
	aFloatArray9005[0] = f;
	aFloatArray9005[1] = f_837_;
	aFloatArray9005[2] = f_838_;
	aFloatArray9005[3] = f_839_;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    public final void method2161(int i, int i_840_, int i_841_) {
	if (((Class87_Sub1) this).anInt8989 != i
	    || ((Class87_Sub1) this).anInt8949 != i_840_
	    || ((Class87_Sub1) this).anInt8950 != i_841_) {
	    ((Class87_Sub1) this).anInt8989 = i;
	    ((Class87_Sub1) this).anInt8949 = i_840_;
	    ((Class87_Sub1) this).anInt8950 = i_841_;
	    method15129();
	    method15054();
	}
    }
    
    final void method15143(Interface11 interface11, int i, int i_842_,
			   int i_843_) {
	method15011(interface11);
	OpenGL.glDrawElements(i, i_843_, 5123,
			      interface11.method61() + (long) (i_842_ * 2));
    }
    
    void method15144() {
	method15172(-2);
	for (int i = ((Class87_Sub1) this).anInt8976 - 1; i >= 0; i--) {
	    method15018(i);
	    method15019(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method15022(8448, 8448);
	method15023(2, 34168, 770);
	method15028();
	((Class87_Sub1) this).anInt8944 = 1;
	OpenGL.glEnable(3042);
	OpenGL.glBlendFunc(770, 771);
	((Class87_Sub1) this).anInt8880 = 1;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, 0.0F);
	((Class87_Sub1) this).aBool8893 = true;
	OpenGL.glColorMask(true, true, true, true);
	((Class87_Sub1) this).aBool8892 = true;
	method15088(true);
	method15030(true);
	method15033(true);
	method15034(true);
	method2282(0.0F, 1.0F);
	method14993();
	((Class87_Sub1) this).anOpenGL8928.setSwapInterval(0);
	OpenGL.glShadeModel(7425);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glDepthFunc(515);
	OpenGL.glPolygonMode(1028, 6914);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadIdentity();
	OpenGL.glColorMaterial(1028, 5634);
	OpenGL.glEnable(2903);
	float[] fs = { 0.0F, 0.0F, 0.0F, 1.0F };
	for (int i = 0; i < 8; i++) {
	    int i_844_ = 16384 + i;
	    OpenGL.glLightfv(i_844_, 4608, fs, 0);
	    OpenGL.glLightf(i_844_, 4615, 0.0F);
	    OpenGL.glLightf(i_844_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class87_Sub1) this).aBool8911)
	    OpenGL.glEnable(34895);
	((Class87_Sub1) this).anInt8989 = -1;
	((Class87_Sub1) this).anInt8935 = -1;
	method2331();
	method2112();
    }
    
    final void method15145() {
	if (((Class87_Sub1) this).anInt8908 != 1) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    ((Class87_Sub1) this).anInt8908 = 1;
	}
    }
    
    final void method15146() {
	if (((Class87_Sub1) this).anInt8908 != 1) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    ((Class87_Sub1) this).anInt8908 = 1;
	}
    }
    
    final void method15147() {
	if (((Class87_Sub1) this).anInt8908 != 1) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    ((Class87_Sub1) this).anInt8908 = 1;
	}
    }
    
    final void method15148() {
	if (((Class87_Sub1) this).anInt8908 != 1) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15019(null);
	    method15172(-2);
	    method15020(1);
	    ((Class87_Sub1) this).anInt8908 = 1;
	}
    }
    
    final void method15149() {
	if (((Class87_Sub1) this).anInt8908 != 2) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15172(-2);
	    ((Class87_Sub1) this).anInt8908 = 2;
	}
    }
    
    final void method15150() {
	if (((Class87_Sub1) this).anInt8908 != 2) {
	    method14994();
	    method15088(false);
	    method15030(false);
	    method15033(false);
	    method15034(false);
	    method15172(-2);
	    ((Class87_Sub1) this).anInt8908 = 2;
	}
    }
    
    final void method15151() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    final void method15152() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    final void method15153() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    final void method15154() {
	if (((Class87_Sub1) this).anInt8908 != 8) {
	    method14982();
	    method15088(true);
	    method15033(true);
	    method15034(true);
	    method15035(1);
	    ((Class87_Sub1) this).anInt8908 = 8;
	}
    }
    
    public void method2199(int i, int i_845_, int i_846_, int i_847_,
			   int i_848_, int i_849_, Class171 class171,
			   int i_850_, int i_851_) {
	Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	Class141_Sub3_Sub1 class141_sub3_sub1
	    = ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	method15121();
	method15019(((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437);
	method15035(i_849_);
	method15022(7681, 8448);
	method15023(0, 34167, 768);
	float f
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10566);
	float f_852_
	    = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
	       / (float) ((Class141_Sub3_Sub1) class141_sub3_sub1).anInt10564);
	float f_853_ = (float) i_846_ - (float) i;
	float f_854_ = (float) i_847_ - (float) i_845_;
	float f_855_ = (float) (1.0 / Math.sqrt((double) (f_853_ * f_853_
							  + f_854_ * f_854_)));
	f_853_ *= f_855_;
	f_854_ *= f_855_;
	OpenGL.glColor4ub((byte) (i_848_ >> 16), (byte) (i_848_ >> 8),
			  (byte) i_848_, (byte) (i_848_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_850_),
			    f_852_ * (float) (i_845_ - i_851_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_845_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_846_ - i_850_),
			    f_852_ * (float) (i_847_ - i_851_));
	OpenGL.glVertex2f((float) i_846_ + f_853_ + 0.35F,
			  (float) i_847_ + f_854_ + 0.35F);
	OpenGL.glEnd();
	method15023(0, 5890, 768);
    }
    
    final void method15155(int i) {
	method15046(i, true);
    }
    
    final void method15156(int i) {
	method15046(i, true);
    }
    
    final void method15157(int i) {
	method15046(i, true);
    }
    
    public final void method2079() {
	if (aClass169_993 != null) {
	    ((Class87_Sub1) this).anInt8955 = 0;
	    ((Class87_Sub1) this).anInt8986 = 0;
	    ((Class87_Sub1) this).anInt8891 = aClass169_993.method3826();
	    ((Class87_Sub1) this).anInt8919 = aClass169_993.method3836();
	    OpenGL.glDisable(3089);
	}
    }
    
    public final int method2082() {
	return (((Class87_Sub1) this).anInt8878
		+ ((Class87_Sub1) this).anInt8920
		+ ((Class87_Sub1) this).anInt8879);
    }
    
    final void method15158(int i, boolean bool) {
	method15188(i, bool, true);
    }
    
    final void method15159(int i, boolean bool, boolean bool_856_) {
	if (i != ((Class87_Sub1) this).anInt8961
	    || (((Class87_Sub1) this).aBool8916
		!= ((Class87_Sub1) this).aBool8969)) {
	    Class141_Sub3 class141_sub3 = null;
	    byte i_857_ = 0;
	    byte i_858_ = 0;
	    int i_859_ = 0;
	    byte i_860_
		= ((Class87_Sub1) this).aBool8969 ? (byte) 3 : (byte) 0;
	    if (i >= 0) {
		Class160 class160 = aClass106_981.method2798(i, -1293800649);
		if (class160.anInt1867 * 1599613663 != -1) {
		    class141_sub3 = ((Class87_Sub1) this).aClass162_8860
					.method3738(class160);
		    if (class160.aByte1847 != 0 || class160.aByte1844 != 0)
			method15027(((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1847
				     / 64.0F % 1.0F),
				    ((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1844
				     / 64.0F % 1.0F),
				    0.0F);
		    else
			method15028();
		    if (!((Class87_Sub1) this).aBool8969) {
			i_858_ = class160.aByte1863;
			i_859_ = class160.anInt1856 * 2861275;
			i_860_ = class160.aByte1862;
		    }
		    i_857_ = class160.aByte1807;
		} else
		    method15028();
	    } else
		method15028();
	    ((Class87_Sub1) this).aClass156_8965
		.method3692(i_860_, i_858_, i_859_, bool, bool_856_);
	    if (!((Class87_Sub1) this).aClass156_8965.method3693(class141_sub3,
								 i_857_)) {
		method15019(class141_sub3);
		method15020(i_857_);
	    }
	    ((Class87_Sub1) this).aBool8916 = ((Class87_Sub1) this).aBool8969;
	    ((Class87_Sub1) this).anInt8961 = i;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x7;
    }
    
    public void method2261(int i, int i_861_, int i_862_, int i_863_,
			   int i_864_) {
	method14985();
	method15035(i_864_);
	float f = (float) i + 0.35F;
	float f_865_ = (float) i_861_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_863_ >> 16), (byte) (i_863_ >> 8),
			  (byte) i_863_, (byte) (i_863_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_865_);
	OpenGL.glVertex2f(f, f_865_ + (float) i_862_);
	OpenGL.glEnd();
    }
    
    final void method15160(int i) {
	if (((Class87_Sub1) this).anInt8995 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class87_Sub1) this).anInt8995 = i;
	}
    }
    
    public void method2197(int i, int i_866_, int i_867_, int i_868_,
			   int i_869_, int i_870_, Class171 class171,
			   int i_871_, int i_872_, int i_873_, int i_874_,
			   int i_875_) {
	if (i != i_867_ || i_866_ != i_868_) {
	    Class171_Sub1 class171_sub1 = (Class171_Sub1) class171;
	    Class141_Sub3_Sub1 class141_sub3_sub1
		= ((Class171_Sub1) class171_sub1).aClass141_Sub3_Sub1_9437;
	    method15121();
	    method15019(((Class171_Sub1) class171_sub1)
			.aClass141_Sub3_Sub1_9437);
	    method15035(i_870_);
	    method15022(7681, 8448);
	    method15023(0, 34167, 768);
	    float f = (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10565
		       / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
				  .anInt10566));
	    float f_876_
		= (((Class141_Sub3_Sub1) class141_sub3_sub1).aFloat10562
		   / (float) (((Class141_Sub3_Sub1) class141_sub3_sub1)
			      .anInt10564));
	    float f_877_ = (float) i_867_ - (float) i;
	    float f_878_ = (float) i_868_ - (float) i_866_;
	    float f_879_
		= (float) (1.0 / Math.sqrt((double) (f_877_ * f_877_
						     + f_878_ * f_878_)));
	    f_877_ *= f_879_;
	    f_878_ *= f_879_;
	    OpenGL.glColor4ub((byte) (i_869_ >> 16), (byte) (i_869_ >> 8),
			      (byte) i_869_, (byte) (i_869_ >> 24));
	    i_875_ %= i_874_ + i_873_;
	    float f_880_ = f_877_ * (float) i_873_;
	    float f_881_ = f_878_ * (float) i_873_;
	    float f_882_ = 0.0F;
	    float f_883_ = 0.0F;
	    float f_884_ = f_880_;
	    float f_885_ = f_881_;
	    if (i_875_ > i_873_) {
		f_882_ = f_877_ * (float) (i_873_ + i_874_ - i_875_);
		f_883_ = f_878_ * (float) (i_873_ + i_874_ - i_875_);
	    } else {
		f_884_ = f_877_ * (float) (i_873_ - i_875_);
		f_885_ = f_878_ * (float) (i_873_ - i_875_);
	    }
	    float f_886_ = (float) i + 0.35F + f_882_;
	    float f_887_ = (float) i_866_ + 0.35F + f_883_;
	    float f_888_ = f_877_ * (float) i_874_;
	    float f_889_ = f_878_ * (float) i_874_;
	    for (;;) {
		if (i_867_ > i) {
		    if (f_886_ > (float) i_867_ + 0.35F)
			break;
		    if (f_886_ + f_884_ > (float) i_867_)
			f_884_ = (float) i_867_ - f_886_;
		} else {
		    if (f_886_ < (float) i_867_ + 0.35F)
			break;
		    if (f_886_ + f_884_ < (float) i_867_)
			f_884_ = (float) i_867_ - f_886_;
		}
		if (i_868_ > i_866_) {
		    if (f_887_ > (float) i_868_ + 0.35F)
			break;
		    if (f_887_ + f_885_ > (float) i_868_)
			f_885_ = (float) i_868_ - f_887_;
		} else {
		    if (f_887_ < (float) i_868_ + 0.35F)
			break;
		    if (f_887_ + f_885_ < (float) i_868_)
			f_885_ = (float) i_868_ - f_887_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_886_ - (float) i_871_),
				    f_876_ * (f_887_ - (float) i_872_));
		OpenGL.glVertex2f(f_886_, f_887_);
		OpenGL.glTexCoord2f(f * (f_886_ + f_884_ - (float) i_871_),
				    f_876_ * (f_887_ + f_885_
					      - (float) i_872_));
		OpenGL.glVertex2f(f_886_ + f_884_, f_887_ + f_885_);
		OpenGL.glEnd();
		f_886_ += f_888_ + f_884_;
		f_887_ += f_889_ + f_885_;
		f_884_ = f_880_;
		f_885_ = f_881_;
	    }
	    method15023(0, 5890, 768);
	}
    }
    
    public final void method2104(Class350 class350) {
	((Class87_Sub1) this).aClass350_8896.method6638(class350);
	((Class87_Sub1) this).aClass276_8897
	    .method5513(((Class87_Sub1) this).aClass350_8896);
	((Class87_Sub1) this).aClass350_8912.method6638(class350);
	((Class87_Sub1) this).aClass350_8912.method6624();
	((Class87_Sub1) this).aClass276_8898
	    .method5513(((Class87_Sub1) this).aClass350_8912);
	method14996();
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14992();
    }
    
    public final void method2332(Class350 class350) {
	((Class87_Sub1) this).aClass350_8896.method6638(class350);
	((Class87_Sub1) this).aClass276_8897
	    .method5513(((Class87_Sub1) this).aClass350_8896);
	((Class87_Sub1) this).aClass350_8912.method6638(class350);
	((Class87_Sub1) this).aClass350_8912.method6624();
	((Class87_Sub1) this).aClass276_8898
	    .method5513(((Class87_Sub1) this).aClass350_8912);
	method14996();
	if (((Class87_Sub1) this).anInt8827 != 1)
	    method14992();
    }
    
    final void method15161(Class141 class141) {
	Class141 class141_890_ = (((Class87_Sub1) this).aClass141Array8930
				  [((Class87_Sub1) this).anInt8995]);
	if (class141_890_ != class141) {
	    if (class141 != null) {
		if (class141_890_ != null) {
		    if (((Class141) class141).anInt1693
			!= ((Class141) class141_890_).anInt1693) {
			OpenGL.glDisable(((Class141) class141_890_).anInt1693);
			OpenGL.glEnable(((Class141) class141).anInt1693);
		    }
		} else
		    OpenGL.glEnable(((Class141) class141).anInt1693);
		OpenGL.glBindTexture(((Class141) class141).anInt1693,
				     ((Class141) class141).anInt1695);
	    } else
		OpenGL.glDisable(((Class141) class141_890_).anInt1693);
	    ((Class87_Sub1) this).aClass141Array8930[(((Class87_Sub1) this)
						      .anInt8995)]
		= class141;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x1;
    }
    
    public Class103 method2214(Class103 class103, Class103 class103_891_,
			       float f, Class103 class103_892_) {
	if (class103 != null && class103_891_ != null
	    && ((Class87_Sub1) this).aBool8987
	    && ((Class87_Sub1) this).aBool8979) {
	    Class103_Sub2_Sub2 class103_sub2_sub2 = null;
	    Class103_Sub2 class103_sub2 = (Class103_Sub2) class103;
	    Class103_Sub2 class103_sub2_893_ = (Class103_Sub2) class103_891_;
	    Class141_Sub4 class141_sub4 = class103_sub2.method15294();
	    Class141_Sub4 class141_sub4_894_
		= class103_sub2_893_.method15294();
	    if (class141_sub4 != null && class141_sub4_894_ != null) {
		int i = ((((Class141_Sub4) class141_sub4).anInt10450
			  > ((Class141_Sub4) class141_sub4_894_).anInt10450)
			 ? ((Class141_Sub4) class141_sub4).anInt10450
			 : ((Class141_Sub4) class141_sub4_894_).anInt10450);
		if (class103 != class103_892_ && class103_891_ != class103_892_
		    && class103_892_ instanceof Class103_Sub2_Sub2) {
		    Class103_Sub2_Sub2 class103_sub2_sub2_895_
			= (Class103_Sub2_Sub2) class103_892_;
		    if (class103_sub2_sub2_895_.method16900() == i)
			class103_sub2_sub2 = class103_sub2_sub2_895_;
		}
		if (class103_sub2_sub2 == null)
		    class103_sub2_sub2 = new Class103_Sub2_Sub2(this, i);
		if (class103_sub2_sub2.method16902(class141_sub4,
						   class141_sub4_894_, f))
		    return class103_sub2_sub2;
	    }
	}
	return f < 0.5F ? class103 : class103_891_;
    }
    
    final void method15162(Class141 class141) {
	Class141 class141_896_ = (((Class87_Sub1) this).aClass141Array8930
				  [((Class87_Sub1) this).anInt8995]);
	if (class141_896_ != class141) {
	    if (class141 != null) {
		if (class141_896_ != null) {
		    if (((Class141) class141).anInt1693
			!= ((Class141) class141_896_).anInt1693) {
			OpenGL.glDisable(((Class141) class141_896_).anInt1693);
			OpenGL.glEnable(((Class141) class141).anInt1693);
		    }
		} else
		    OpenGL.glEnable(((Class141) class141).anInt1693);
		OpenGL.glBindTexture(((Class141) class141).anInt1693,
				     ((Class141) class141).anInt1695);
	    } else
		OpenGL.glDisable(((Class141) class141_896_).anInt1693);
	    ((Class87_Sub1) this).aClass141Array8930[(((Class87_Sub1) this)
						      .anInt8995)]
		= class141;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x1;
    }
    
    final void method15163(int i) {
	if (i == 1)
	    method15022(7681, 7681);
	else if (i == 0)
	    method15022(8448, 8448);
	else if (i == 2)
	    method15022(34165, 7681);
	else if (i == 3)
	    method15022(260, 8448);
	else if (i == 4)
	    method15022(34023, 34023);
    }
    
    public Class163 method2195(int i, int i_897_, int[][] is, int[][] is_898_,
			       int i_899_, int i_900_, int i_901_) {
	return new Class163_Sub1(this, i_900_, i_901_, i, i_897_, is, is_898_,
				 i_899_);
    }
    
    final void method15164(int i, int i_902_) {
	if (((Class87_Sub1) this).anInt8995 == 0) {
	    boolean bool = false;
	    if (((Class87_Sub1) this).anInt8954 != i) {
		OpenGL.glTexEnvi(8960, 34161, i);
		((Class87_Sub1) this).anInt8954 = i;
		bool = true;
	    }
	    if (((Class87_Sub1) this).anInt8963 != i_902_) {
		OpenGL.glTexEnvi(8960, 34162, i_902_);
		((Class87_Sub1) this).anInt8963 = i_902_;
		bool = true;
	    }
	    if (bool)
		((Class87_Sub1) this).anInt8908 &= ~0xd;
	} else {
	    OpenGL.glTexEnvi(8960, 34161, i);
	    OpenGL.glTexEnvi(8960, 34162, i_902_);
	}
    }
    
    public void method2364(int i, int i_903_) {
	int i_904_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_903_ & 0xff0000) / 1.671168E7F,
				(float) (i_903_ & 0xff00) / 65280.0F,
				(float) (i_903_ & 0xff) / 255.0F,
				(float) (i_903_ >>> 24) / 255.0F);
	    i_904_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method15034(true);
	    i_904_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_904_ |= 0x400;
	OpenGL.glClear(i_904_);
    }
    
    final void method15165(int i, int i_905_, int i_906_) {
	OpenGL.glTexEnvi(8960, 34184 + i, i_905_);
	OpenGL.glTexEnvi(8960, 34200 + i, i_906_);
    }
    
    final void method15166(int i) {
	aFloatArray9005[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9005[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9005[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    void method2315(int i, int i_907_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 35);
    }
    
    final void method15167(int i) {
	aFloatArray9005[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9005[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9005[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9005[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    void method2077(int i, int i_908_) throws Exception_Sub6 {
	try {
	    aClass169_Sub1_976.method15840();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface7_991 != null)
	    anInterface7_991.method36((byte) 94);
    }
    
    public Class86 method2304(Class98 class98, int i, int i_909_, int i_910_,
			      int i_911_) {
	return new Class86_Sub3(this, class98, i, i_910_, i_911_, i_909_);
    }
    
    final void method15168(int i) {
	if (((Class87_Sub1) this).anInt8995 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class87_Sub1) this).anInt8995 = i;
	}
    }
    
    public Interface4 method2415(int i, int i_912_, int i_913_) {
	return new Class243_Sub11_Sub18(this, Class173.aClass173_2129,
					Class90.aClass90_1043, i, i_912_,
					i_913_);
    }
    
    final void method15169(float f, float f_914_, float f_915_) {
	OpenGL.glMatrixMode(5890);
	if (((Class87_Sub1) this).aBool8909)
	    OpenGL.glLoadIdentity();
	OpenGL.glTranslatef(f, f_914_, f_915_);
	OpenGL.glMatrixMode(5888);
	((Class87_Sub1) this).aBool8909 = true;
    }
    
    final void method15170(float f, float f_916_, float f_917_, float f_918_) {
	aFloatArray9005[0] = f;
	aFloatArray9005[1] = f_916_;
	aFloatArray9005[2] = f_917_;
	aFloatArray9005[3] = f_918_;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9005, 0);
    }
    
    final void method15171(int i) {
	method15046(i, true);
    }
    
    final void method15172(int i) {
	method15046(i, true);
    }
    
    final void method15173() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    final void method15174() {
	if (((Class87_Sub1) this).aBool8909) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class87_Sub1) this).aBool8909 = false;
	}
    }
    
    public void method2165(Class350 class350, Class97 class97,
			   Class346 class346) {
	Class276 class276 = ((Class87_Sub1) this).aClass276_8913;
	class276.method5513(class350);
	class276.method5537(((Class87_Sub1) this).aClass276_8882);
	class97.method2544(class346, ((Class87_Sub1) this).aClass276_9000,
			   class276, ((Class87_Sub1) this).aFloat8833,
			   ((Class87_Sub1) this).aFloat9003,
			   ((Class87_Sub1) this).aFloat8905,
			   ((Class87_Sub1) this).aFloat8907);
    }
    
    final void method15175(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8947) {
	    ((Class87_Sub1) this).aBool8947 = bool;
	    method15054();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15176(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8947) {
	    ((Class87_Sub1) this).aBool8947 = bool;
	    method15054();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15177(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8887) {
	    ((Class87_Sub1) this).aBool8887 = bool;
	    method15059();
	    ((Class87_Sub1) this).anInt8908 &= ~0x7;
	}
    }
    
    void method15178() {
	if (((Class87_Sub1) this).aBool8887
	    && !((Class87_Sub1) this).aBool8910)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    public Class135 method2259(int i, int i_919_, boolean bool,
			       boolean bool_920_) {
	return new Class135_Sub2(this, i, i_919_, bool);
    }
    
    final void method15179(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8915) {
	    if (bool)
		OpenGL.glEnable(2929);
	    else
		OpenGL.glDisable(2929);
	    ((Class87_Sub1) this).aBool8915 = bool;
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15180(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8895) {
	    ((Class87_Sub1) this).aBool8895 = bool;
	    method15050();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15181(boolean bool) {
	if (bool != ((Class87_Sub1) this).aBool8895) {
	    ((Class87_Sub1) this).aBool8895 = bool;
	    method15050();
	    ((Class87_Sub1) this).anInt8908 &= ~0xf;
	}
    }
    
    final void method15182(int i) {
	if (((Class87_Sub1) this).anInt8944 != i) {
	    int i_921_;
	    boolean bool;
	    boolean bool_922_;
	    if (i == 1) {
		i_921_ = 1;
		bool = true;
		bool_922_ = true;
	    } else if (i == 2) {
		i_921_ = 2;
		bool = true;
		bool_922_ = false;
	    } else if (i == 128) {
		i_921_ = 3;
		bool = true;
		bool_922_ = true;
	    } else {
		i_921_ = 0;
		bool = true;
		bool_922_ = false;
	    }
	    if (bool != ((Class87_Sub1) this).aBool8892) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class87_Sub1) this).aBool8892 = bool;
	    }
	    if (bool_922_ != ((Class87_Sub1) this).aBool8893) {
		if (bool_922_)
		    OpenGL.glEnable(3008);
		else
		    OpenGL.glDisable(3008);
		((Class87_Sub1) this).aBool8893 = bool_922_;
	    }
	    if (i_921_ != ((Class87_Sub1) this).anInt8880) {
		if (i_921_ == 1) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(770, 771);
		} else if (i_921_ == 2) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(1, 1);
		} else if (i_921_ == 3) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(774, 1);
		} else
		    OpenGL.glDisable(3042);
		((Class87_Sub1) this).anInt8880 = i_921_;
	    }
	    ((Class87_Sub1) this).anInt8944 = i;
	    ((Class87_Sub1) this).anInt8908 &= ~0xc;
	}
    }
    
    public void method2453(int i, int i_923_, int i_924_, int i_925_,
			   int i_926_, int i_927_) {
	float f = (float) i + 0.35F;
	float f_928_ = (float) i_923_ + 0.35F;
	float f_929_ = f + (float) i_924_ - 1.0F;
	float f_930_ = f_928_ + (float) i_925_ - 1.0F;
	method14985();
	method15035(i_927_);
	OpenGL.glColor4ub((byte) (i_926_ >> 16), (byte) (i_926_ >> 8),
			  (byte) i_926_, (byte) (i_926_ >> 24));
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_928_);
	OpenGL.glVertex2f(f, f_930_);
	OpenGL.glVertex2f(f_929_, f_930_);
	OpenGL.glVertex2f(f_929_, f_928_);
	OpenGL.glEnd();
	if (((Class87_Sub1) this).aBool8982)
	    OpenGL.glEnable(32925);
    }
    
    final void method15183(int i) {
	if (((Class87_Sub1) this).anInt8944 != i) {
	    int i_931_;
	    boolean bool;
	    boolean bool_932_;
	    if (i == 1) {
		i_931_ = 1;
		bool = true;
		bool_932_ = true;
	    } else if (i == 2) {
		i_931_ = 2;
		bool = true;
		bool_932_ = false;
	    } else if (i == 128) {
		i_931_ = 3;
		bool = true;
		bool_932_ = true;
	    } else {
		i_931_ = 0;
		bool = true;
		bool_932_ = false;
	    }
	    if (bool != ((Class87_Sub1) this).aBool8892) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class87_Sub1) this).aBool8892 = bool;
	    }
	    if (bool_932_ != ((Class87_Sub1) this).aBool8893) {
		if (bool_932_)
		    OpenGL.glEnable(3008);
		else
		    OpenGL.glDisable(3008);
		((Class87_Sub1) this).aBool8893 = bool_932_;
	    }
	    if (i_931_ != ((Class87_Sub1) this).anInt8880) {
		if (i_931_ == 1) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(770, 771);
		} else if (i_931_ == 2) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(1, 1);
		} else if (i_931_ == 3) {
		    OpenGL.glEnable(3042);
		    OpenGL.glBlendFunc(774, 1);
		} else
		    OpenGL.glDisable(3042);
		((Class87_Sub1) this).anInt8880 = i_931_;
	    }
	    ((Class87_Sub1) this).anInt8944 = i;
	    ((Class87_Sub1) this).anInt8908 &= ~0xc;
	}
    }
    
    public final synchronized void method2419(int i) {
	int i_933_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub1) this).aClass420_8881.method7467(294527861)) {
	    Class243_Sub9 class243_sub9
		= ((Class243_Sub9)
		   ((Class87_Sub1) this).aClass420_8881.method7458(26480847));
	    anIntArray8888[i_933_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8878
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_933_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_933_, anIntArray8888, 0);
		i_933_ = 0;
	    }
	}
	if (i_933_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_933_, anIntArray8888, 0);
	    i_933_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8868.method7467(-198729472)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8868
				      .method7458(-992391420);
	    anIntArray8888[i_933_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8920
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_933_ == 1000) {
		OpenGL.glDeleteTextures(i_933_, anIntArray8888, 0);
		i_933_ = 0;
	    }
	}
	if (i_933_ > 0) {
	    OpenGL.glDeleteTextures(i_933_, anIntArray8888, 0);
	    i_933_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8883.method7467(1318083620)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8883
				      .method7458(-1011404340);
	    anIntArray8888[i_933_++] = class243_sub9.anInt8679 * 1627367037;
	    if (i_933_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_933_, anIntArray8888, 0);
		i_933_ = 0;
	    }
	}
	if (i_933_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_933_, anIntArray8888, 0);
	    i_933_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8884.method7467(-4658235)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8884
				      .method7458(-1006860979);
	    anIntArray8888[i_933_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8879
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_933_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_933_, anIntArray8888, 0);
		i_933_ = 0;
	    }
	}
	if (i_933_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_933_, anIntArray8888, 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(1842458438)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-1429841427);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub1) this).aClass420_8885.method7467(227485154)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8885.method7458(-1994787038);
	    OpenGL.glDeleteProgramARB((int) (class243.aLong3905
					     * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8886.method7467(35630922)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8886.method7458(-1325300827);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(-251510325)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-1085600796);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	((Class87_Sub1) this).aClass162_8860.method3740();
	if (method2082() > 100663296
	    && (Class46.method1238(750124791)
		> ((Class87_Sub1) this).aLong8816 + 60000L)) {
	    System.gc();
	    ((Class87_Sub1) this).aLong8816 = Class46.method1238(1463314802);
	}
	((Class87_Sub1) this).anInt8871 = i;
    }
    
    public final synchronized void method2132(int i) {
	int i_934_ = 0;
	i &= 0x7fffffff;
	while (!((Class87_Sub1) this).aClass420_8881.method7467(-59330245)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8881
				      .method7458(-1515788427);
	    anIntArray8888[i_934_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8878
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_934_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_934_, anIntArray8888, 0);
		i_934_ = 0;
	    }
	}
	if (i_934_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_934_, anIntArray8888, 0);
	    i_934_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8868.method7467(2106140847)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8868
				      .method7458(-1569648212);
	    anIntArray8888[i_934_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8920
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_934_ == 1000) {
		OpenGL.glDeleteTextures(i_934_, anIntArray8888, 0);
		i_934_ = 0;
	    }
	}
	if (i_934_ > 0) {
	    OpenGL.glDeleteTextures(i_934_, anIntArray8888, 0);
	    i_934_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8883.method7467(1060134725)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8883
				      .method7458(-224697274);
	    anIntArray8888[i_934_++] = class243_sub9.anInt8679 * 1627367037;
	    if (i_934_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_934_, anIntArray8888, 0);
		i_934_ = 0;
	    }
	}
	if (i_934_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_934_, anIntArray8888, 0);
	    i_934_ = 0;
	}
	while (!((Class87_Sub1) this).aClass420_8884.method7467(1928298493)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8884
				      .method7458(-783566123);
	    anIntArray8888[i_934_++]
		= (int) (class243_sub9.aLong3905 * -3545590250604181279L);
	    ((Class87_Sub1) this).anInt8879
		-= class243_sub9.anInt8679 * 1627367037;
	    if (i_934_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_934_, anIntArray8888, 0);
		i_934_ = 0;
	    }
	}
	if (i_934_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_934_, anIntArray8888, 0);
	    boolean bool = false;
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(-352183526)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-587265784);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	while (!((Class87_Sub1) this).aClass420_8885.method7467(2002410896)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8885.method7458(-658276711);
	    OpenGL.glDeleteProgramARB((int) (class243.aLong3905
					     * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8886.method7467(671102174)) {
	    Class243 class243
		= ((Class87_Sub1) this).aClass420_8886.method7458(-1169497635);
	    OpenGL.glDeleteShader((int) (class243.aLong3905
					 * -3545590250604181279L));
	}
	while (!((Class87_Sub1) this).aClass420_8988.method7467(761792742)) {
	    Class243_Sub9 class243_sub9
		= (Class243_Sub9) ((Class87_Sub1) this).aClass420_8988
				      .method7458(-372057518);
	    OpenGL.glDeleteLists((int) (class243_sub9.aLong3905
					* -3545590250604181279L),
				 class243_sub9.anInt8679 * 1627367037);
	}
	((Class87_Sub1) this).aClass162_8860.method3740();
	if (method2082() > 100663296
	    && (Class46.method1238(641769980)
		> ((Class87_Sub1) this).aLong8816 + 60000L)) {
	    System.gc();
	    ((Class87_Sub1) this).aLong8816 = Class46.method1238(459444667);
	}
	((Class87_Sub1) this).anInt8871 = i;
    }
    
    final synchronized void method15184(int i, int i_935_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_935_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8881.method7495(class243_sub9,
							-1876823261);
    }
    
    final synchronized void method15185(int i, int i_936_) {
	Class243_Sub9 class243_sub9 = new Class243_Sub9(i_936_);
	class243_sub9.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8868.method7495(class243_sub9,
							-393760925);
    }
    
    final synchronized void method15186(long l) {
	Class243 class243 = new Class243();
	class243.aLong3905 = l * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8886.method7495(class243, -296854026);
    }
    
    final synchronized void method15187(int i) {
	Class243 class243 = new Class243();
	class243.aLong3905 = (long) i * 7863879224277138209L;
	((Class87_Sub1) this).aClass420_8885.method7495(class243, 1181463087);
    }
    
    public boolean method2178() {
	return true;
    }
    
    final void method15188(int i, boolean bool, boolean bool_937_) {
	if (i != ((Class87_Sub1) this).anInt8961
	    || (((Class87_Sub1) this).aBool8916
		!= ((Class87_Sub1) this).aBool8969)) {
	    Class141_Sub3 class141_sub3 = null;
	    byte i_938_ = 0;
	    byte i_939_ = 0;
	    int i_940_ = 0;
	    byte i_941_
		= ((Class87_Sub1) this).aBool8969 ? (byte) 3 : (byte) 0;
	    if (i >= 0) {
		Class160 class160 = aClass106_981.method2798(i, -1288306342);
		if (class160.anInt1867 * 1599613663 != -1) {
		    class141_sub3 = ((Class87_Sub1) this).aClass162_8860
					.method3738(class160);
		    if (class160.aByte1847 != 0 || class160.aByte1844 != 0)
			method15027(((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1847
				     / 64.0F % 1.0F),
				    ((float) (((Class87_Sub1) this).anInt8871
					      % 128000)
				     / 1000.0F * (float) class160.aByte1844
				     / 64.0F % 1.0F),
				    0.0F);
		    else
			method15028();
		    if (!((Class87_Sub1) this).aBool8969) {
			i_939_ = class160.aByte1863;
			i_940_ = class160.anInt1856 * 2861275;
			i_941_ = class160.aByte1862;
		    }
		    i_938_ = class160.aByte1807;
		} else
		    method15028();
	    } else
		method15028();
	    ((Class87_Sub1) this).aClass156_8965
		.method3692(i_941_, i_939_, i_940_, bool, bool_937_);
	    if (!((Class87_Sub1) this).aClass156_8965.method3693(class141_sub3,
								 i_938_)) {
		method15019(class141_sub3);
		method15020(i_938_);
	    }
	    ((Class87_Sub1) this).aBool8916 = ((Class87_Sub1) this).aBool8969;
	    ((Class87_Sub1) this).anInt8961 = i;
	}
	((Class87_Sub1) this).anInt8908 &= ~0x7;
    }
    
    public final void method2459(int i, int i_942_, int i_943_, int i_944_) {
	if (aClass169_993 != null) {
	    if (i < 0)
		i = 0;
	    if (i_943_ > aClass169_993.method3826())
		i_943_ = aClass169_993.method3826();
	    if (i_942_ < 0)
		i_942_ = 0;
	    if (i_944_ > aClass169_993.method3836())
		i_944_ = aClass169_993.method3836();
	    ((Class87_Sub1) this).anInt8955 = i;
	    ((Class87_Sub1) this).anInt8986 = i_942_;
	    ((Class87_Sub1) this).anInt8891 = i_943_;
	    ((Class87_Sub1) this).anInt8919 = i_944_;
	    OpenGL.glEnable(3089);
	    method14988();
	}
    }
    
    public final void method2456(int i, int i_945_, int i_946_, int i_947_) {
	if (aClass169_993 != null) {
	    if (i < 0)
		i = 0;
	    if (i_946_ > aClass169_993.method3826())
		i_946_ = aClass169_993.method3826();
	    if (i_945_ < 0)
		i_945_ = 0;
	    if (i_947_ > aClass169_993.method3836())
		i_947_ = aClass169_993.method3836();
	    ((Class87_Sub1) this).anInt8955 = i;
	    ((Class87_Sub1) this).anInt8986 = i_945_;
	    ((Class87_Sub1) this).anInt8891 = i_946_;
	    ((Class87_Sub1) this).anInt8919 = i_947_;
	    OpenGL.glEnable(3089);
	    method14988();
	}
    }
    
    public final void method2225(int i, int i_948_, int i_949_, int i_950_) {
	if (aClass169_993 != null) {
	    if (i < 0)
		i = 0;
	    if (i_949_ > aClass169_993.method3826())
		i_949_ = aClass169_993.method3826();
	    if (i_948_ < 0)
		i_948_ = 0;
	    if (i_950_ > aClass169_993.method3836())
		i_950_ = aClass169_993.method3836();
	    ((Class87_Sub1) this).anInt8955 = i;
	    ((Class87_Sub1) this).anInt8986 = i_948_;
	    ((Class87_Sub1) this).anInt8891 = i_949_;
	    ((Class87_Sub1) this).anInt8919 = i_950_;
	    OpenGL.glEnable(3089);
	    method14988();
	}
    }
}
