/* Class151_Sub3 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.awt.Canvas;
import java.lang.reflect.Field;

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

import jaggl.OpenGL;

import sun.misc.Unsafe;

public class Class151_Sub3 extends Class151
{
    float aFloat9197;
    static final float aFloat9198 = 0.35F;
    boolean aBool9199;
    int[] anIntArray9200;
    static final int anInt9201 = 2;
    static final int anInt9202 = 4;
    float aFloat9203;
    float aFloat9204;
    static final int anInt9205 = 32;
    static final int anInt9206 = 32993;
    static final int anInt9207 = 5121;
    int anInt9208;
    static final int anInt9209 = 5126;
    static final int anInt9210 = 4;
    static final int anInt9211 = 7;
    static final int anInt9212 = 128;
    int anInt9213;
    float[] aFloatArray9214;
    static final int anInt9215 = 7681;
    static final int anInt9216 = 8448;
    Class656 aClass656_9217;
    static final int anInt9218 = 34023;
    static final int anInt9219 = 34165;
    static final int anInt9220 = 16;
    static final int anInt9221 = 34168;
    static final int anInt9222 = 5890;
    static final int anInt9223 = 34167;
    long[] aLongArray9224;
    static final int anInt9225 = 770;
    static final int anInt9226 = 768;
    static final int anInt9227 = 0;
    Class114 aClass114_9228;
    static final int anInt9229 = 2;
    static final int anInt9230 = 0;
    int anInt9231;
    boolean aBool9232;
    static final int anInt9233 = 3;
    int anInt9234;
    static final int anInt9235 = 2;
    Class403 aClass403_9236;
    int anInt9237;
    float aFloat9238;
    static final int anInt9239 = 8;
    Class136_Sub1 aClass136_Sub1_9240;
    int anInt9241;
    Class112 aClass112_9242;
    Class104 aClass104_9243;
    Class124 aClass124_9244;
    Class487_Sub4_Sub3 aClass487_Sub4_Sub3_9245;
    static final int anInt9246 = 5123;
    boolean aBool9247;
    int anInt9248;
    float aFloat9249;
    float[] aFloatArray9250;
    int anInt9251;
    Class111 aClass111_9252;
    int anInt9253;
    Class134_Sub2[] aClass134_Sub2Array9254;
    int anInt9255;
    static final int anInt9256 = 34166;
    NativeHeap aNativeHeap9257;
    static final int anInt9258 = 1;
    Unsafe anUnsafe9259;
    int anInt9260;
    int anInt9261;
    Class656 aClass656_9262;
    Class487_Sub4_Sub1 aClass487_Sub4_Sub1_9263;
    Class656 aClass656_9264;
    Class656 aClass656_9265;
    Class114 aClass114_9266;
    Class656 aClass656_9267;
    Class656 aClass656_9268;
    Class656 aClass656_9269;
    static final int anInt9270 = 8;
    static int[] anIntArray9271 = new int[1000];
    float aFloat9272;
    int anInt9273;
    static final int anInt9274 = 1;
    boolean aBool9275;
    boolean aBool9276;
    Class403 aClass403_9277;
    float aFloat9278;
    byte aByte9279;
    boolean aBool9280;
    static final int anInt9281 = 260;
    Class400 aClass400_9282;
    Class403 aClass403_9283;
    Class403 aClass403_9284;
    Class403 aClass403_9285;
    Class403 aClass403_9286;
    int anInt9287;
    float[][] aFloatArrayArray9288;
    float[] aFloatArray9289;
    static final int anInt9290 = -2;
    float aFloat9291;
    int anInt9292;
    int anInt9293;
    float aFloat9294;
    Class400 aClass400_9295;
    float aFloat9296;
    float aFloat9297;
    boolean aBool9298;
    static final int anInt9299 = 4;
    Class403 aClass403_9300;
    float[] aFloatArray9301;
    boolean aBool9302;
    boolean aBool9303;
    int anInt9304;
    int anInt9305;
    int anInt9306;
    int anInt9307;
    int anInt9308;
    Interface12 anInterface12_9309;
    boolean aBool9310;
    int anInt9311;
    int anInt9312;
    Class92 aClass92_9313 = new Class92();
    static int anInt9314 = 4;
    static final int anInt9315 = 1;
    boolean aBool9316;
    float[] aFloatArray9317;
    int anInt9318;
    int anInt9319;
    boolean aBool9320;
    int anInt9321;
    float aFloat9322;
    float[] aFloatArray9323;
    long aLong9324;
    float aFloat9325;
    float aFloat9326;
    boolean aBool9327;
    Class487_Sub16[] aClass487_Sub16Array9328;
    String aString9329;
    int anInt9330;
    int anInt9331;
    static final int anInt9332 = 100663296;
    boolean aBool9333;
    int anInt9334;
    int anInt9335;
    int anInt9336;
    float aFloat9337;
    float aFloat9338;
    float aFloat9339;
    float aFloat9340;
    boolean aBool9341;
    boolean aBool9342;
    int anInt9343;
    Class138 aClass138_9344;
    int anInt9345;
    boolean aBool9346;
    int anInt9347;
    int anInt9348;
    static final int anInt9349 = 1;
    boolean aBool9350;
    Class403 aClass403_9351;
    Class100[] aClass100Array9352;
    Class100_Sub3 aClass100_Sub3_9353;
    int anInt9354;
    static final int anInt9355 = 55;
    String aString9356;
    boolean aBool9357;
    Class400 aClass400_9358;
    boolean aBool9359;
    Class487_Sub4_Sub2 aClass487_Sub4_Sub2_9360;
    static float[] aFloatArray9361 = new float[4];
    int anInt9362;
    Class403 aClass403_9363;
    boolean aBool9364;
    boolean aBool9365;
    boolean aBool9366;
    float aFloat9367;
    boolean aBool9368;
    OpenGL anOpenGL9369;
    int[] anIntArray9370;
    static final int anInt9371 = 7;
    boolean aBool9372;
    Class656 aClass656_9373;
    boolean aBool9374;
    boolean aBool9375;
    boolean aBool9376;
    Interface10 anInterface10_9377;
    boolean aBool9378;
    boolean aBool9379;
    int anInt9380;
    boolean aBool9381;
    boolean aBool9382;
    boolean aBool9383;
    int anInt9384;
    static final int anInt9385 = 0;
    float aFloat9386;
    int anInt9387;
    Class134_Sub2[] aClass134_Sub2Array9388;
    Class144_Sub2_Sub1 aClass144_Sub2_Sub1_9389;
    Class87 aClass87_9390;
    Class87 aClass87_9391;
    Interface10 anInterface10_9392;
    boolean aBool9393;
    static float[] aFloatArray9394 = new float[4];
    Class487_Sub17_Sub1 aClass487_Sub17_Sub1_9395;
    boolean aBool9396;
    static final int anInt9397 = -1;
    int[] anIntArray9398;
    byte[] aByteArray9399;
    static final int anInt9400 = 3;
    boolean aBool9401;
    static final int anInt9402 = 2;
    Class144_Sub2 aClass144_Sub2_9403;
    int[] anIntArray9404;
    static final int anInt9405 = 34479;
    int[] anIntArray9406;
    int anInt9407;
    int anInt9408;
    
    public Class149 method2361(int[] is) {
	return new Class149_Sub1(this, is);
    }
    
    void method8552() {
	int i = 0;
	while (!((Class151_Sub3) this).anOpenGL9369.method1011()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class118.method1565(1000L);
	}
    }
    
    public void method2061(Class400 class400, Class150 class150,
			   Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	class150.method1984(class375, ((Class151_Sub3) this).aClass403_9285,
			    class403, ((Class151_Sub3) this).aFloat9204,
			    ((Class151_Sub3) this).aFloat9203,
			    ((Class151_Sub3) this).aFloat9291,
			    ((Class151_Sub3) this).aFloat9278);
    }
    
    public void method2176(int i, int i_0_) {
	int i_1_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_0_ & 0xff0000) / 1.671168E7F,
				(float) (i_0_ & 0xff00) / 65280.0F,
				(float) (i_0_ & 0xff) / 255.0F,
				(float) (i_0_ >>> 24) / 255.0F);
	    i_1_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method8604(true);
	    i_1_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_1_ |= 0x400;
	OpenGL.glClear(i_1_);
    }
    
    void method8553() {
	method8588(-2);
	for (int i = ((Class151_Sub3) this).anInt9347 - 1; i >= 0; i--) {
	    method8590(i);
	    method8591(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method8594(8448, 8448);
	method8595(2, 34168, 770);
	method8599();
	((Class151_Sub3) this).anInt9273 = 1;
	((Class151_Sub3) this).anInt9231 = 0;
	((Class151_Sub3) this).aBool9276 = true;
	if (((Class151_Sub3) this).aBool9383)
	    OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
	else
	    OpenGL.glBlendFunc(770, 771);
	((Class151_Sub3) this).anInt9354 = 1;
	((Class151_Sub3) this).aByte9279 = (byte) -1;
	method8610((byte) 0);
	((Class151_Sub3) this).aBool9298 = true;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, (float) ((Class151_Sub3) this).aByte9279);
	if (((Class151_Sub3) this).aBool9302) {
	    if (((Class151_Sub3) this).anInt9241 == 0)
		OpenGL.glDisable(32925);
	    else
		OpenGL.glEnable(32925);
	    OpenGL.glDisable(32926);
	}
	OpenGL.glColorMask(true, true, true, true);
	((Class151_Sub3) this).aBool9275 = true;
	method8600(true);
	method8555(true);
	method8603(true);
	method8604(true);
	method2174(0.0F, 1.0F);
	method8566();
	((Class151_Sub3) this).anOpenGL9369.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_2_ = 16384 + i;
	    OpenGL.glLightfv(i_2_, 4608, fs, 0);
	    OpenGL.glLightf(i_2_, 4615, 0.0F);
	    OpenGL.glLightf(i_2_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class151_Sub3) this).aBool9374)
	    OpenGL.glEnable(34895);
	((Class151_Sub3) this).anInt9334 = -1;
	((Class151_Sub3) this).anInt9321 = -1;
	method2221();
	method2036();
    }
    
    public Class127 method2285() {
	int i = -1;
	if (((Class151_Sub3) this).aString9329.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub3) this).aString9329.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class151_Sub3) this).aString9329.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, "OpenGL", ((Class151_Sub3) this).anInt9293,
			    ((Class151_Sub3) this).aString9356, 0L, false);
    }
    
    void method1989(int i, int i_3_) throws Exception_Sub7 {
	try {
	    aClass144_Sub1_1853.method8234();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(-1752056821);
    }
    
    void method8554() {
	((Class151_Sub3) this).aClass100Array9352
	    = new Class100[((Class151_Sub3) this).anInt9347];
	((Class151_Sub3) this).aClass100_Sub3_9353
	    = new Class100_Sub3(this, 3553, Class116.aClass116_1448,
				Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	for (int i = 0; i < 8; i++) {
	    ((Class151_Sub3) this).aClass134_Sub2Array9254[i]
		= new Class134_Sub2(this);
	    ((Class151_Sub3) this).aClass134_Sub2Array9388[i]
		= new Class134_Sub2(this);
	}
	if (((Class151_Sub3) this).aBool9364) {
	    ((Class151_Sub3) this).aClass144_Sub2_Sub1_9389
		= new Class144_Sub2_Sub1(this);
	    new Class144_Sub2_Sub1(this);
	}
    }
    
    void method2233() {
	for (Class487 class487 = ((Class151_Sub3) this).aClass656_9373
				     .method7795((short) -14533);
	     class487 != null;
	     class487 = ((Class151_Sub3) this).aClass656_9373
			    .method7798((byte) -80))
	    ((Class487_Sub26_Sub2) class487).method10271();
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1618();
	if (((Class151_Sub3) this).aBool9247) {
	    Class223.method3235(false, true, 1683401856);
	    ((Class151_Sub3) this).aBool9247 = false;
	}
    }
    
    public boolean method1995() {
	return true;
    }
    
    public boolean method1994() {
	return true;
    }
    
    final void method8555(boolean bool) {
	if (bool != ((Class151_Sub3) this).aBool9401) {
	    ((Class151_Sub3) this).aBool9401 = bool;
	    method8602();
	    ((Class151_Sub3) this).anInt9248 &= ~0x7;
	}
    }
    
    public boolean method2033() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& (((Class151_Sub3) this).anInt9241 <= 1
		    || ((Class151_Sub3) this).aBool9368));
    }
    
    public boolean method2000() {
	return true;
    }
    
    public boolean method1998() {
	return true;
    }
    
    public boolean method2001() {
	return (((Class151_Sub3) this).aBool9302
		&& (!method2107() || ((Class151_Sub3) this).aBool9368));
    }
    
    public boolean method2002() {
	return true;
    }
    
    boolean method8556() {
	return ((Class151_Sub3) this).aClass104_9243.method1408(3);
    }
    
    final void method8557() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    public final boolean method2100() {
	if (((Class151_Sub3) this).aClass124_9244 == null)
	    return false;
	return ((Class151_Sub3) this).aClass124_9244.method1619();
    }
    
    Class144_Sub1 method2053(Canvas canvas, int i, int i_4_) {
	return new Class144_Sub1_Sub3(this, canvas);
    }
    
    public void method2174(float f, float f_5_) {
	((Class151_Sub3) this).aFloat9294 = f;
	((Class151_Sub3) this).aFloat9238 = f_5_;
	method8618();
    }
    
    public int[] method2021(int i, int i_6_, int i_7_, int i_8_) {
	if (aClass144_1857 != null) {
	    int[] is = new int[i_7_ * i_8_];
	    int i_9_ = aClass144_1857.method1944();
	    for (int i_10_ = 0; i_10_ < i_8_; i_10_++)
		OpenGL.glReadPixelsi(i, i_9_ - i_6_ - i_10_ - 1, i_7_, 1,
				     32993, ((Class151_Sub3) this).anInt9384,
				     is, i_10_ * i_7_);
	    return is;
	}
	return null;
    }
    
    public void method2220() {
	if (((Class151_Sub3) this).aBool9382 && aClass144_1857 != null) {
	    int i = ((Class151_Sub3) this).anInt9306;
	    int i_11_ = ((Class151_Sub3) this).anInt9307;
	    int i_12_ = ((Class151_Sub3) this).anInt9304;
	    int i_13_ = ((Class151_Sub3) this).anInt9305;
	    method2036();
	    int i_14_ = ((Class151_Sub3) this).anInt9287;
	    int i_15_ = ((Class151_Sub3) this).anInt9311;
	    int i_16_ = ((Class151_Sub3) this).anInt9312;
	    int i_17_ = ((Class151_Sub3) this).anInt9380;
	    method2221();
	    OpenGL.glReadBuffer(1028);
	    OpenGL.glDrawBuffer(1029);
	    method8566();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8591(null);
	    method8588(-2);
	    method8592(1);
	    method8606(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, aClass144_1857.method1943(),
				aClass144_1857.method1944(), 6144);
	    OpenGL.glFlush();
	    OpenGL.glReadBuffer(1029);
	    OpenGL.glDrawBuffer(1029);
	    method2381(i, i_12_, i_11_, i_13_);
	    method2034(i_14_, i_15_, i_16_, i_17_);
	}
    }
    
    public void method2152(boolean bool) {
	/* empty */
    }
    
    public boolean method2236() {
	if (((Class151_Sub3) this).aBool9310
	    && (((Class151_Sub3) this).aLongArray9224
		[((Class151_Sub3) this).anInt9408]) != 0L)
	    return false;
	return true;
    }
    
    public void method2032(boolean bool) {
	/* empty */
    }
    
    public void method2028(int i, int i_18_, int i_19_) {
	method2071();
	if (((Class151_Sub3) this).aClass144_Sub2_9403 == null)
	    method8642(i_18_, i_19_);
	if (((Class151_Sub3) this).aClass114_9228 == null)
	    ((Class151_Sub3) this).aClass114_9228
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), true);
	else
	    ((Class114_Sub3) ((Class151_Sub3) this).aClass114_9228).method8159
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0, true);
	method2014(((Class151_Sub3) this).aClass144_Sub2_9403, (byte) 84);
	method2176(1, -16777216);
	((Class151_Sub3) this).aClass114_9228.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051, (((Class151_Sub3) this).anIntArray9404
				       [((Class151_Sub3) this).anInt9408]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub3) this).aClass144_Sub2_9403, -1660771201);
	((Class151_Sub3) this).aLongArray9224[((Class151_Sub3) this).anInt9408]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub3) this).anIntArray9406[((Class151_Sub3) this).anInt9408]
	    = i;
	if (++((Class151_Sub3) this).anInt9408 >= 3)
	    ((Class151_Sub3) this).anInt9408 = 0;
	method2134();
    }
    
    public void method2284() {
	for (int i = 0; i < 3; i++) {
	    if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224[i]);
		((Class151_Sub3) this).aLongArray9224[i] = 0L;
	    }
	}
	((Class151_Sub3) this).anInt9408 = 0;
	((Class151_Sub3) this).anInt9407 = 0;
    }
    
    long method8558(int i, int i_20_, int[] is, int[] is_21_) {
	if (((Class151_Sub3) this).aBool9310) {
	    if ((((Class151_Sub3) this).aLongArray9224
		 [((Class151_Sub3) this).anInt9407])
		!= 0L) {
		OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224
				    [((Class151_Sub3) this).anInt9407]);
		((Class151_Sub3) this).aLongArray9224[(((Class151_Sub3) this)
						       .anInt9407)]
		    = 0L;
	    }
	    OpenGL.glBindBufferARB(35051,
				   (((Class151_Sub3) this).anIntArray9404
				    [((Class151_Sub3) this).anInt9407]));
	    long l = OpenGL.glMapBufferARB(35051, 35000);
	    if (is != null) {
		int i_22_ = 0;
		for (int i_23_ = i_20_ - 1; i_23_ >= 0; i_23_--) {
		    for (int i_24_ = 0; i_24_ < i; i_24_++)
			is[i_22_++]
			    = (((Class151_Sub3) this).anUnsafe9259.getInt
			       (l + (long) ((i_23_ * i + i_24_) * 4)));
		}
		if (OpenGL.glUnmapBufferARB(35051)) {
		    /* empty */
		}
		OpenGL.glBindBufferARB(35051, 0);
		l = 0L;
	    }
	    if (++((Class151_Sub3) this).anInt9407 >= 3)
		((Class151_Sub3) this).anInt9407 = 0;
	    return l;
	}
	if (((Class151_Sub3) this).aClass114_9266 == null)
	    method8642(i, i_20_);
	if (((Class151_Sub3) this).aClass114_9228 == null)
	    ((Class151_Sub3) this).aClass114_9228
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), true);
	else
	    ((Class114_Sub3) ((Class151_Sub3) this).aClass114_9228).method8159
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0, true);
	method2014(((Class151_Sub3) this).aClass144_Sub2_9403, (byte) 55);
	method2176(1, -16777216);
	((Class151_Sub3) this).aClass114_9228.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	((Class151_Sub3) this).aClass114_9266.method1496(0, 0, i, i_20_, is,
							 is_21_, 0, i);
	method2015(((Class151_Sub3) this).aClass144_Sub2_9403, -1592801921);
	return 0L;
    }
    
    public void method2103(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    public void method2124() {
	OpenGL.glFinish();
    }
    
    void method2207(int i, int i_25_, int i_26_, int i_27_, int i_28_) {
	method8585();
	method8606(i_28_);
	float f = (float) i + 0.35F;
	float f_29_ = (float) i_25_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_27_ >> 16), (byte) (i_27_ >> 8),
			  (byte) i_27_, (byte) (i_27_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_29_);
	OpenGL.glVertex2f(f + (float) i_26_, f_29_);
	OpenGL.glEnd();
    }
    
    public void method2162(int i, int i_30_, int i_31_, int i_32_, int i_33_,
			   int i_34_) {
	float f = (float) i + 0.35F;
	float f_35_ = (float) i_30_ + 0.35F;
	float f_36_ = f + (float) i_31_;
	float f_37_ = f_35_ + (float) i_32_;
	method8585();
	method8606(i_34_);
	OpenGL.glColor4ub((byte) (i_33_ >> 16), (byte) (i_33_ >> 8),
			  (byte) i_33_, (byte) (i_33_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_35_);
	OpenGL.glVertex2f(f, f_37_);
	OpenGL.glVertex2f(f_36_, f_37_);
	OpenGL.glVertex2f(f_36_, f_35_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    void method2051(int i, int i_38_, int i_39_, int i_40_, int i_41_) {
	method8585();
	method8606(i_41_);
	float f = (float) i + 0.35F;
	float f_42_ = (float) i_38_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_40_ >> 16), (byte) (i_40_ >> 8),
			  (byte) i_40_, (byte) (i_40_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_42_);
	OpenGL.glVertex2f(f + (float) i_39_, f_42_);
	OpenGL.glEnd();
    }
    
    void method2216(int i, int i_43_, int i_44_, int i_45_, int i_46_) {
	if (i_44_ < 0)
	    i_44_ = -i_44_;
	if (i + i_44_ >= ((Class151_Sub3) this).anInt9306
	    && i - i_44_ <= ((Class151_Sub3) this).anInt9307
	    && i_43_ + i_44_ >= ((Class151_Sub3) this).anInt9304
	    && i_43_ - i_44_ <= ((Class151_Sub3) this).anInt9305) {
	    method8585();
	    method8606(i_46_);
	    OpenGL.glColor4ub((byte) (i_45_ >> 16), (byte) (i_45_ >> 8),
			      (byte) i_45_, (byte) (i_45_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_47_ = (float) i_43_ + 0.35F;
	    int i_48_ = i_44_ << 1;
	    if ((float) i_48_ < ((Class151_Sub3) this).aFloat9386) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_47_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_47_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_47_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_47_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_48_ <= ((Class151_Sub3) this).aFloat9367) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_48_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_47_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_47_);
		int i_49_ = 262144 / (6 * i_44_);
		if (i_49_ <= 64)
		    i_49_ = 64;
		else if (i_49_ > 512)
		    i_49_ = 512;
		i_49_ = Class148.method1973(i_49_, (byte) 22);
		OpenGL.glVertex2f(f + (float) i_44_, f_47_);
		for (int i_50_ = 16384 - i_49_; i_50_ > 0; i_50_ -= i_49_)
		    OpenGL.glVertex2f(f + (Class113.aFloatArray1444[i_50_]
					   * (float) i_44_),
				      f_47_ + (Class113.aFloatArray1443[i_50_]
					       * (float) i_44_));
		OpenGL.glVertex2f(f + (float) i_44_, f_47_);
		OpenGL.glEnd();
	    }
	}
    }
    
    public int method2168() {
	if (((Class151_Sub3) this).aBool9310) {
	    if ((((Class151_Sub3) this).aLongArray9224
		 [((Class151_Sub3) this).anInt9407])
		== 0L)
		return -1;
	    int i
		= OpenGL.glClientWaitSync((((Class151_Sub3) this)
					   .aLongArray9224
					   [((Class151_Sub3) this).anInt9407]),
					  0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return i != 37147 ? (((Class151_Sub3) this).anIntArray9406
				 [((Class151_Sub3) this).anInt9407]) : -1;
	}
	return -1;
    }
    
    void method2395(int i, int i_51_, int i_52_, int i_53_, int i_54_) {
	method8585();
	method8606(i_54_);
	float f = (float) i + 0.35F;
	float f_55_ = (float) i_51_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_53_ >> 16), (byte) (i_53_ >> 8),
			  (byte) i_53_, (byte) (i_53_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_55_);
	OpenGL.glVertex2f(f, f_55_ + (float) i_52_);
	OpenGL.glEnd();
    }
    
    public void method2055(int i, int i_56_, int i_57_, int i_58_, int i_59_,
			   int i_60_, int i_61_, int i_62_, int i_63_) {
	if (i != i_57_ || i_56_ != i_58_) {
	    method8585();
	    method8606(i_60_);
	    float f = (float) i_57_ - (float) i;
	    float f_64_ = (float) i_58_ - (float) i_56_;
	    float f_65_
		= (float) (1.0 / Math.sqrt((double) (f * f + f_64_ * f_64_)));
	    f *= f_65_;
	    f_64_ *= f_65_;
	    OpenGL.glColor4ub((byte) (i_59_ >> 16), (byte) (i_59_ >> 8),
			      (byte) i_59_, (byte) (i_59_ >> 24));
	    i_63_ %= i_62_ + i_61_;
	    float f_66_ = f * (float) i_61_;
	    float f_67_ = f_64_ * (float) i_61_;
	    float f_68_ = 0.0F;
	    float f_69_ = 0.0F;
	    float f_70_ = f_66_;
	    float f_71_ = f_67_;
	    if (i_63_ > i_61_) {
		f_68_ = f * (float) (i_61_ + i_62_ - i_63_);
		f_69_ = f_64_ * (float) (i_61_ + i_62_ - i_63_);
	    } else {
		f_70_ = f * (float) (i_61_ - i_63_);
		f_71_ = f_64_ * (float) (i_61_ - i_63_);
	    }
	    float f_72_ = (float) i + 0.35F + f_68_;
	    float f_73_ = (float) i_56_ + 0.35F + f_69_;
	    float f_74_ = f * (float) i_62_;
	    float f_75_ = f_64_ * (float) i_62_;
	    for (;;) {
		if (i_57_ > i) {
		    if (f_72_ > (float) i_57_ + 0.35F)
			break;
		    if (f_72_ + f_70_ > (float) i_57_)
			f_70_ = (float) i_57_ - f_72_;
		} else {
		    if (f_72_ < (float) i_57_ + 0.35F)
			break;
		    if (f_72_ + f_70_ < (float) i_57_)
			f_70_ = (float) i_57_ - f_72_;
		}
		if (i_58_ > i_56_) {
		    if (f_73_ > (float) i_58_ + 0.35F)
			break;
		    if (f_73_ + f_71_ > (float) i_58_)
			f_71_ = (float) i_58_ - f_73_;
		} else {
		    if (f_73_ < (float) i_58_ + 0.35F)
			break;
		    if (f_73_ + f_71_ < (float) i_58_)
			f_71_ = (float) i_58_ - f_73_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_72_, f_73_);
		OpenGL.glVertex2f(f_72_ + f_70_, f_73_ + f_71_);
		OpenGL.glEnd();
		f_72_ += f_74_ + f_70_;
		f_73_ += f_75_ + f_71_;
		f_70_ = f_66_;
		f_71_ = f_67_;
	    }
	}
    }
    
    public void method2054(int i, int i_76_, int i_77_, int i_78_, int i_79_,
			   int i_80_, Class131 class131, int i_81_,
			   int i_82_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(i_80_);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_83_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	float f_84_ = (float) i_77_ - (float) i;
	float f_85_ = (float) i_78_ - (float) i_76_;
	float f_86_ = (float) (1.0 / Math.sqrt((double) (f_84_ * f_84_
							 + f_85_ * f_85_)));
	f_84_ *= f_86_;
	f_85_ *= f_86_;
	OpenGL.glColor4ub((byte) (i_79_ >> 16), (byte) (i_79_ >> 8),
			  (byte) i_79_, (byte) (i_79_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_81_),
			    f_83_ * (float) (i_76_ - i_82_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_76_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_77_ - i_81_),
			    f_83_ * (float) (i_78_ - i_82_));
	OpenGL.glVertex2f((float) i_77_ + f_84_ + 0.35F,
			  (float) i_78_ + f_85_ + 0.35F);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    void method8559() {
	int i = 0;
	while (!((Class151_Sub3) this).anOpenGL9369.method1011()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class118.method1565(1000L);
	}
    }
    
    public void method2057(int i, int i_87_, int i_88_, int i_89_, int i_90_,
			   int i_91_, int i_92_) {
	OpenGL.glLineWidth((float) i_91_);
	method2093(i, i_87_, i_88_, i_89_, i_90_, i_92_);
	OpenGL.glLineWidth(1.0F);
    }
    
    public final void method2191(int i, int i_93_, int i_94_) {
	if (((Class151_Sub3) this).anInt9334 != i
	    || ((Class151_Sub3) this).anInt9335 != i_93_
	    || ((Class151_Sub3) this).anInt9336 != i_94_) {
	    ((Class151_Sub3) this).anInt9334 = i;
	    ((Class151_Sub3) this).anInt9335 = i_93_;
	    ((Class151_Sub3) this).anInt9336 = i_94_;
	    method8630();
	    method8574();
	}
    }
    
    public void method2113(float f, float f_95_, float f_96_, float[] fs) {
	float f_97_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * f_95_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * f_96_));
	float f_98_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_95_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_96_));
	if (f_97_ < -f_98_ || f_97_ > f_98_) {
	    float[] fs_99_ = fs;
	    float[] fs_100_ = fs;
	    fs[2] = Float.NaN;
	    fs_100_[1] = Float.NaN;
	    fs_99_[0] = Float.NaN;
	} else {
	    float f_101_
		= (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		      * f)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		      * f_95_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		      * f_96_));
	    if (f_101_ < -f_98_ || f_101_ > f_98_) {
		float[] fs_102_ = fs;
		float[] fs_103_ = fs;
		fs[2] = Float.NaN;
		fs_103_[1] = Float.NaN;
		fs_102_[0] = Float.NaN;
	    } else {
		float f_104_ = ((((Class151_Sub3) this).aClass403_9351
				 .aFloatArray4592[13])
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[1]) * f
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[5]) * f_95_
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[9]) * f_96_);
		if (f_104_ < -f_98_ || f_104_ > f_98_) {
		    float[] fs_105_ = fs;
		    float[] fs_106_ = fs;
		    fs[2] = Float.NaN;
		    fs_106_[1] = Float.NaN;
		    fs_105_[0] = Float.NaN;
		} else {
		    float f_107_ = ((((Class151_Sub3) this).aClass403_9283
				     .aFloatArray4592[14])
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[2]) * f
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[6]) * f_95_
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[10]) * f_96_);
		    fs[0] = (((Class151_Sub3) this).aFloat9204
			     + (((Class151_Sub3) this).aFloat9291 * f_101_
				/ f_98_));
		    fs[1] = (((Class151_Sub3) this).aFloat9203
			     + (((Class151_Sub3) this).aFloat9278 * f_104_
				/ f_98_));
		    fs[2] = f_107_;
		}
	    }
	}
    }
    
    public boolean method2376() {
	return ((Class151_Sub3) this).aBool9310;
    }
    
    void method2348(int i, int i_108_, int i_109_, int i_110_, int i_111_) {
	if (i_109_ < 0)
	    i_109_ = -i_109_;
	if (i + i_109_ >= ((Class151_Sub3) this).anInt9306
	    && i - i_109_ <= ((Class151_Sub3) this).anInt9307
	    && i_108_ + i_109_ >= ((Class151_Sub3) this).anInt9304
	    && i_108_ - i_109_ <= ((Class151_Sub3) this).anInt9305) {
	    method8585();
	    method8606(i_111_);
	    OpenGL.glColor4ub((byte) (i_110_ >> 16), (byte) (i_110_ >> 8),
			      (byte) i_110_, (byte) (i_110_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_112_ = (float) i_108_ + 0.35F;
	    int i_113_ = i_109_ << 1;
	    if ((float) i_113_ < ((Class151_Sub3) this).aFloat9386) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_112_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_112_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_112_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_112_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_113_ <= ((Class151_Sub3) this).aFloat9367) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_113_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_112_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_112_);
		int i_114_ = 262144 / (6 * i_109_);
		if (i_114_ <= 64)
		    i_114_ = 64;
		else if (i_114_ > 512)
		    i_114_ = 512;
		i_114_ = Class148.method1973(i_114_, (byte) 104);
		OpenGL.glVertex2f(f + (float) i_109_, f_112_);
		for (int i_115_ = 16384 - i_114_; i_115_ > 0; i_115_ -= i_114_)
		    OpenGL.glVertex2f(f + (Class113.aFloatArray1444[i_115_]
					   * (float) i_109_),
				      f_112_ + (Class113.aFloatArray1443
						[i_115_]) * (float) i_109_);
		OpenGL.glVertex2f(f + (float) i_109_, f_112_);
		OpenGL.glEnd();
	    }
	}
    }
    
    Class144_Sub1 method2333(Canvas canvas, int i, int i_116_) {
	return new Class144_Sub1_Sub3(this, canvas);
    }
    
    public Class487_Sub26 method2062(int i) {
	Class487_Sub26_Sub2 class487_sub26_sub2 = new Class487_Sub26_Sub2(i);
	((Class151_Sub3) this).aClass656_9373.method7791(class487_sub26_sub2,
							 (byte) 3);
	return class487_sub26_sub2;
    }
    
    public void method1992(Class487_Sub26 class487_sub26) {
	((Class151_Sub3) this).aNativeHeap9257
	    = (((Class487_Sub26_Sub2) (Class487_Sub26_Sub2) class487_sub26)
	       .aNativeHeap11315);
	if (((Class151_Sub3) this).anInterface10_9392 == null) {
	    Class487_Sub17_Sub1 class487_sub17_sub1
		= new Class487_Sub17_Sub1(80);
	    if (((Class151_Sub3) this).aBool9359) {
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
	    } else {
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
	    }
	    ((Class151_Sub3) this).anInterface10_9392
		= method8580(20, class487_sub17_sub1.aByteArray10193,
			     class487_sub17_sub1.anInt10192 * -1980757211,
			     false);
	    ((Class151_Sub3) this).aClass87_9390
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      3, 0);
	    ((Class151_Sub3) this).aClass87_9391
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      2, 12);
	    ((Class151_Sub3) this).aClass92_9313.method1255(this);
	}
    }
    
    public String method2005() {
	String string = "Caps: 2:";
	String string_117_ = ":";
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9241).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9384).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9347).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9362).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9319).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9386).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9367).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9359 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9396 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9393 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9346 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9327 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9302 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9378 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9232 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9379 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9381 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9372 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9375 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9320 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9374 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9199 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9364 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9365 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9366 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9376 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9382 ? 1 : 0).append
		     (string_117_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9383 ? 1 : 0).toString();
	return string;
    }
    
    public void method2314() {
	((Class151_Sub3) this).aBool9341 = false;
    }
    
    public Class131 method2146(int i, int i_118_, int[] is, int[] is_119_) {
	return Class131_Sub1.method8122(this, i, i_118_, is, is_119_);
    }
    
    public void method2074(int i, Class131 class131, int i_120_, int i_121_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(1);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_122_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_120_),
			    f_122_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_121_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_120_),
			    f_122_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_121_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_120_),
			    f_122_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_121_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_120_),
			    f_122_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_121_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public Class152 method2075(Class4 class4, Class153[] class153s,
			       boolean bool) {
	return new Class152_Sub2(this, class4, class153s, bool);
    }
    
    public void method2069(int i) {
	/* empty */
    }
    
    public Class134 method2249(Class139 class139, int i, int i_123_,
			       int i_124_, int i_125_) {
	return new Class134_Sub2(this, class139, i, i_124_, i_125_, i_123_);
    }
    
    public int method2080(int i, int i_126_) {
	return i & i_126_ ^ i_126_;
    }
    
    public Class132 method2286(int i, int i_127_, int[][] is, int[][] is_128_,
			       int i_129_, int i_130_, int i_131_) {
	return new Class132_Sub3(this, i_130_, i_131_, i, i_127_, is, is_128_,
				 i_129_);
    }
    
    public Class131 method2310(int i, int i_132_, int[] is, int[] is_133_) {
	return Class131_Sub1.method8122(this, i, i_132_, is, is_133_);
    }
    
    Class144_Sub1 method2334(Canvas canvas, int i, int i_134_) {
	return new Class144_Sub1_Sub3(this, canvas);
    }
    
    public int[] method2150() {
	int[] is = new int[1];
	OpenGL.glGetIntegerv(34466, is, 0);
	int i = is[0];
	if (i == 0)
	    return null;
	int[] is_135_ = new int[i];
	OpenGL.glGetIntegerv(34467, is_135_, 0);
	return is_135_;
    }
    
    public void method2110(int i, Class138 class138) {
	((Class151_Sub3) this).anInt9343 = i;
	((Class151_Sub3) this).aClass138_9344 = class138;
	((Class151_Sub3) this).aBool9341 = true;
    }
    
    public void method2111(int i, Class138 class138) {
	if (!((Class151_Sub3) this).aBool9341)
	    throw new RuntimeException("");
	((Class151_Sub3) this).anInt9343 = i;
	((Class151_Sub3) this).aClass138_9344 = class138;
	if (((Class151_Sub3) this).aBool9342) {
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8125();
	}
    }
    
    public void method2327() {
	((Class151_Sub3) this).aBool9341 = false;
    }
    
    public void method2221() {
	((Class151_Sub3) this).anInt9287 = 0;
	((Class151_Sub3) this).anInt9311 = 0;
	((Class151_Sub3) this).anInt9312 = aClass144_1857.method1943();
	((Class151_Sub3) this).anInt9380 = aClass144_1857.method1944();
	method8561();
    }
    
    public void method2034(int i, int i_136_, int i_137_, int i_138_) {
	((Class151_Sub3) this).anInt9287 = i;
	((Class151_Sub3) this).anInt9311 = i_136_;
	((Class151_Sub3) this).anInt9312 = i_137_;
	((Class151_Sub3) this).anInt9380 = i_138_;
	method8561();
    }
    
    public void method2193(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9287;
	is[1] = ((Class151_Sub3) this).anInt9311;
	is[2] = ((Class151_Sub3) this).anInt9312;
	is[3] = ((Class151_Sub3) this).anInt9380;
    }
    
    public int method2167() {
	if (((Class151_Sub3) this).aBool9310) {
	    if ((((Class151_Sub3) this).aLongArray9224
		 [((Class151_Sub3) this).anInt9407])
		== 0L)
		return -1;
	    int i
		= OpenGL.glClientWaitSync((((Class151_Sub3) this)
					   .aLongArray9224
					   [((Class151_Sub3) this).anInt9407]),
					  0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return i != 37147 ? (((Class151_Sub3) this).anIntArray9406
				 [((Class151_Sub3) this).anInt9407]) : -1;
	}
	return -1;
    }
    
    public final void method2040(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9306;
	is[1] = ((Class151_Sub3) this).anInt9304;
	is[2] = ((Class151_Sub3) this).anInt9307;
	is[3] = ((Class151_Sub3) this).anInt9305;
    }
    
    void method8560() {
	OpenGL.glLightfv(16384, 4611, ((Class151_Sub3) this).aFloatArray9323,
			 0);
	OpenGL.glLightfv(16385, 4611, ((Class151_Sub3) this).aFloatArray9250,
			 0);
    }
    
    public final void method2381(int i, int i_139_, int i_140_, int i_141_) {
	if (aClass144_1857 != null) {
	    if (i < 0)
		i = 0;
	    if (i_140_ > aClass144_1857.method1943())
		i_140_ = aClass144_1857.method1943();
	    if (i_139_ < 0)
		i_139_ = 0;
	    if (i_141_ > aClass144_1857.method1944())
		i_141_ = aClass144_1857.method1944();
	    ((Class151_Sub3) this).anInt9306 = i;
	    ((Class151_Sub3) this).anInt9304 = i_139_;
	    ((Class151_Sub3) this).anInt9307 = i_140_;
	    ((Class151_Sub3) this).anInt9305 = i_141_;
	    OpenGL.glEnable(3089);
	    method8562();
	}
    }
    
    public final void method2038(int i, int i_142_, int i_143_, int i_144_) {
	if (((Class151_Sub3) this).anInt9306 < i)
	    ((Class151_Sub3) this).anInt9306 = i;
	if (((Class151_Sub3) this).anInt9307 > i_143_)
	    ((Class151_Sub3) this).anInt9307 = i_143_;
	if (((Class151_Sub3) this).anInt9304 < i_142_)
	    ((Class151_Sub3) this).anInt9304 = i_142_;
	if (((Class151_Sub3) this).anInt9305 > i_144_)
	    ((Class151_Sub3) this).anInt9305 = i_144_;
	OpenGL.glEnable(3089);
	method8562();
    }
    
    public boolean method2141() {
	return (((Class151_Sub3) this).aBool9302
		&& (!method2107() || ((Class151_Sub3) this).aBool9368));
    }
    
    final void method8561() {
	if (aClass144_1857 != null) {
	    int i;
	    int i_145_;
	    int i_146_;
	    int i_147_;
	    if (((Class151_Sub3) this).anInt9387 == 2) {
		i = ((Class151_Sub3) this).anInt9287;
		i_145_ = ((Class151_Sub3) this).anInt9311;
		i_146_ = ((Class151_Sub3) this).anInt9312;
		i_147_ = ((Class151_Sub3) this).anInt9380;
	    } else {
		i = 0;
		i_145_ = 0;
		i_146_ = aClass144_1857.method1943();
		i_147_ = aClass144_1857.method1944();
	    }
	    if (i_146_ < 1)
		i_146_ = 1;
	    if (i_147_ < 1)
		i_147_ = 1;
	    OpenGL.glViewport(((Class151_Sub3) this).anInt9308 + i,
			      (((Class151_Sub3) this).anInt9213
			       + aClass144_1857.method1944() - i_145_
			       - i_147_),
			      i_146_, i_147_);
	    ((Class151_Sub3) this).aFloat9291
		= (float) ((Class151_Sub3) this).anInt9312 / 2.0F;
	    ((Class151_Sub3) this).aFloat9278
		= (float) ((Class151_Sub3) this).anInt9380 / 2.0F;
	    ((Class151_Sub3) this).aFloat9204
		= ((float) ((Class151_Sub3) this).anInt9287
		   + ((Class151_Sub3) this).aFloat9291);
	    ((Class151_Sub3) this).aFloat9203
		= ((float) ((Class151_Sub3) this).anInt9311
		   + ((Class151_Sub3) this).aFloat9278);
	}
    }
    
    public int method2407(int i, int i_148_) {
	return i & i_148_ ^ i_148_;
    }
    
    final void method8562() {
	if (aClass144_1857 != null
	    && (((Class151_Sub3) this).anInt9306
		< ((Class151_Sub3) this).anInt9307)
	    && (((Class151_Sub3) this).anInt9304
		< ((Class151_Sub3) this).anInt9305))
	    OpenGL.glScissor((((Class151_Sub3) this).anInt9308
			      + ((Class151_Sub3) this).anInt9306),
			     (((Class151_Sub3) this).anInt9213
			      + aClass144_1857.method1944()
			      - ((Class151_Sub3) this).anInt9305),
			     (((Class151_Sub3) this).anInt9307
			      - ((Class151_Sub3) this).anInt9306),
			     (((Class151_Sub3) this).anInt9305
			      - ((Class151_Sub3) this).anInt9304));
	else
	    OpenGL.glScissor(0, 0, 0, 0);
    }
    
    final void method8563() {
	OpenGL.glPushMatrix();
    }
    
    final void method8564(Class403 class403) {
	OpenGL.glLoadMatrixf(class403.aFloatArray4592, 0);
    }
    
    final void method8565() {
	OpenGL.glPopMatrix();
    }
    
    public final void method2392(Class400 class400) {
	((Class151_Sub3) this).aClass400_9282.method4807(class400);
	((Class151_Sub3) this).aClass403_9283
	    .method4865(((Class151_Sub3) this).aClass400_9282);
	((Class151_Sub3) this).aClass400_9358.method4807(class400);
	((Class151_Sub3) this).aClass400_9358.method4845();
	((Class151_Sub3) this).aClass403_9284
	    .method4865(((Class151_Sub3) this).aClass400_9358);
	method8569();
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8656();
    }
    
    public Class400 method2301() {
	return new Class400(((Class151_Sub3) this).aClass400_9282);
    }
    
    public final void method1996() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    public final void method2087(Class403 class403) {
	((Class151_Sub3) this).aClass403_9285.method4864(class403);
	method8569();
	method8605();
    }
    
    public final Class403 method2088() {
	return new Class403(((Class151_Sub3) this).aClass403_9285);
    }
    
    final void method8566() {
	if (((Class151_Sub3) this).anInt9387 != 0) {
	    ((Class151_Sub3) this).anInt9387 = 0;
	    method8561();
	    method8618();
	    ((Class151_Sub3) this).anInt9248 &= ~0xf;
	}
    }
    
    final void method8567() {
	if (((Class151_Sub3) this).anInt9387 != 1) {
	    ((Class151_Sub3) this).anInt9387 = 1;
	    method8605();
	    method8561();
	    method8618();
	    OpenGL.glMatrixMode(5888);
	    OpenGL.glLoadIdentity();
	    ((Class151_Sub3) this).anInt9248 &= ~0x8;
	}
    }
    
    final void method8568() {
	if (((Class151_Sub3) this).anInt9387 != 2) {
	    ((Class151_Sub3) this).anInt9387 = 2;
	    method8570(((Class151_Sub3) this).aClass403_9285.aFloatArray4592);
	    method8656();
	    method8561();
	    method8618();
	    ((Class151_Sub3) this).anInt9248 &= ~0x7;
	}
    }
    
    public void method2023(int i, int i_149_, int i_150_, int i_151_,
			   int i_152_, int i_153_) {
	method8585();
	method8606(i_153_);
	float f = (float) i_150_ - (float) i;
	float f_154_ = (float) i_151_ - (float) i_149_;
	if (f == 0.0F && f_154_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_155_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_154_ * f_154_)));
	    f *= f_155_;
	    f_154_ *= f_155_;
	}
	OpenGL.glColor4ub((byte) (i_152_ >> 16), (byte) (i_152_ >> 8),
			  (byte) i_152_, (byte) (i_152_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_149_ + 0.35F);
	OpenGL.glVertex2f((float) i_150_ + f + 0.35F,
			  (float) i_151_ + f_154_ + 0.35F);
	OpenGL.glEnd();
    }
    
    final void method8569() {
	((Class151_Sub3) this).aClass403_9351
	    .method4864(((Class151_Sub3) this).aClass403_9283);
	((Class151_Sub3) this).aClass403_9351
	    .method4863(((Class151_Sub3) this).aClass403_9285);
	((Class151_Sub3) this).aClass403_9351
	    .method4907(((Class151_Sub3) this).aFloatArrayArray9288[0]);
	((Class151_Sub3) this).aClass403_9351
	    .method4882(((Class151_Sub3) this).aFloatArrayArray9288[1]);
	((Class151_Sub3) this).aClass403_9351
	    .method4878(((Class151_Sub3) this).aFloatArrayArray9288[2]);
	((Class151_Sub3) this).aClass403_9351
	    .method4879(((Class151_Sub3) this).aFloatArrayArray9288[3]);
	((Class151_Sub3) this).aClass403_9351
	    .method4905(((Class151_Sub3) this).aFloatArrayArray9288[4]);
	((Class151_Sub3) this).aClass403_9351
	    .method4875(((Class151_Sub3) this).aFloatArrayArray9288[5]);
    }
    
    final void method8570(float[] fs) {
	float[] fs_156_ = new float[16];
	System.arraycopy(fs, 0, fs_156_, 0, 16);
	fs_156_[1] = -fs_156_[1];
	fs_156_[5] = -fs_156_[5];
	fs_156_[9] = -fs_156_[9];
	fs_156_[13] = -fs_156_[13];
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(fs_156_, 0);
	OpenGL.glMatrixMode(5888);
    }
    
    public void method2297(boolean bool) {
	((Class151_Sub3) this).aBool9303 = bool;
	method8624();
    }
    
    public int method2276() {
	return 4;
    }
    
    public void method2208(int i, Class487_Sub16[] class487_sub16s) {
	for (int i_157_ = 0; i_157_ < i; i_157_++)
	    ((Class151_Sub3) this).aClass487_Sub16Array9328[i_157_]
		= class487_sub16s[i_157_];
	((Class151_Sub3) this).anInt9330 = i;
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8571();
    }
    
    void method8571() {
	int i;
	for (i = 0; i < ((Class151_Sub3) this).anInt9330; i++) {
	    Class487_Sub16 class487_sub16
		= ((Class151_Sub3) this).aClass487_Sub16Array9328[i];
	    int i_158_ = 16386 + i;
	    aFloatArray9394[0] = (float) class487_sub16.method9196(1904601732);
	    aFloatArray9394[1]
		= (float) class487_sub16.method9176(-1909900871);
	    aFloatArray9394[2] = (float) class487_sub16.method9175(-64375987);
	    aFloatArray9394[3] = 1.0F;
	    OpenGL.glLightfv(i_158_, 4611, aFloatArray9394, 0);
	    int i_159_ = class487_sub16.method9179(254841388);
	    float f = class487_sub16.method9174((byte) 46) / 255.0F;
	    aFloatArray9394[0] = (float) (i_159_ >> 16 & 0xff) * f;
	    aFloatArray9394[1] = (float) (i_159_ >> 8 & 0xff) * f;
	    aFloatArray9394[2] = (float) (i_159_ & 0xff) * f;
	    OpenGL.glLightfv(i_158_, 4609, aFloatArray9394, 0);
	    OpenGL.glLightf(i_158_, 4617,
			    (1.0F
			     / (float) (class487_sub16.method9194((byte) 29)
					* class487_sub16
					      .method9194((byte) 80))));
	    OpenGL.glEnable(i_158_);
	}
	for (/**/; i < ((Class151_Sub3) this).anInt9251; i++)
	    OpenGL.glDisable(16386 + i);
	((Class151_Sub3) this).anInt9251 = ((Class151_Sub3) this).anInt9330;
    }
    
    public final void method2089(float f) {
	if (((Class151_Sub3) this).aFloat9325 != f) {
	    ((Class151_Sub3) this).aFloat9325 = f;
	    method8632();
	}
    }
    
    public final void method2037(int i, float f, float f_160_, float f_161_,
				 float f_162_, float f_163_) {
	boolean bool = ((Class151_Sub3) this).anInt9321 != i;
	if (bool || ((Class151_Sub3) this).aFloat9326 != f
	    || ((Class151_Sub3) this).aFloat9197 != f_160_) {
	    ((Class151_Sub3) this).anInt9321 = i;
	    ((Class151_Sub3) this).aFloat9326 = f;
	    ((Class151_Sub3) this).aFloat9197 = f_160_;
	    if (bool) {
		((Class151_Sub3) this).aFloat9322
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff0000)
		       / 1.671168E7F);
		((Class151_Sub3) this).aFloat9249
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff00)
		       / 65280.0F);
		((Class151_Sub3) this).aFloat9272
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff)
		       / 255.0F);
		method8632();
	    }
	    method8573();
	}
	if (((Class151_Sub3) this).aFloatArray9317[0] != f_161_
	    || ((Class151_Sub3) this).aFloatArray9317[1] != f_162_
	    || ((Class151_Sub3) this).aFloatArray9317[2] != f_163_) {
	    ((Class151_Sub3) this).aFloatArray9317[0] = f_161_;
	    ((Class151_Sub3) this).aFloatArray9317[1] = f_162_;
	    ((Class151_Sub3) this).aFloatArray9317[2] = f_163_;
	    ((Class151_Sub3) this).aFloatArray9214[0] = -f_161_;
	    ((Class151_Sub3) this).aFloatArray9214[1] = -f_162_;
	    ((Class151_Sub3) this).aFloatArray9214[2] = -f_163_;
	    float f_164_
		= (float) (1.0 / Math.sqrt((double) (f_161_ * f_161_
						     + f_162_ * f_162_
						     + f_163_ * f_163_)));
	    ((Class151_Sub3) this).aFloatArray9323[0] = f_161_ * f_164_;
	    ((Class151_Sub3) this).aFloatArray9323[1] = f_162_ * f_164_;
	    ((Class151_Sub3) this).aFloatArray9323[2] = f_163_ * f_164_;
	    ((Class151_Sub3) this).aFloatArray9250[0]
		= -((Class151_Sub3) this).aFloatArray9323[0];
	    ((Class151_Sub3) this).aFloatArray9250[1]
		= -((Class151_Sub3) this).aFloatArray9323[1];
	    ((Class151_Sub3) this).aFloatArray9250[2]
		= -((Class151_Sub3) this).aFloatArray9323[2];
	    method8560();
	    ((Class151_Sub3) this).anInt9331
		= (int) (f_161_ * 256.0F / f_162_);
	    ((Class151_Sub3) this).anInt9318
		= (int) (f_163_ * 256.0F / f_162_);
	}
    }
    
    public Interface18 method2112(int i, int i_165_, Class116 class116,
				  Class155 class155, int i_166_) {
	return new Class487_Sub35_Sub3(this, class116, class155, i, i_165_,
				       i_166_);
    }
    
    public boolean method2240() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		       .method9073());
    }
    
    final void method8572(float f, float f_167_) {
	((Class151_Sub3) this).aFloat9339 = f;
	((Class151_Sub3) this).aFloat9340 = f_167_;
	method8630();
    }
    
    void method8573() {
	aFloatArray9361[0] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9361, 0);
	aFloatArray9361[0] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9361, 0);
    }
    
    public long method2177(int i, int i_168_) {
	return method8558(i, i_168_, null, null);
    }
    
    void method8574() {
	if (((Class151_Sub3) this).aBool9333
	    && ((Class151_Sub3) this).anInt9335 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    void method2052() {
	for (Class487 class487 = ((Class151_Sub3) this).aClass656_9373
				     .method7795((short) -12631);
	     class487 != null;
	     class487 = ((Class151_Sub3) this).aClass656_9373
			    .method7798((byte) -84))
	    ((Class487_Sub26_Sub2) class487).method10271();
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1618();
	if (((Class151_Sub3) this).aBool9247) {
	    Class223.method3235(false, true, -378183779);
	    ((Class151_Sub3) this).aBool9247 = false;
	}
    }
    
    public Class136 method2095(int i) {
	return (((Class151_Sub3) this).aBool9320
		? new Class136_Sub1_Sub1(this, i) : null);
    }
    
    public Class136 method2266(Class136 class136, Class136 class136_169_,
			       float f, Class136 class136_170_) {
	if (class136 != null && class136_169_ != null
	    && ((Class151_Sub3) this).aBool9320
	    && ((Class151_Sub3) this).aBool9364) {
	    Class136_Sub1_Sub2 class136_sub1_sub2 = null;
	    Class136_Sub1 class136_sub1 = (Class136_Sub1) class136;
	    Class136_Sub1 class136_sub1_171_ = (Class136_Sub1) class136_169_;
	    Class100_Sub2 class100_sub2 = class136_sub1.method8507();
	    Class100_Sub2 class100_sub2_172_ = class136_sub1_171_.method8507();
	    if (class100_sub2 != null && class100_sub2_172_ != null) {
		int i = ((((Class100_Sub2) class100_sub2).anInt8595
			  > ((Class100_Sub2) class100_sub2_172_).anInt8595)
			 ? ((Class100_Sub2) class100_sub2).anInt8595
			 : ((Class100_Sub2) class100_sub2_172_).anInt8595);
		if (class136 != class136_170_ && class136_169_ != class136_170_
		    && class136_170_ instanceof Class136_Sub1_Sub2) {
		    Class136_Sub1_Sub2 class136_sub1_sub2_173_
			= (Class136_Sub1_Sub2) class136_170_;
		    if (class136_sub1_sub2_173_.method10214() == i)
			class136_sub1_sub2 = class136_sub1_sub2_173_;
		}
		if (class136_sub1_sub2 == null)
		    class136_sub1_sub2 = new Class136_Sub1_Sub2(this, i);
		if (class136_sub1_sub2.method10215(class100_sub2,
						   class100_sub2_172_, f))
		    return class136_sub1_sub2;
	    }
	}
	return f < 0.5F ? class136 : class136_169_;
    }
    
    public final void method2097(Class136 class136) {
	((Class151_Sub3) this).aClass136_Sub1_9240 = (Class136_Sub1) class136;
    }
    
    void method8575() {
	OpenGL.glLightfv(16384, 4611, ((Class151_Sub3) this).aFloatArray9323,
			 0);
	OpenGL.glLightfv(16385, 4611, ((Class151_Sub3) this).aFloatArray9250,
			 0);
    }
    
    public final void method2098(int i, int i_174_, int i_175_, int i_176_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1646(i, i_174_, i_175_,
							     i_176_);
    }
    
    public final void method2099(int i, int i_177_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1623(i, i_177_);
    }
    
    public void method2030(int i, int i_178_, int[] is, int[] is_179_) {
	method8558(i, i_178_, is, is_179_);
    }
    
    public void method2214(int i, int i_180_, int i_181_, int i_182_,
			   int i_183_, int i_184_, int i_185_, int i_186_,
			   int i_187_) {
	if (i != i_181_ || i_180_ != i_182_) {
	    method8585();
	    method8606(i_184_);
	    float f = (float) i_181_ - (float) i;
	    float f_188_ = (float) i_182_ - (float) i_180_;
	    float f_189_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_188_ * f_188_)));
	    f *= f_189_;
	    f_188_ *= f_189_;
	    OpenGL.glColor4ub((byte) (i_183_ >> 16), (byte) (i_183_ >> 8),
			      (byte) i_183_, (byte) (i_183_ >> 24));
	    i_187_ %= i_186_ + i_185_;
	    float f_190_ = f * (float) i_185_;
	    float f_191_ = f_188_ * (float) i_185_;
	    float f_192_ = 0.0F;
	    float f_193_ = 0.0F;
	    float f_194_ = f_190_;
	    float f_195_ = f_191_;
	    if (i_187_ > i_185_) {
		f_192_ = f * (float) (i_185_ + i_186_ - i_187_);
		f_193_ = f_188_ * (float) (i_185_ + i_186_ - i_187_);
	    } else {
		f_194_ = f * (float) (i_185_ - i_187_);
		f_195_ = f_188_ * (float) (i_185_ - i_187_);
	    }
	    float f_196_ = (float) i + 0.35F + f_192_;
	    float f_197_ = (float) i_180_ + 0.35F + f_193_;
	    float f_198_ = f * (float) i_186_;
	    float f_199_ = f_188_ * (float) i_186_;
	    for (;;) {
		if (i_181_ > i) {
		    if (f_196_ > (float) i_181_ + 0.35F)
			break;
		    if (f_196_ + f_194_ > (float) i_181_)
			f_194_ = (float) i_181_ - f_196_;
		} else {
		    if (f_196_ < (float) i_181_ + 0.35F)
			break;
		    if (f_196_ + f_194_ < (float) i_181_)
			f_194_ = (float) i_181_ - f_196_;
		}
		if (i_182_ > i_180_) {
		    if (f_197_ > (float) i_182_ + 0.35F)
			break;
		    if (f_197_ + f_195_ > (float) i_182_)
			f_195_ = (float) i_182_ - f_197_;
		} else {
		    if (f_197_ < (float) i_182_ + 0.35F)
			break;
		    if (f_197_ + f_195_ < (float) i_182_)
			f_195_ = (float) i_182_ - f_197_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_196_, f_197_);
		OpenGL.glVertex2f(f_196_ + f_194_, f_197_ + f_195_);
		OpenGL.glEnd();
		f_196_ += f_198_ + f_194_;
		f_197_ += f_199_ + f_195_;
		f_194_ = f_190_;
		f_195_ = f_191_;
	    }
	}
    }
    
    public Class114 method2090(Class153 class153, boolean bool) {
	int[] is = class153.method2455(false);
	Class114 class114
	    = method2067(is, 0, class153.method2474(), class153.method2474(),
			 class153.method2441(), 16711680);
	class114.method1553(class153.method2442(), class153.method2444(),
			    class153.method2473(), class153.method2475());
	return class114;
    }
    
    public void method2102(float f, float f_200_, float f_201_, float f_202_,
			   float f_203_) {
	Class487_Sub4_Sub1.aFloat11253 = f;
	Class487_Sub4_Sub1.aFloat11250 = f_200_;
	Class487_Sub4_Sub1.aFloat11251 = f_201_;
	Class487_Sub4_Sub1.aFloat11252 = f_202_;
	Class487_Sub4_Sub1.aFloat11254 = f_203_;
    }
    
    boolean method8576() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub2_9360 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub2_9360))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public void method2105(Class149 class149, float f, Class149 class149_204_,
			   float f_205_, Class149 class149_206_,
			   float f_207_) {
	int i = 0;
	if (class149_206_ == null && f_207_ > 0.0F)
	    f_207_ = 0.0F;
	if (class149_204_ == null && f_205_ > 0.0F) {
	    class149_204_ = class149_206_;
	    class149_206_ = null;
	    f_205_ = f_207_;
	    f_207_ = 0.0F;
	}
	if (class149 == null && f > 0.0F) {
	    class149 = class149_204_;
	    class149_204_ = class149_206_;
	    class149_206_ = null;
	    f = f_205_;
	    f_205_ = f_207_;
	    f_207_ = 0.0F;
	}
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[0]
	    = (Class149_Sub1) class149;
	Class487_Sub4_Sub2.aFloatArray11277[0] = f;
	if (f > 0.0F)
	    i++;
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[1]
	    = (Class149_Sub1) class149_204_;
	Class487_Sub4_Sub2.aFloatArray11277[1] = f_205_;
	if (f_205_ > 0.0F)
	    i++;
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[2]
	    = (Class149_Sub1) class149_206_;
	Class487_Sub4_Sub2.aFloatArray11277[2] = f_207_;
	if (f_207_ > 0.0F)
	    i++;
	Class487_Sub4_Sub2.anInt11271 = i;
	Class487_Sub4_Sub2.aFloat11272 = 1.0F - (f + f_205_ + f_207_);
    }
    
    public final boolean method2398() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public final void method2086() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
	    && ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245.method9073()) {
	    ((Class151_Sub3) this).aClass124_9244
		.method1625(((Class151_Sub3) this).aClass487_Sub4_Sub3_9245);
	    ((Class151_Sub3) this).aClass112_9242.method1482();
	}
    }
    
    final void method8577() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    final void method2109(float f, float f_208_, float f_209_, float f_210_,
			  float f_211_, float f_212_) {
	Class487_Sub4_Sub3.aFloat11337 = f;
	Class487_Sub4_Sub3.aFloat11324 = f_208_;
	Class487_Sub4_Sub3.aFloat11321 = f_209_;
    }
    
    final void method8578() {
	if (((Class151_Sub3) this).anInt9248 != 8) {
	    method8568();
	    method8600(true);
	    method8603(true);
	    method8604(true);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 8;
	}
    }
    
    public Interface16 method2019(int i, int i_213_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_213_);
    }
    
    public Interface16 method2020(int i, int i_214_, int i_215_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_214_,
				       i_215_);
    }
    
    public Interface18 method2101(int i, int i_216_, Class116 class116,
				  Class155 class155, int i_217_) {
	return new Class487_Sub35_Sub3(this, class116, class155, i, i_216_,
				       i_217_);
    }
    
    final Interface12 method8579(int i, byte[] is, int i_218_, boolean bool) {
	if (((Class151_Sub3) this).aBool9346
	    && (!bool || ((Class151_Sub3) this).aBool9327))
	    return new Class93_Sub2(this, i, is, i_218_, bool);
	return new Class101_Sub1(this, i, is, i_218_);
    }
    
    final Interface10 method8580(int i, byte[] is, int i_219_, boolean bool) {
	if (((Class151_Sub3) this).aBool9346
	    && (!bool || ((Class151_Sub3) this).aBool9327))
	    return new Class93_Sub1(this, i, is, i_219_, bool);
	return new Class101_Sub2(this, i, is, i_219_);
    }
    
    final void method8581(Interface10 interface10) {
	if (((Class151_Sub3) this).anInterface10_9377 != interface10) {
	    if (((Class151_Sub3) this).aBool9346)
		OpenGL.glBindBufferARB(34962, interface10.method1());
	    ((Class151_Sub3) this).anInterface10_9377 = interface10;
	}
    }
    
    final void method8582(Interface12 interface12) {
	if (((Class151_Sub3) this).anInterface12_9309 != interface12) {
	    if (((Class151_Sub3) this).aBool9346)
		OpenGL.glBindBufferARB(34963, interface12.method1());
	    ((Class151_Sub3) this).anInterface12_9309 = interface12;
	}
    }
    
    final void method8583(int i, int i_220_, int i_221_) {
	OpenGL.glDrawArrays(i, i_220_, i_221_);
    }
    
    final void method8584(Interface12 interface12, int i, int i_222_,
			  int i_223_) {
	method8582(interface12);
	OpenGL.glDrawElements(i, i_223_, 5123,
			      interface12.method2() + (long) (i_222_ * 2));
    }
    
    final void method8585() {
	if (((Class151_Sub3) this).anInt9248 != 1) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8591(null);
	    method8588(-2);
	    method8592(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 1;
	}
    }
    
    final void method8586() {
	if (((Class151_Sub3) this).anInt9248 != 2) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 2;
	}
    }
    
    final void method8587() {
	if (((Class151_Sub3) this).anInt9248 != 4) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 4;
	}
    }
    
    public boolean method2189() {
	return true;
    }
    
    final void method8588(int i) {
	method8646(i, true);
    }
    
    final void method8589() {
	((Class151_Sub3) this).aFloat9297
	    = ((Class151_Sub3) this).aClass403_9285.method4877();
	((Class151_Sub3) this).aFloat9296
	    = ((Class151_Sub3) this).aClass403_9285.method4876();
	method8630();
	if (((Class151_Sub3) this).anInt9387 == 2)
	    method8570(((Class151_Sub3) this).aClass403_9285.aFloatArray4592);
	else if (((Class151_Sub3) this).anInt9387 == 1)
	    method8570(((Class151_Sub3) this).aClass403_9286.aFloatArray4592);
    }
    
    final void method8590(int i) {
	if (((Class151_Sub3) this).anInt9237 != i) {
	    OpenGL.glActiveTexture(33984 + i);
	    ((Class151_Sub3) this).anInt9237 = i;
	}
    }
    
    final void method8591(Class100 class100) {
	Class100 class100_224_ = (((Class151_Sub3) this).aClass100Array9352
				  [((Class151_Sub3) this).anInt9237]);
	if (class100_224_ != class100) {
	    if (class100 != null) {
		if (class100_224_ != null) {
		    if (((Class100) class100).anInt1347
			!= ((Class100) class100_224_).anInt1347) {
			OpenGL.glDisable(((Class100) class100_224_).anInt1347);
			OpenGL.glEnable(((Class100) class100).anInt1347);
		    }
		} else
		    OpenGL.glEnable(((Class100) class100).anInt1347);
		OpenGL.glBindTexture(((Class100) class100).anInt1347,
				     ((Class100) class100).anInt1346);
	    } else
		OpenGL.glDisable(((Class100) class100_224_).anInt1347);
	    ((Class151_Sub3) this).aClass100Array9352[(((Class151_Sub3) this)
						       .anInt9237)]
		= class100;
	}
	((Class151_Sub3) this).anInt9248 &= ~0x1;
    }
    
    final void method8592(int i) {
	if (i == 1)
	    method8594(7681, 7681);
	else if (i == 0)
	    method8594(8448, 8448);
	else if (i == 2)
	    method8594(34165, 7681);
	else if (i == 3)
	    method8594(260, 8448);
	else if (i == 4)
	    method8594(34023, 34023);
    }
    
    final void method8593() {
	OpenGL.glPopMatrix();
    }
    
    final void method8594(int i, int i_225_) {
	if (((Class151_Sub3) this).anInt9237 == 0) {
	    boolean bool = false;
	    if (((Class151_Sub3) this).anInt9348 != i) {
		OpenGL.glTexEnvi(8960, 34161, i);
		((Class151_Sub3) this).anInt9348 = i;
		bool = true;
	    }
	    if (((Class151_Sub3) this).anInt9292 != i_225_) {
		OpenGL.glTexEnvi(8960, 34162, i_225_);
		((Class151_Sub3) this).anInt9292 = i_225_;
		bool = true;
	    }
	    if (bool)
		((Class151_Sub3) this).anInt9248 &= ~0xd;
	} else {
	    OpenGL.glTexEnvi(8960, 34161, i);
	    OpenGL.glTexEnvi(8960, 34162, i_225_);
	}
    }
    
    final void method8595(int i, int i_226_, int i_227_) {
	OpenGL.glTexEnvi(8960, 34176 + i, i_226_);
	OpenGL.glTexEnvi(8960, 34192 + i, i_227_);
    }
    
    final void method8596(int i, int i_228_, int i_229_) {
	OpenGL.glTexEnvi(8960, 34184 + i, i_228_);
	OpenGL.glTexEnvi(8960, 34200 + i, i_229_);
    }
    
    final void method8597(int i) {
	aFloatArray9361[0] = (float) (i & 0xff0000) / 1.671168E7F;
	aFloatArray9361[1] = (float) (i & 0xff00) / 65280.0F;
	aFloatArray9361[2] = (float) (i & 0xff) / 255.0F;
	aFloatArray9361[3] = (float) (i >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9361, 0);
    }
    
    public int method2135(int i, int i_230_) {
	return i | i_230_;
    }
    
    final void method8598(float f, float f_231_, float f_232_) {
	OpenGL.glMatrixMode(5890);
	if (((Class151_Sub3) this).aBool9350)
	    OpenGL.glLoadIdentity();
	OpenGL.glTranslatef(f, f_231_, f_232_);
	OpenGL.glMatrixMode(5888);
	((Class151_Sub3) this).aBool9350 = true;
    }
    
    final void method8599() {
	if (((Class151_Sub3) this).aBool9350) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class151_Sub3) this).aBool9350 = false;
	}
    }
    
    final void method8600(boolean bool) {
	if (bool != ((Class151_Sub3) this).aBool9333) {
	    ((Class151_Sub3) this).aBool9333 = bool;
	    method8574();
	    ((Class151_Sub3) this).anInt9248 &= ~0xf;
	}
    }
    
    final void method8601(boolean bool) {
	if (bool != ((Class151_Sub3) this).aBool9316) {
	    ((Class151_Sub3) this).aBool9316 = bool;
	    method8602();
	}
    }
    
    void method8602() {
	if (((Class151_Sub3) this).aBool9401
	    && !((Class151_Sub3) this).aBool9316)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    final void method8603(boolean bool) {
	if (bool != ((Class151_Sub3) this).aBool9280) {
	    if (bool)
		OpenGL.glEnable(2929);
	    else
		OpenGL.glDisable(2929);
	    ((Class151_Sub3) this).aBool9280 = bool;
	    ((Class151_Sub3) this).anInt9248 &= ~0xf;
	}
    }
    
    final void method8604(boolean bool) {
	if (bool != ((Class151_Sub3) this).aBool9357) {
	    ((Class151_Sub3) this).aBool9357 = bool;
	    method8624();
	    ((Class151_Sub3) this).anInt9248 &= ~0xf;
	}
    }
    
    final void method8605() {
	((Class151_Sub3) this).aFloat9297
	    = ((Class151_Sub3) this).aClass403_9285.method4877();
	((Class151_Sub3) this).aFloat9296
	    = ((Class151_Sub3) this).aClass403_9285.method4876();
	method8630();
	if (((Class151_Sub3) this).anInt9387 == 2)
	    method8570(((Class151_Sub3) this).aClass403_9285.aFloatArray4592);
	else if (((Class151_Sub3) this).anInt9387 == 1)
	    method8570(((Class151_Sub3) this).aClass403_9286.aFloatArray4592);
    }
    
    final void method8606(int i) {
	if (((Class151_Sub3) this).anInt9273 != i) {
	    int i_233_;
	    boolean bool;
	    boolean bool_234_;
	    boolean bool_235_;
	    if (i == 1) {
		i_233_ = 1;
		bool = true;
		bool_234_ = true;
		bool_235_ = true;
	    } else if (i == 2) {
		i_233_ = 2;
		bool = true;
		bool_234_ = false;
		bool_235_ = true;
	    } else if (i == 128) {
		i_233_ = 3;
		bool = true;
		bool_234_ = true;
		bool_235_ = true;
	    } else if (i == 3) {
		i_233_ = 0;
		bool = true;
		bool_234_ = true;
		bool_235_ = false;
	    } else {
		i_233_ = 0;
		bool = true;
		bool_234_ = false;
		bool_235_ = false;
	    }
	    if (bool != ((Class151_Sub3) this).aBool9275) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class151_Sub3) this).aBool9275 = bool;
	    }
	    if (bool_234_ != ((Class151_Sub3) this).aBool9298) {
		((Class151_Sub3) this).aBool9298 = bool_234_;
		method8609();
	    }
	    if (bool_235_ != ((Class151_Sub3) this).aBool9276) {
		((Class151_Sub3) this).aBool9276 = bool_235_;
		method8628();
	    }
	    if (i_233_ != ((Class151_Sub3) this).anInt9354) {
		((Class151_Sub3) this).anInt9354 = i_233_;
		method8607();
	    }
	    ((Class151_Sub3) this).anInt9273 = i;
	    ((Class151_Sub3) this).anInt9248 &= ~0xc;
	}
    }
    
    public final void method2091(int i) {
	((Class151_Sub3) this).anInt9255 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class151_Sub3) this).anInt9255++;
	((Class151_Sub3) this).anInt9208
	    = 1 << ((Class151_Sub3) this).anInt9255;
    }
    
    final void method8607() {
	if (((Class151_Sub3) this).aBool9383) {
	    int i = 0;
	    int i_236_ = 0;
	    if (((Class151_Sub3) this).anInt9231 == 0) {
		i = 0;
		i_236_ = 0;
	    } else if (((Class151_Sub3) this).anInt9231 == 1) {
		i = 1;
		i_236_ = 0;
	    } else if (((Class151_Sub3) this).anInt9231 == 2) {
		i = 1;
		i_236_ = 1;
	    } else if (((Class151_Sub3) this).anInt9231 == 3) {
		i = 0;
		i_236_ = 1;
	    }
	    if (((Class151_Sub3) this).anInt9354 == 1)
		OpenGL.glBlendFuncSeparate(770, 771, i, i_236_);
	    else if (((Class151_Sub3) this).anInt9354 == 2)
		OpenGL.glBlendFuncSeparate(1, 1, i, i_236_);
	    else if (((Class151_Sub3) this).anInt9354 == 3)
		OpenGL.glBlendFuncSeparate(774, 1, i, i_236_);
	    else if (((Class151_Sub3) this).anInt9354 == 0)
		OpenGL.glBlendFuncSeparate(1, 0, i, i_236_);
	} else if (((Class151_Sub3) this).anInt9354 == 1) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(770, 771);
	} else if (((Class151_Sub3) this).anInt9354 == 2) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(1, 1);
	} else if (((Class151_Sub3) this).anInt9354 == 3) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(774, 1);
	} else
	    OpenGL.glDisable(3042);
    }
    
    final void method8608(int i) {
	if (((Class151_Sub3) this).anInt9231 != i) {
	    ((Class151_Sub3) this).anInt9231 = i;
	    method8607();
	}
    }
    
    final void method8609() {
	if (((Class151_Sub3) this).aBool9298)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (((Class151_Sub3) this).aByte9279
					 & 0xff) / 255.0F);
	if (((Class151_Sub3) this).anInt9241 > 0) {
	    if (((Class151_Sub3) this).aByte9279 == 0)
		OpenGL.glDisable(32926);
	    else
		OpenGL.glEnable(32926);
	}
    }
    
    final void method8610(byte i) {
	if (((Class151_Sub3) this).aByte9279 != i) {
	    ((Class151_Sub3) this).aByte9279 = i;
	    if (i == 0) {
		method8608(2);
		method8606(1);
	    } else {
		method8608(3);
		method8606(3);
	    }
	    method8609();
	}
    }
    
    public Class403 method2076() {
	return ((Class151_Sub3) this).aClass403_9277;
    }
    
    public final synchronized void method1993(int i) {
	int i_237_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub3) this).aClass656_9264.method7825(-403644425)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9264
				       .method7792(1563014143);
	    anIntArray9271[i_237_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9261
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_237_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_237_, anIntArray9271, 0);
		i_237_ = 0;
	    }
	}
	if (i_237_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_237_, anIntArray9271, 0);
	    i_237_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9217.method7825(1257440230)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9217
				       .method7792(-1745716894);
	    anIntArray9271[i_237_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9260
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_237_ == 1000) {
		OpenGL.glDeleteTextures(i_237_, anIntArray9271, 0);
		i_237_ = 0;
	    }
	}
	if (i_237_ > 0) {
	    OpenGL.glDeleteTextures(i_237_, anIntArray9271, 0);
	    i_237_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9265.method7825(1414227357)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9265
				       .method7792(283235680);
	    anIntArray9271[i_237_++] = class487_sub28.anInt10251 * -1323364665;
	    if (i_237_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_237_, anIntArray9271, 0);
		i_237_ = 0;
	    }
	}
	if (i_237_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_237_, anIntArray9271, 0);
	    i_237_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9267.method7825(-445071815)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9267
				       .method7792(1781367931);
	    anIntArray9271[i_237_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9234
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_237_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_237_, anIntArray9271, 0);
		i_237_ = 0;
	    }
	}
	if (i_237_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_237_, anIntArray9271, 0);
	    boolean bool = false;
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(-293462528)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(160273578);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub3) this).aClass656_9268.method7825(1478654667)) {
	    Class487 class487 = ((Class151_Sub3) this).aClass656_9268
				    .method7792(-2069214358);
	    OpenGL.glDeleteProgramARB((int) (class487.aLong6694
					     * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9269.method7825(1272620807)) {
	    Class487 class487
		= ((Class151_Sub3) this).aClass656_9269.method7792(-790910325);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(-76645352)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(1595367941);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	((Class151_Sub3) this).aClass112_9242.method1481();
	if (method2353() > 100663296
	    && (Class222.method3225(2007836228)
		> ((Class151_Sub3) this).aLong9324 + 60000L)) {
	    System.gc();
	    ((Class151_Sub3) this).aLong9324 = Class222.method3225(1936003832);
	}
	((Class151_Sub3) this).anInt9253 = i;
    }
    
    public void method2016(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    final synchronized void method8611(int i, int i_238_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_238_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub3) this).aClass656_9217.method7791(class487_sub28,
							 (byte) 3);
    }
    
    final synchronized void method8612(int i) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i);
	((Class151_Sub3) this).aClass656_9265.method7791(class487_sub28,
							 (byte) 3);
    }
    
    public final boolean method2294() {
	if (((Class151_Sub3) this).aClass124_9244 == null)
	    return false;
	return ((Class151_Sub3) this).aClass124_9244.method1619();
    }
    
    final synchronized void method8613(int i) {
	Class487 class487 = new Class487();
	class487.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub3) this).aClass656_9268.method7791(class487, (byte) 3);
    }
    
    static int method8614(Class116 class116) {
	switch (class116.anInt1447 * 770769135) {
	case 7:
	    return 6407;
	case 3:
	    return 6406;
	default:
	    throw new IllegalStateException();
	case 5:
	    return 6402;
	case 4:
	    return 6409;
	case 9:
	    return 6408;
	case 2:
	    return 6410;
	}
    }
    
    static int method8615(Class116 class116, Class155 class155) {
	if (class155 == Class155.aClass155_1894) {
	    switch (class116.anInt1447 * 770769135) {
	    default:
		throw new IllegalArgumentException();
	    case 4:
		return 6409;
	    case 9:
		return 6408;
	    case 2:
		return 6410;
	    case 7:
		return 6407;
	    case 3:
		return 6406;
	    }
	}
	if (class155 == Class155.aClass155_1885) {
	    switch (class116.anInt1447 * 770769135) {
	    case 5:
		return 33189;
	    default:
		throw new IllegalArgumentException();
	    case 3:
		return 32830;
	    case 4:
		return 32834;
	    case 9:
		return 32859;
	    case 7:
		return 32852;
	    case 2:
		return 36219;
	    }
	}
	if (class155 == Class155.aClass155_1890) {
	    switch (class116.anInt1447 * 770769135) {
	    default:
		throw new IllegalArgumentException();
	    case 5:
		return 33190;
	    }
	}
	if (class155 == Class155.aClass155_1892) {
	    switch (class116.anInt1447 * 770769135) {
	    case 4:
		return 34846;
	    default:
		throw new IllegalArgumentException();
	    case 9:
		return 34842;
	    case 7:
		return 34843;
	    case 2:
		return 34847;
	    case 3:
		return 34844;
	    }
	}
	if (class155 == Class155.aClass155_1893) {
	    switch (class116.anInt1447 * 770769135) {
	    default:
		throw new IllegalArgumentException();
	    case 3:
		return 34838;
	    case 2:
		return 34841;
	    case 9:
		return 34836;
	    case 4:
		return 34840;
	    case 7:
		return 34837;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public void method2298(float f, float f_239_, float f_240_, float f_241_,
			   float f_242_) {
	Class487_Sub4_Sub1.aFloat11253 = f;
	Class487_Sub4_Sub1.aFloat11250 = f_239_;
	Class487_Sub4_Sub1.aFloat11251 = f_240_;
	Class487_Sub4_Sub1.aFloat11252 = f_241_;
	Class487_Sub4_Sub1.aFloat11254 = f_242_;
    }
    
    public Class127 method2119() {
	int i = -1;
	if (((Class151_Sub3) this).aString9329.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub3) this).aString9329.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class151_Sub3) this).aString9329.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, "OpenGL", ((Class151_Sub3) this).anInt9293,
			    ((Class151_Sub3) this).aString9356, 0L, false);
    }
    
    public void method2224(Class400 class400, Class150 class150,
			   Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	class150.method1984(class375, ((Class151_Sub3) this).aClass403_9285,
			    class403, ((Class151_Sub3) this).aFloat9204,
			    ((Class151_Sub3) this).aFloat9203,
			    ((Class151_Sub3) this).aFloat9291,
			    ((Class151_Sub3) this).aFloat9278);
    }
    
    public void method2287() {
	for (int i = 0; i < 3; i++) {
	    if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224[i]);
		((Class151_Sub3) this).aLongArray9224[i] = 0L;
	    }
	}
	((Class151_Sub3) this).anInt9408 = 0;
	((Class151_Sub3) this).anInt9407 = 0;
    }
    
    public final void method2316(int i, float f, float f_243_, float f_244_,
				 float f_245_, float f_246_) {
	boolean bool = ((Class151_Sub3) this).anInt9321 != i;
	if (bool || ((Class151_Sub3) this).aFloat9326 != f
	    || ((Class151_Sub3) this).aFloat9197 != f_243_) {
	    ((Class151_Sub3) this).anInt9321 = i;
	    ((Class151_Sub3) this).aFloat9326 = f;
	    ((Class151_Sub3) this).aFloat9197 = f_243_;
	    if (bool) {
		((Class151_Sub3) this).aFloat9322
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff0000)
		       / 1.671168E7F);
		((Class151_Sub3) this).aFloat9249
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff00)
		       / 65280.0F);
		((Class151_Sub3) this).aFloat9272
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff)
		       / 255.0F);
		method8632();
	    }
	    method8573();
	}
	if (((Class151_Sub3) this).aFloatArray9317[0] != f_244_
	    || ((Class151_Sub3) this).aFloatArray9317[1] != f_245_
	    || ((Class151_Sub3) this).aFloatArray9317[2] != f_246_) {
	    ((Class151_Sub3) this).aFloatArray9317[0] = f_244_;
	    ((Class151_Sub3) this).aFloatArray9317[1] = f_245_;
	    ((Class151_Sub3) this).aFloatArray9317[2] = f_246_;
	    ((Class151_Sub3) this).aFloatArray9214[0] = -f_244_;
	    ((Class151_Sub3) this).aFloatArray9214[1] = -f_245_;
	    ((Class151_Sub3) this).aFloatArray9214[2] = -f_246_;
	    float f_247_
		= (float) (1.0 / Math.sqrt((double) (f_244_ * f_244_
						     + f_245_ * f_245_
						     + f_246_ * f_246_)));
	    ((Class151_Sub3) this).aFloatArray9323[0] = f_244_ * f_247_;
	    ((Class151_Sub3) this).aFloatArray9323[1] = f_245_ * f_247_;
	    ((Class151_Sub3) this).aFloatArray9323[2] = f_246_ * f_247_;
	    ((Class151_Sub3) this).aFloatArray9250[0]
		= -((Class151_Sub3) this).aFloatArray9323[0];
	    ((Class151_Sub3) this).aFloatArray9250[1]
		= -((Class151_Sub3) this).aFloatArray9323[1];
	    ((Class151_Sub3) this).aFloatArray9250[2]
		= -((Class151_Sub3) this).aFloatArray9323[2];
	    method8560();
	    ((Class151_Sub3) this).anInt9331
		= (int) (f_244_ * 256.0F / f_245_);
	    ((Class151_Sub3) this).anInt9318
		= (int) (f_246_ * 256.0F / f_245_);
	}
    }
    
    void method8616() {
	method8622();
    }
    
    public final synchronized void method2125(int i) {
	int i_248_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub3) this).aClass656_9264.method7825(-450279546)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9264
				       .method7792(1386936784);
	    anIntArray9271[i_248_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9261
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_248_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_248_, anIntArray9271, 0);
		i_248_ = 0;
	    }
	}
	if (i_248_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_248_, anIntArray9271, 0);
	    i_248_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9217.method7825(501945288)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9217
				       .method7792(-949369853);
	    anIntArray9271[i_248_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9260
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_248_ == 1000) {
		OpenGL.glDeleteTextures(i_248_, anIntArray9271, 0);
		i_248_ = 0;
	    }
	}
	if (i_248_ > 0) {
	    OpenGL.glDeleteTextures(i_248_, anIntArray9271, 0);
	    i_248_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9265.method7825(910260047)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9265
				       .method7792(-1750469583);
	    anIntArray9271[i_248_++] = class487_sub28.anInt10251 * -1323364665;
	    if (i_248_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_248_, anIntArray9271, 0);
		i_248_ = 0;
	    }
	}
	if (i_248_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_248_, anIntArray9271, 0);
	    i_248_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9267.method7825(1984765105)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9267
				       .method7792(-1255322031);
	    anIntArray9271[i_248_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9234
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_248_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_248_, anIntArray9271, 0);
		i_248_ = 0;
	    }
	}
	if (i_248_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_248_, anIntArray9271, 0);
	    boolean bool = false;
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(1737591575)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(1410694181);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub3) this).aClass656_9268.method7825(-549604728)) {
	    Class487 class487
		= ((Class151_Sub3) this).aClass656_9268.method7792(950107490);
	    OpenGL.glDeleteProgramARB((int) (class487.aLong6694
					     * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9269.method7825(-272705293)) {
	    Class487 class487 = ((Class151_Sub3) this).aClass656_9269
				    .method7792(-1208872019);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(-5278158)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(-335429507);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	((Class151_Sub3) this).aClass112_9242.method1481();
	if (method2353() > 100663296
	    && (Class222.method3225(1584445062)
		> ((Class151_Sub3) this).aLong9324 + 60000L)) {
	    System.gc();
	    ((Class151_Sub3) this).aLong9324 = Class222.method3225(1717859482);
	}
	((Class151_Sub3) this).anInt9253 = i;
    }
    
    public final synchronized void method2126(int i) {
	int i_249_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub3) this).aClass656_9264.method7825(1916477849)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9264
				       .method7792(922167337);
	    anIntArray9271[i_249_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9261
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_249_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_249_, anIntArray9271, 0);
		i_249_ = 0;
	    }
	}
	if (i_249_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_249_, anIntArray9271, 0);
	    i_249_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9217.method7825(1441530066)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9217
				       .method7792(-771902961);
	    anIntArray9271[i_249_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9260
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_249_ == 1000) {
		OpenGL.glDeleteTextures(i_249_, anIntArray9271, 0);
		i_249_ = 0;
	    }
	}
	if (i_249_ > 0) {
	    OpenGL.glDeleteTextures(i_249_, anIntArray9271, 0);
	    i_249_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9265.method7825(1382609908)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9265
				       .method7792(-669955290);
	    anIntArray9271[i_249_++] = class487_sub28.anInt10251 * -1323364665;
	    if (i_249_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_249_, anIntArray9271, 0);
		i_249_ = 0;
	    }
	}
	if (i_249_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_249_, anIntArray9271, 0);
	    i_249_ = 0;
	}
	while (!((Class151_Sub3) this).aClass656_9267.method7825(1769920140)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9267
				       .method7792(-1772452616);
	    anIntArray9271[i_249_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    ((Class151_Sub3) this).anInt9234
		-= class487_sub28.anInt10251 * -1323364665;
	    if (i_249_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_249_, anIntArray9271, 0);
		i_249_ = 0;
	    }
	}
	if (i_249_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_249_, anIntArray9271, 0);
	    boolean bool = false;
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(1583402912)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(1138567216);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub3) this).aClass656_9268.method7825(1377518096)) {
	    Class487 class487 = ((Class151_Sub3) this).aClass656_9268
				    .method7792(-1174669601);
	    OpenGL.glDeleteProgramARB((int) (class487.aLong6694
					     * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9269.method7825(1736686863)) {
	    Class487 class487
		= ((Class151_Sub3) this).aClass656_9269.method7792(1271531419);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub3) this).aClass656_9262.method7825(1660040167)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub3) this).aClass656_9262
				       .method7792(-1490544768);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	((Class151_Sub3) this).aClass112_9242.method1481();
	if (method2353() > 100663296
	    && (Class222.method3225(1561055143)
		> ((Class151_Sub3) this).aLong9324 + 60000L)) {
	    System.gc();
	    ((Class151_Sub3) this).aLong9324 = Class222.method3225(1938274280);
	}
	((Class151_Sub3) this).anInt9253 = i;
    }
    
    public void method2114(float f, float f_250_, float f_251_, float[] fs) {
	float f_252_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_250_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_251_));
	float f_253_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * f_250_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * f_251_));
	float f_254_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * f_250_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * f_251_));
	float f_255_
	    = (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9283.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[6]
		  * f_250_)
	       + (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[10]
		  * f_251_));
	fs[0] = (((Class151_Sub3) this).aFloat9204
		 + ((Class151_Sub3) this).aFloat9291 * f_253_ / f_252_);
	fs[1] = (((Class151_Sub3) this).aFloat9203
		 + ((Class151_Sub3) this).aFloat9278 * f_254_ / f_252_);
	fs[2] = f_255_;
    }
    
    public Class144_Sub2 method2017() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public boolean method2129() {
	return true;
    }
    
    public boolean method2404() {
	return true;
    }
    
    public boolean method2373() {
	return true;
    }
    
    public boolean method2132() {
	return true;
    }
    
    public boolean method2133() {
	return true;
    }
    
    public boolean method2375() {
	return true;
    }
    
    public boolean method2041() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& (((Class151_Sub3) this).anInt9241 <= 1
		    || ((Class151_Sub3) this).aBool9368));
    }
    
    public boolean method2136() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& (((Class151_Sub3) this).anInt9241 <= 1
		    || ((Class151_Sub3) this).aBool9368));
    }
    
    public boolean method2137() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& (((Class151_Sub3) this).anInt9241 <= 1
		    || ((Class151_Sub3) this).aBool9368));
    }
    
    public boolean method2139() {
	return true;
    }
    
    public boolean method2140() {
	return true;
    }
    
    public void method2391() {
	OpenGL.glFinish();
    }
    
    public boolean method2142() {
	return true;
    }
    
    public boolean method2010() {
	return true;
    }
    
    public boolean method2144() {
	return true;
    }
    
    public boolean method2170() {
	return true;
    }
    
    public boolean method2079() {
	return false;
    }
    
    public final void method2290(int i, int i_256_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1623(i, i_256_);
    }
    
    final void method8617(float f, float f_257_, float f_258_, float f_259_) {
	aFloatArray9361[0] = f;
	aFloatArray9361[1] = f_257_;
	aFloatArray9361[2] = f_258_;
	aFloatArray9361[3] = f_259_;
	OpenGL.glTexEnvfv(8960, 8705, aFloatArray9361, 0);
    }
    
    public String method2149() {
	String string = "Caps: 2:";
	String string_260_ = ":";
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9241).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9384).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9347).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9362).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9319).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9386).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9367).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9359 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9396 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9393 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9346 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9327 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9302 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9378 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9232 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9379 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9381 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9372 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9375 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9320 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9374 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9199 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9364 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9365 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9366 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9376 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9382 ? 1 : 0).append
		     (string_260_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9383 ? 1 : 0).toString();
	return string;
    }
    
    final void method8618() {
	if (((Class151_Sub3) this).anInt9387 == 2)
	    OpenGL.glDepthRange(((Class151_Sub3) this).aFloat9294,
				((Class151_Sub3) this).aFloat9238);
	else
	    OpenGL.glDepthRange(0.0F, 1.0F);
    }
    
    public int[] method2151() {
	int[] is = new int[1];
	OpenGL.glGetIntegerv(34466, is, 0);
	int i = is[0];
	if (i == 0)
	    return null;
	int[] is_261_ = new int[i];
	OpenGL.glGetIntegerv(34467, is_261_, 0);
	return is_261_;
    }
    
    public void method2153(boolean bool) {
	/* empty */
    }
    
    public final boolean method2307() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		       .method9073());
    }
    
    public int[] method2155(int i, int i_262_, int i_263_, int i_264_) {
	if (aClass144_1857 != null) {
	    int[] is = new int[i_263_ * i_264_];
	    int i_265_ = aClass144_1857.method1944();
	    for (int i_266_ = 0; i_266_ < i_264_; i_266_++)
		OpenGL.glReadPixelsi(i, i_265_ - i_262_ - i_266_ - 1, i_263_,
				     1, 32993,
				     ((Class151_Sub3) this).anInt9384, is,
				     i_266_ * i_263_);
	    return is;
	}
	return null;
    }
    
    public int[] method2156(int i, int i_267_, int i_268_, int i_269_) {
	if (aClass144_1857 != null) {
	    int[] is = new int[i_268_ * i_269_];
	    int i_270_ = aClass144_1857.method1944();
	    for (int i_271_ = 0; i_271_ < i_269_; i_271_++)
		OpenGL.glReadPixelsi(i, i_270_ - i_267_ - i_271_ - 1, i_268_,
				     1, 32993,
				     ((Class151_Sub3) this).anInt9384, is,
				     i_271_ * i_268_);
	    return is;
	}
	return null;
    }
    
    public int[] method2157(int i, int i_272_, int i_273_, int i_274_) {
	if (aClass144_1857 != null) {
	    int[] is = new int[i_273_ * i_274_];
	    int i_275_ = aClass144_1857.method1944();
	    for (int i_276_ = 0; i_276_ < i_274_; i_276_++)
		OpenGL.glReadPixelsi(i, i_275_ - i_272_ - i_276_ - 1, i_273_,
				     1, 32993,
				     ((Class151_Sub3) this).anInt9384, is,
				     i_276_ * i_273_);
	    return is;
	}
	return null;
    }
    
    public int[] method2158(int i, int i_277_, int i_278_, int i_279_) {
	if (aClass144_1857 != null) {
	    int[] is = new int[i_278_ * i_279_];
	    int i_280_ = aClass144_1857.method1944();
	    for (int i_281_ = 0; i_281_ < i_279_; i_281_++)
		OpenGL.glReadPixelsi(i, i_280_ - i_277_ - i_281_ - 1, i_278_,
				     1, 32993,
				     ((Class151_Sub3) this).anInt9384, is,
				     i_281_ * i_278_);
	    return is;
	}
	return null;
    }
    
    public Class400 method2264() {
	return new Class400(((Class151_Sub3) this).aClass400_9282);
    }
    
    public Class132 method2352(int i, int i_282_, int[][] is, int[][] is_283_,
			       int i_284_, int i_285_, int i_286_) {
	return new Class132_Sub3(this, i_285_, i_286_, i, i_282_, is, is_283_,
				 i_284_);
    }
    
    public boolean method2161() {
	return true;
    }
    
    public boolean method2366() {
	return true;
    }
    
    public boolean method2163() {
	return true;
    }
    
    public boolean method2164() {
	return true;
    }
    
    public Class114 method2154(int i, int i_287_, int i_288_, int i_289_,
			       boolean bool) {
	return new Class114_Sub3(this, i, i_287_, i_288_, i_289_);
    }
    
    public void method2022(int i, int i_290_, int i_291_) {
	method2071();
	if (((Class151_Sub3) this).aClass144_Sub2_9403 == null)
	    method8642(i_290_, i_291_);
	if (((Class151_Sub3) this).aClass114_9228 == null)
	    ((Class151_Sub3) this).aClass114_9228
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), true);
	else
	    ((Class114_Sub3) ((Class151_Sub3) this).aClass114_9228).method8159
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0, true);
	method2014(((Class151_Sub3) this).aClass144_Sub2_9403, (byte) -32);
	method2176(1, -16777216);
	((Class151_Sub3) this).aClass114_9228.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051, (((Class151_Sub3) this).anIntArray9404
				       [((Class151_Sub3) this).anInt9408]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub3) this).aClass144_Sub2_9403, -1927566747);
	((Class151_Sub3) this).aLongArray9224[((Class151_Sub3) this).anInt9408]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub3) this).anIntArray9406[((Class151_Sub3) this).anInt9408]
	    = i;
	if (++((Class151_Sub3) this).anInt9408 >= 3)
	    ((Class151_Sub3) this).anInt9408 = 0;
	method2134();
    }
    
    public void method2182(int i, int i_292_, int i_293_, int i_294_,
			   int i_295_, int i_296_, Class131 class131,
			   int i_297_, int i_298_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(i_296_);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_299_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	float f_300_ = (float) i_293_ - (float) i;
	float f_301_ = (float) i_294_ - (float) i_292_;
	float f_302_ = (float) (1.0 / Math.sqrt((double) (f_300_ * f_300_
							  + f_301_ * f_301_)));
	f_300_ *= f_302_;
	f_301_ *= f_302_;
	OpenGL.glColor4ub((byte) (i_295_ >> 16), (byte) (i_295_ >> 8),
			  (byte) i_295_, (byte) (i_295_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_297_),
			    f_299_ * (float) (i_292_ - i_298_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_292_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_293_ - i_297_),
			    f_299_ * (float) (i_294_ - i_298_));
	OpenGL.glVertex2f((float) i_293_ + f_300_ + 0.35F,
			  (float) i_294_ + f_301_ + 0.35F);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public int method2169() {
	if (((Class151_Sub3) this).aBool9310) {
	    if ((((Class151_Sub3) this).aLongArray9224
		 [((Class151_Sub3) this).anInt9407])
		== 0L)
		return -1;
	    int i
		= OpenGL.glClientWaitSync((((Class151_Sub3) this)
					   .aLongArray9224
					   [((Class151_Sub3) this).anInt9407]),
					  0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return i != 37147 ? (((Class151_Sub3) this).anIntArray9406
				 [((Class151_Sub3) this).anInt9407]) : -1;
	}
	return -1;
    }
    
    int method8619() {
	int i = 0;
	((Class151_Sub3) this).aString9329
	    = OpenGL.glGetString(7936).toLowerCase();
	((Class151_Sub3) this).aString9356
	    = OpenGL.glGetString(7937).toLowerCase();
	if (((Class151_Sub3) this).aString9329.indexOf("microsoft") != -1)
	    i |= 0x1;
	if (((Class151_Sub3) this).aString9329.indexOf("brian paul") != -1
	    || ((Class151_Sub3) this).aString9329.indexOf("mesa") != -1)
	    i |= 0x1;
	String string = OpenGL.glGetString(7938);
	String[] strings
	    = Class429.method5254(string.replace('.', ' '), ' ', (byte) -107);
	if (strings.length >= 2) {
	    try {
		int i_303_ = Class32.method780(strings[0], (byte) 5);
		int i_304_ = Class32.method780(strings[1], (byte) 5);
		((Class151_Sub3) this).anInt9293 = i_303_ * 10 + i_304_;
	    } catch (NumberFormatException numberformatexception) {
		i |= 0x4;
	    }
	} else
	    i |= 0x4;
	if (((Class151_Sub3) this).anInt9293 < 12)
	    i |= 0x2;
	if (!((Class151_Sub3) this).anOpenGL9369
		 .method1010("GL_ARB_multitexture"))
	    i |= 0x8;
	if (!((Class151_Sub3) this).anOpenGL9369
		 .method1010("GL_ARB_texture_env_combine"))
	    i |= 0x20;
	int[] is = new int[1];
	OpenGL.glGetIntegerv(34018, is, 0);
	((Class151_Sub3) this).anInt9347 = is[0];
	OpenGL.glGetIntegerv(34929, is, 0);
	((Class151_Sub3) this).anInt9362 = is[0];
	OpenGL.glGetIntegerv(34930, is, 0);
	((Class151_Sub3) this).anInt9319 = is[0];
	if (((Class151_Sub3) this).anInt9347 < 2
	    || ((Class151_Sub3) this).anInt9362 < 2
	    || ((Class151_Sub3) this).anInt9319 < 2)
	    i |= 0x10;
	((Class151_Sub3) this).aBool9359 = Stream.method1040();
	((Class151_Sub3) this).aBool9346
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_vertex_buffer_object");
	((Class151_Sub3) this).aBool9302
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_multisample");
	((Class151_Sub3) this).aBool9378
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_vertex_program");
	((Class151_Sub3) this).aBool9232
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_fragment_program");
	((Class151_Sub3) this).aBool9379
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_vertex_shader");
	((Class151_Sub3) this).aBool9381
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_fragment_shader");
	((Class151_Sub3) this).aBool9372 = ((Class151_Sub3) this)
					       .anOpenGL9369
					       .method1010("GL_EXT_texture3D");
	((Class151_Sub3) this).aBool9375
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_texture_rectangle");
	((Class151_Sub3) this).aBool9320
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_texture_cube_map");
	((Class151_Sub3) this).aBool9374
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_seamless_cube_map");
	((Class151_Sub3) this).aBool9376
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_texture_float");
	((Class151_Sub3) this).aBool9199
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_ARB_texture_non_power_of_two");
	((Class151_Sub3) this).aBool9364
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_EXT_framebuffer_object");
	((Class151_Sub3) this).aBool9365
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_EXT_framebuffer_blit");
	((Class151_Sub3) this).aBool9366
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_EXT_framebuffer_multisample");
	((Class151_Sub3) this).aBool9368
	    = (((Class151_Sub3) this).aBool9365
	       & ((Class151_Sub3) this).aBool9366);
	((Class151_Sub3) this).aBool9383
	    = ((Class151_Sub3) this).anOpenGL9369
		  .method1010("GL_EXT_blend_func_separate");
	((Class151_Sub3) this).aBool9310
	    = (((Class151_Sub3) this).anUnsafe9259 != null
	       && (((Class151_Sub3) this).anInt9293 >= 32
		   || ((Class151_Sub3) this).anOpenGL9369
			  .method1010("GL_ARB_sync")));
	((Class151_Sub3) this).aBool9393
	    = Class470.aString5331.startsWith("mac");
	OpenGL.glGetFloatv(2834, aFloatArray9361, 0);
	((Class151_Sub3) this).aFloat9386 = aFloatArray9361[0];
	((Class151_Sub3) this).aFloat9367 = aFloatArray9361[1];
	return i != 0 ? i : 0;
    }
    
    public final void method2267(Class403 class403) {
	((Class151_Sub3) this).aClass403_9285.method4864(class403);
	method8569();
	method8605();
    }
    
    final void method8620(int i, int i_305_) {
	((Class151_Sub3) this).anInt9308 = i;
	((Class151_Sub3) this).anInt9213 = i_305_;
	method8561();
	method8562();
    }
    
    public long method2173(int i, int i_306_) {
	return method8558(i, i_306_, null, null);
    }
    
    public long method2405(int i, int i_307_) {
	return method8558(i, i_307_, null, null);
    }
    
    public long method2175(int i, int i_308_) {
	return method8558(i, i_308_, null, null);
    }
    
    public Class114 method2230(int i, int i_309_, boolean bool,
			       boolean bool_310_) {
	return new Class114_Sub3(this, i, i_309_, bool);
    }
    
    public final int method2128() {
	return (((Class151_Sub3) this).anInt9261
		+ ((Class151_Sub3) this).anInt9260
		+ ((Class151_Sub3) this).anInt9234);
    }
    
    public void method2179(boolean bool) {
	((Class151_Sub3) this).aBool9303 = bool;
	method8624();
    }
    
    public void method2390(int i, int i_311_, int i_312_, int i_313_) {
	((Class151_Sub3) this).anInt9287 = i;
	((Class151_Sub3) this).anInt9311 = i_311_;
	((Class151_Sub3) this).anInt9312 = i_312_;
	((Class151_Sub3) this).anInt9380 = i_313_;
	method8561();
    }
    
    public void method2181(int i, int i_314_, int i_315_, int i_316_) {
	((Class151_Sub3) this).anInt9287 = i;
	((Class151_Sub3) this).anInt9311 = i_314_;
	((Class151_Sub3) this).anInt9312 = i_315_;
	((Class151_Sub3) this).anInt9380 = i_316_;
	method8561();
    }
    
    public void method2183(int i, int i_317_, int i_318_, int i_319_) {
	((Class151_Sub3) this).anInt9287 = i;
	((Class151_Sub3) this).anInt9311 = i_317_;
	((Class151_Sub3) this).anInt9312 = i_318_;
	((Class151_Sub3) this).anInt9380 = i_319_;
	method8561();
    }
    
    public void method2184(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9287;
	is[1] = ((Class151_Sub3) this).anInt9311;
	is[2] = ((Class151_Sub3) this).anInt9312;
	is[3] = ((Class151_Sub3) this).anInt9380;
    }
    
    public void method2185(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9287;
	is[1] = ((Class151_Sub3) this).anInt9311;
	is[2] = ((Class151_Sub3) this).anInt9312;
	is[3] = ((Class151_Sub3) this).anInt9380;
    }
    
    public void method2116(int i, Class131 class131, int i_320_, int i_321_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(1);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_322_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_320_),
			    f_322_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_321_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_320_),
			    f_322_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_321_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_320_),
			    f_322_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_321_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_320_),
			    f_322_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_321_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public void method2372(float f, float f_323_) {
	((Class151_Sub3) this).aFloat9294 = f;
	((Class151_Sub3) this).aFloat9238 = f_323_;
	method8618();
    }
    
    public Class400 method2255() {
	return ((Class151_Sub3) this).aClass400_9295;
    }
    
    public final void method2130() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    public final boolean method2295() {
	if (((Class151_Sub3) this).aClass124_9244 == null)
	    return false;
	return ((Class151_Sub3) this).aClass124_9244.method1619();
    }
    
    public final void method2131() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    void method2122(int i, int i_324_) throws Exception_Sub7 {
	try {
	    aClass144_Sub1_1853.method8234();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(123796772);
    }
    
    public final void method2072() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    public final void method2194(int i, int i_325_, int i_326_, int i_327_) {
	if (aClass144_1857 != null) {
	    if (i < 0)
		i = 0;
	    if (i_326_ > aClass144_1857.method1943())
		i_326_ = aClass144_1857.method1943();
	    if (i_325_ < 0)
		i_325_ = 0;
	    if (i_327_ > aClass144_1857.method1944())
		i_327_ = aClass144_1857.method1944();
	    ((Class151_Sub3) this).anInt9306 = i;
	    ((Class151_Sub3) this).anInt9304 = i_325_;
	    ((Class151_Sub3) this).anInt9307 = i_326_;
	    ((Class151_Sub3) this).anInt9305 = i_327_;
	    OpenGL.glEnable(3089);
	    method8562();
	}
    }
    
    public final void method2195(int i, int i_328_, int i_329_, int i_330_) {
	if (aClass144_1857 != null) {
	    if (i < 0)
		i = 0;
	    if (i_329_ > aClass144_1857.method1943())
		i_329_ = aClass144_1857.method1943();
	    if (i_328_ < 0)
		i_328_ = 0;
	    if (i_330_ > aClass144_1857.method1944())
		i_330_ = aClass144_1857.method1944();
	    ((Class151_Sub3) this).anInt9306 = i;
	    ((Class151_Sub3) this).anInt9304 = i_328_;
	    ((Class151_Sub3) this).anInt9307 = i_329_;
	    ((Class151_Sub3) this).anInt9305 = i_330_;
	    OpenGL.glEnable(3089);
	    method8562();
	}
    }
    
    public final void method2187(int i, int i_331_, int i_332_, int i_333_) {
	if (aClass144_1857 != null) {
	    if (i < 0)
		i = 0;
	    if (i_332_ > aClass144_1857.method1943())
		i_332_ = aClass144_1857.method1943();
	    if (i_331_ < 0)
		i_331_ = 0;
	    if (i_333_ > aClass144_1857.method1944())
		i_333_ = aClass144_1857.method1944();
	    ((Class151_Sub3) this).anInt9306 = i;
	    ((Class151_Sub3) this).anInt9304 = i_331_;
	    ((Class151_Sub3) this).anInt9307 = i_332_;
	    ((Class151_Sub3) this).anInt9305 = i_333_;
	    OpenGL.glEnable(3089);
	    method8562();
	}
    }
    
    final void method8621() {
	if (((Class151_Sub3) this).anInt9248 != 4) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 4;
	}
    }
    
    void method8622() {
	int i = aClass144_1857.method1943();
	int i_334_ = aClass144_1857.method1944();
	((Class151_Sub3) this).aClass403_9286
	    .method4870(0.0F, (float) i, 0.0F, (float) i_334_, -1.0F, 1.0F);
	method2221();
	method8566();
	method2036();
    }
    
    boolean method2060(int i, int i_335_, int i_336_, int i_337_,
		       Class400 class400, Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	return class375.method4596(i, i_335_, i_336_, i_337_, class403,
				   ((Class151_Sub3) this).aFloat9204,
				   ((Class151_Sub3) this).aFloat9203,
				   ((Class151_Sub3) this).aFloat9291,
				   ((Class151_Sub3) this).aFloat9278);
    }
    
    public final void method2200(int i, int i_338_, int i_339_, int i_340_) {
	if (((Class151_Sub3) this).anInt9306 < i)
	    ((Class151_Sub3) this).anInt9306 = i;
	if (((Class151_Sub3) this).anInt9307 > i_339_)
	    ((Class151_Sub3) this).anInt9307 = i_339_;
	if (((Class151_Sub3) this).anInt9304 < i_338_)
	    ((Class151_Sub3) this).anInt9304 = i_338_;
	if (((Class151_Sub3) this).anInt9305 > i_340_)
	    ((Class151_Sub3) this).anInt9305 = i_340_;
	OpenGL.glEnable(3089);
	method8562();
    }
    
    public final void method2201(int i, int i_341_, int i_342_, int i_343_) {
	if (((Class151_Sub3) this).anInt9306 < i)
	    ((Class151_Sub3) this).anInt9306 = i;
	if (((Class151_Sub3) this).anInt9307 > i_342_)
	    ((Class151_Sub3) this).anInt9307 = i_342_;
	if (((Class151_Sub3) this).anInt9304 < i_341_)
	    ((Class151_Sub3) this).anInt9304 = i_341_;
	if (((Class151_Sub3) this).anInt9305 > i_343_)
	    ((Class151_Sub3) this).anInt9305 = i_343_;
	OpenGL.glEnable(3089);
	method8562();
    }
    
    public final void method2231(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9306;
	is[1] = ((Class151_Sub3) this).anInt9304;
	is[2] = ((Class151_Sub3) this).anInt9307;
	is[3] = ((Class151_Sub3) this).anInt9305;
    }
    
    public void method2205(int i, int i_344_, int i_345_, int i_346_,
			   int i_347_, int i_348_) {
	float f = (float) i + 0.35F;
	float f_349_ = (float) i_344_ + 0.35F;
	float f_350_ = f + (float) i_345_ - 1.0F;
	float f_351_ = f_349_ + (float) i_346_ - 1.0F;
	method8585();
	method8606(i_348_);
	OpenGL.glColor4ub((byte) (i_347_ >> 16), (byte) (i_347_ >> 8),
			  (byte) i_347_, (byte) (i_347_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_349_);
	OpenGL.glVertex2f(f, f_351_);
	OpenGL.glVertex2f(f_350_, f_351_);
	OpenGL.glVertex2f(f_350_, f_349_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    public void method2206(int i, int i_352_, int i_353_, int i_354_,
			   int i_355_, int i_356_) {
	float f = (float) i + 0.35F;
	float f_357_ = (float) i_352_ + 0.35F;
	float f_358_ = f + (float) i_353_ - 1.0F;
	float f_359_ = f_357_ + (float) i_354_ - 1.0F;
	method8585();
	method8606(i_356_);
	OpenGL.glColor4ub((byte) (i_355_ >> 16), (byte) (i_355_ >> 8),
			  (byte) i_355_, (byte) (i_355_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_357_);
	OpenGL.glVertex2f(f, f_359_);
	OpenGL.glVertex2f(f_358_, f_359_);
	OpenGL.glVertex2f(f_358_, f_357_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    public boolean method2024() {
	return true;
    }
    
    void method2263(int i, int i_360_, int i_361_, int i_362_, int i_363_) {
	method8585();
	method8606(i_363_);
	float f = (float) i + 0.35F;
	float f_364_ = (float) i_360_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_362_ >> 16), (byte) (i_362_ >> 8),
			  (byte) i_362_, (byte) (i_362_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_364_);
	OpenGL.glVertex2f(f + (float) i_361_, f_364_);
	OpenGL.glEnd();
    }
    
    public void method2209(int i, int i_365_, int i_366_, int i_367_,
			   int i_368_, int i_369_) {
	method8585();
	method8606(i_369_);
	float f = (float) i_366_ - (float) i;
	float f_370_ = (float) i_367_ - (float) i_365_;
	if (f == 0.0F && f_370_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_371_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_370_ * f_370_)));
	    f *= f_371_;
	    f_370_ *= f_371_;
	}
	OpenGL.glColor4ub((byte) (i_368_ >> 16), (byte) (i_368_ >> 8),
			  (byte) i_368_, (byte) (i_368_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_365_ + 0.35F);
	OpenGL.glVertex2f((float) i_366_ + f + 0.35F,
			  (float) i_367_ + f_370_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public void method2027(int i, int i_372_, int i_373_, int i_374_) {
	((Class151_Sub3) this).anInt9287 = i;
	((Class151_Sub3) this).anInt9311 = i_372_;
	((Class151_Sub3) this).anInt9312 = i_373_;
	((Class151_Sub3) this).anInt9380 = i_374_;
	method8561();
    }
    
    public void method2211(int i, int i_375_, int i_376_, int i_377_,
			   int i_378_, int i_379_) {
	method8585();
	method8606(i_379_);
	float f = (float) i_376_ - (float) i;
	float f_380_ = (float) i_377_ - (float) i_375_;
	if (f == 0.0F && f_380_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_381_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_380_ * f_380_)));
	    f *= f_381_;
	    f_380_ *= f_381_;
	}
	OpenGL.glColor4ub((byte) (i_378_ >> 16), (byte) (i_378_ >> 8),
			  (byte) i_378_, (byte) (i_378_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_375_ + 0.35F);
	OpenGL.glVertex2f((float) i_376_ + f + 0.35F,
			  (float) i_377_ + f_380_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public void method2212(int i, int i_382_, int i_383_, int i_384_,
			   int i_385_, int i_386_) {
	method8585();
	method8606(i_386_);
	float f = (float) i_383_ - (float) i;
	float f_387_ = (float) i_384_ - (float) i_382_;
	if (f == 0.0F && f_387_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_388_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_387_ * f_387_)));
	    f *= f_388_;
	    f_387_ *= f_388_;
	}
	OpenGL.glColor4ub((byte) (i_385_ >> 16), (byte) (i_385_ >> 8),
			  (byte) i_385_, (byte) (i_385_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_382_ + 0.35F);
	OpenGL.glVertex2f((float) i_383_ + f + 0.35F,
			  (float) i_384_ + f_387_ + 0.35F);
	OpenGL.glEnd();
    }
    
    public void method2213(int i, int i_389_, int i_390_, int i_391_,
			   int i_392_, int i_393_, int i_394_, int i_395_,
			   int i_396_) {
	if (i != i_390_ || i_389_ != i_391_) {
	    method8585();
	    method8606(i_393_);
	    float f = (float) i_390_ - (float) i;
	    float f_397_ = (float) i_391_ - (float) i_389_;
	    float f_398_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_397_ * f_397_)));
	    f *= f_398_;
	    f_397_ *= f_398_;
	    OpenGL.glColor4ub((byte) (i_392_ >> 16), (byte) (i_392_ >> 8),
			      (byte) i_392_, (byte) (i_392_ >> 24));
	    i_396_ %= i_395_ + i_394_;
	    float f_399_ = f * (float) i_394_;
	    float f_400_ = f_397_ * (float) i_394_;
	    float f_401_ = 0.0F;
	    float f_402_ = 0.0F;
	    float f_403_ = f_399_;
	    float f_404_ = f_400_;
	    if (i_396_ > i_394_) {
		f_401_ = f * (float) (i_394_ + i_395_ - i_396_);
		f_402_ = f_397_ * (float) (i_394_ + i_395_ - i_396_);
	    } else {
		f_403_ = f * (float) (i_394_ - i_396_);
		f_404_ = f_397_ * (float) (i_394_ - i_396_);
	    }
	    float f_405_ = (float) i + 0.35F + f_401_;
	    float f_406_ = (float) i_389_ + 0.35F + f_402_;
	    float f_407_ = f * (float) i_395_;
	    float f_408_ = f_397_ * (float) i_395_;
	    for (;;) {
		if (i_390_ > i) {
		    if (f_405_ > (float) i_390_ + 0.35F)
			break;
		    if (f_405_ + f_403_ > (float) i_390_)
			f_403_ = (float) i_390_ - f_405_;
		} else {
		    if (f_405_ < (float) i_390_ + 0.35F)
			break;
		    if (f_405_ + f_403_ < (float) i_390_)
			f_403_ = (float) i_390_ - f_405_;
		}
		if (i_391_ > i_389_) {
		    if (f_406_ > (float) i_391_ + 0.35F)
			break;
		    if (f_406_ + f_404_ > (float) i_391_)
			f_404_ = (float) i_391_ - f_406_;
		} else {
		    if (f_406_ < (float) i_391_ + 0.35F)
			break;
		    if (f_406_ + f_404_ < (float) i_391_)
			f_404_ = (float) i_391_ - f_406_;
		}
		OpenGL.glBegin(1);
		OpenGL.glVertex2f(f_405_, f_406_);
		OpenGL.glVertex2f(f_405_ + f_403_, f_406_ + f_404_);
		OpenGL.glEnd();
		f_405_ += f_407_ + f_403_;
		f_406_ += f_408_ + f_404_;
		f_403_ = f_399_;
		f_404_ = f_400_;
	    }
	}
    }
    
    public void method2178(boolean bool) {
	((Class151_Sub3) this).aBool9303 = bool;
	method8624();
    }
    
    public void method2244(int i) {
	/* empty */
    }
    
    public void method2238(int i, int i_409_, int i_410_, int i_411_,
			   int i_412_, int i_413_, int i_414_) {
	OpenGL.glLineWidth((float) i_413_);
	method2093(i, i_409_, i_410_, i_411_, i_412_, i_414_);
	OpenGL.glLineWidth(1.0F);
    }
    
    public void method2218(int i, int i_415_, int i_416_, int i_417_,
			   int i_418_, int i_419_, Class131 class131,
			   int i_420_, int i_421_, int i_422_, int i_423_,
			   int i_424_) {
	if (i != i_416_ || i_415_ != i_417_) {
	    Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	    Class100_Sub3_Sub1 class100_sub3_sub1
		= ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	    method8586();
	    method8591(((Class131_Sub1) class131_sub1)
		       .aClass100_Sub3_Sub1_8666);
	    method8606(i_419_);
	    method8594(7681, 8448);
	    method8595(0, 34167, 768);
	    float f = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
		       / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
				  .anInt11027));
	    float f_425_
		= (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
		   / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
			      .anInt11028));
	    float f_426_ = (float) i_416_ - (float) i;
	    float f_427_ = (float) i_417_ - (float) i_415_;
	    float f_428_
		= (float) (1.0 / Math.sqrt((double) (f_426_ * f_426_
						     + f_427_ * f_427_)));
	    f_426_ *= f_428_;
	    f_427_ *= f_428_;
	    OpenGL.glColor4ub((byte) (i_418_ >> 16), (byte) (i_418_ >> 8),
			      (byte) i_418_, (byte) (i_418_ >> 24));
	    i_424_ %= i_423_ + i_422_;
	    float f_429_ = f_426_ * (float) i_422_;
	    float f_430_ = f_427_ * (float) i_422_;
	    float f_431_ = 0.0F;
	    float f_432_ = 0.0F;
	    float f_433_ = f_429_;
	    float f_434_ = f_430_;
	    if (i_424_ > i_422_) {
		f_431_ = f_426_ * (float) (i_422_ + i_423_ - i_424_);
		f_432_ = f_427_ * (float) (i_422_ + i_423_ - i_424_);
	    } else {
		f_433_ = f_426_ * (float) (i_422_ - i_424_);
		f_434_ = f_427_ * (float) (i_422_ - i_424_);
	    }
	    float f_435_ = (float) i + 0.35F + f_431_;
	    float f_436_ = (float) i_415_ + 0.35F + f_432_;
	    float f_437_ = f_426_ * (float) i_423_;
	    float f_438_ = f_427_ * (float) i_423_;
	    for (;;) {
		if (i_416_ > i) {
		    if (f_435_ > (float) i_416_ + 0.35F)
			break;
		    if (f_435_ + f_433_ > (float) i_416_)
			f_433_ = (float) i_416_ - f_435_;
		} else {
		    if (f_435_ < (float) i_416_ + 0.35F)
			break;
		    if (f_435_ + f_433_ < (float) i_416_)
			f_433_ = (float) i_416_ - f_435_;
		}
		if (i_417_ > i_415_) {
		    if (f_436_ > (float) i_417_ + 0.35F)
			break;
		    if (f_436_ + f_434_ > (float) i_417_)
			f_434_ = (float) i_417_ - f_436_;
		} else {
		    if (f_436_ < (float) i_417_ + 0.35F)
			break;
		    if (f_436_ + f_434_ < (float) i_417_)
			f_434_ = (float) i_417_ - f_436_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_435_ - (float) i_420_),
				    f_425_ * (f_436_ - (float) i_421_));
		OpenGL.glVertex2f(f_435_, f_436_);
		OpenGL.glTexCoord2f(f * (f_435_ + f_433_ - (float) i_420_),
				    f_425_ * (f_436_ + f_434_
					      - (float) i_421_));
		OpenGL.glVertex2f(f_435_ + f_433_, f_436_ + f_434_);
		OpenGL.glEnd();
		f_435_ += f_437_ + f_433_;
		f_436_ += f_438_ + f_434_;
		f_433_ = f_429_;
		f_434_ = f_430_;
	    }
	    method8595(0, 5890, 768);
	}
    }
    
    boolean method2223(int i, int i_439_, int i_440_, int i_441_,
		       Class400 class400, Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	return class375.method4596(i, i_439_, i_440_, i_441_, class403,
				   ((Class151_Sub3) this).aFloat9204,
				   ((Class151_Sub3) this).aFloat9203,
				   ((Class151_Sub3) this).aFloat9291,
				   ((Class151_Sub3) this).aFloat9278);
    }
    
    public Class114 method2065(int i, int i_442_, boolean bool,
			       boolean bool_443_) {
	return new Class114_Sub3(this, i, i_442_, bool);
    }
    
    boolean method2222(int i, int i_444_, int i_445_, int i_446_,
		       Class400 class400, Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	return class375.method4596(i, i_444_, i_445_, i_446_, class403,
				   ((Class151_Sub3) this).aFloat9204,
				   ((Class151_Sub3) this).aFloat9203,
				   ((Class151_Sub3) this).aFloat9291,
				   ((Class151_Sub3) this).aFloat9278);
    }
    
    public boolean method2350() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		       .method9073());
    }
    
    public final boolean method2293() {
	if (((Class151_Sub3) this).aClass124_9244 == null)
	    return false;
	return ((Class151_Sub3) this).aClass124_9244.method1619();
    }
    
    public final boolean method2308() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		       .method9073());
    }
    
    public void method2225(Class487_Sub26 class487_sub26) {
	((Class151_Sub3) this).aNativeHeap9257
	    = (((Class487_Sub26_Sub2) (Class487_Sub26_Sub2) class487_sub26)
	       .aNativeHeap11315);
	if (((Class151_Sub3) this).anInterface10_9392 == null) {
	    Class487_Sub17_Sub1 class487_sub17_sub1
		= new Class487_Sub17_Sub1(80);
	    if (((Class151_Sub3) this).aBool9359) {
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
	    } else {
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
	    }
	    ((Class151_Sub3) this).anInterface10_9392
		= method8580(20, class487_sub17_sub1.aByteArray10193,
			     class487_sub17_sub1.anInt10192 * -1980757211,
			     false);
	    ((Class151_Sub3) this).aClass87_9390
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      3, 0);
	    ((Class151_Sub3) this).aClass87_9391
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      2, 12);
	    ((Class151_Sub3) this).aClass92_9313.method1255(this);
	}
    }
    
    public void method2226(Class487_Sub26 class487_sub26) {
	((Class151_Sub3) this).aNativeHeap9257
	    = (((Class487_Sub26_Sub2) (Class487_Sub26_Sub2) class487_sub26)
	       .aNativeHeap11315);
	if (((Class151_Sub3) this).anInterface10_9392 == null) {
	    Class487_Sub17_Sub1 class487_sub17_sub1
		= new Class487_Sub17_Sub1(80);
	    if (((Class151_Sub3) this).aBool9359) {
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
	    } else {
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
	    }
	    ((Class151_Sub3) this).anInterface10_9392
		= method8580(20, class487_sub17_sub1.aByteArray10193,
			     class487_sub17_sub1.anInt10192 * -1980757211,
			     false);
	    ((Class151_Sub3) this).aClass87_9390
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      3, 0);
	    ((Class151_Sub3) this).aClass87_9391
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      2, 12);
	    ((Class151_Sub3) this).aClass92_9313.method1255(this);
	}
    }
    
    public void method2227(Class487_Sub26 class487_sub26) {
	((Class151_Sub3) this).aNativeHeap9257
	    = (((Class487_Sub26_Sub2) (Class487_Sub26_Sub2) class487_sub26)
	       .aNativeHeap11315);
	if (((Class151_Sub3) this).anInterface10_9392 == null) {
	    Class487_Sub17_Sub1 class487_sub17_sub1
		= new Class487_Sub17_Sub1(80);
	    if (((Class151_Sub3) this).aBool9359) {
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(-1.0F);
		class487_sub17_sub1.method10414(0.0F);
		class487_sub17_sub1.method10414(1.0F);
		class487_sub17_sub1.method10414(0.0F);
	    } else {
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(-1.0F);
		class487_sub17_sub1.method10415(0.0F);
		class487_sub17_sub1.method10415(1.0F);
		class487_sub17_sub1.method10415(0.0F);
	    }
	    ((Class151_Sub3) this).anInterface10_9392
		= method8580(20, class487_sub17_sub1.aByteArray10193,
			     class487_sub17_sub1.anInt10192 * -1980757211,
			     false);
	    ((Class151_Sub3) this).aClass87_9390
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      3, 0);
	    ((Class151_Sub3) this).aClass87_9391
		= new Class87(((Class151_Sub3) this).anInterface10_9392, 5126,
			      2, 12);
	    ((Class151_Sub3) this).aClass92_9313.method1255(this);
	}
    }
    
    public Class114 method2312(int i, int i_447_, boolean bool,
			       boolean bool_448_) {
	return new Class114_Sub3(this, i, i_447_, bool);
    }
    
    public Class114 method2242(int i, int i_449_, boolean bool,
			       boolean bool_450_) {
	return new Class114_Sub3(this, i, i_449_, bool);
    }
    
    final void method8623(Class403 class403) {
	OpenGL.glPushMatrix();
	OpenGL.glMultMatrixf(class403.aFloatArray4592, 0);
    }
    
    public Class114 method1987(int i, int i_451_, boolean bool,
			       boolean bool_452_) {
	return new Class114_Sub3(this, i, i_451_, bool);
    }
    
    public Class114 method2232(int[] is, int i, int i_453_, int i_454_,
			       int i_455_, boolean bool) {
	return new Class114_Sub3(this, i_454_, i_455_, is, i, i_453_);
    }
    
    public Class114 method2081(Class153 class153, boolean bool) {
	int[] is = class153.method2455(false);
	Class114 class114
	    = method2067(is, 0, class153.method2474(), class153.method2474(),
			 class153.method2441(), 16711680);
	class114.method1553(class153.method2442(), class153.method2444(),
			    class153.method2473(), class153.method2475());
	return class114;
    }
    
    public Class114 method2234(Class153 class153, boolean bool) {
	int[] is = class153.method2455(false);
	Class114 class114
	    = method2067(is, 0, class153.method2474(), class153.method2474(),
			 class153.method2441(), 16711680);
	class114.method1553(class153.method2442(), class153.method2444(),
			    class153.method2473(), class153.method2475());
	return class114;
    }
    
    public final void method2305() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
	    && ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245.method9073()) {
	    ((Class151_Sub3) this).aClass124_9244
		.method1625(((Class151_Sub3) this).aClass487_Sub4_Sub3_9245);
	    ((Class151_Sub3) this).aClass112_9242.method1482();
	}
    }
    
    public Class114 method2323(Class153 class153, boolean bool) {
	int[] is = class153.method2455(false);
	Class114 class114
	    = method2067(is, 0, class153.method2474(), class153.method2474(),
			 class153.method2441(), 16711680);
	class114.method1553(class153.method2442(), class153.method2444(),
			    class153.method2473(), class153.method2475());
	return class114;
    }
    
    public Class131 method2237(int i, int i_456_, int[] is, int[] is_457_) {
	return Class131_Sub1.method8122(this, i, i_456_, is, is_457_);
    }
    
    public Class131 method2239(int i, int i_458_, int[] is, int[] is_459_) {
	return Class131_Sub1.method8122(this, i, i_458_, is, is_459_);
    }
    
    public void method2365(int i, Class131 class131, int i_460_, int i_461_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(1);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_462_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_460_),
			    f_462_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_461_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_460_),
			    f_462_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_461_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_460_),
			    f_462_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_461_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_460_),
			    f_462_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_461_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public void method2084(Class147 class147) {
	((Class151_Sub3) this).aClass92_9313.method1256(this, class147);
    }
    
    public void method1999(int i, Class131 class131, int i_463_, int i_464_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(1);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_465_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	OpenGL.glColor4ub((byte) (i >> 16), (byte) (i >> 8), (byte) i,
			  (byte) (i >> 24));
	OpenGL.glBegin(7);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_463_),
			    f_465_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_464_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9306
					 - i_463_),
			    f_465_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_464_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9306,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_463_),
			    f_465_ * (float) (((Class151_Sub3) this).anInt9305
					      - i_464_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9305);
	OpenGL.glTexCoord2f(f * (float) (((Class151_Sub3) this).anInt9307
					 - i_463_),
			    f_465_ * (float) (((Class151_Sub3) this).anInt9304
					      - i_464_));
	OpenGL.glVertex2i(((Class151_Sub3) this).anInt9307,
			  ((Class151_Sub3) this).anInt9304);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public Class152 method2039(Class4 class4, Class153[] class153s,
			       boolean bool) {
	return new Class152_Sub2(this, class4, class153s, bool);
    }
    
    public void method2049(int i, int i_466_, float f, int i_467_, int i_468_,
			   float f_469_, int i_470_, int i_471_, float f_472_,
			   int i_473_, int i_474_, int i_475_, int i_476_) {
	method8585();
	method8606(i_476_);
	OpenGL.glBegin(4);
	OpenGL.glColor4ub((byte) (i_473_ >> 16), (byte) (i_473_ >> 8),
			  (byte) i_473_, (byte) (i_473_ >> 24));
	OpenGL.glVertex3f((float) i + 0.35F, (float) i_466_ + 0.35F, f);
	OpenGL.glColor4ub((byte) (i_474_ >> 16), (byte) (i_474_ >> 8),
			  (byte) i_474_, (byte) (i_474_ >> 24));
	OpenGL.glVertex3f((float) i_467_ + 0.35F, (float) i_468_ + 0.35F,
			  f_469_);
	OpenGL.glColor4ub((byte) (i_475_ >> 16), (byte) (i_475_ >> 8),
			  (byte) i_475_, (byte) (i_475_ >> 24));
	OpenGL.glVertex3f((float) i_470_ + 0.35F, (float) i_471_ + 0.35F,
			  f_472_);
	OpenGL.glEnd();
    }
    
    public int method2337(int i, int i_477_) {
	return i | i_477_;
    }
    
    public Class134 method2245(Class139 class139, int i, int i_478_,
			       int i_479_, int i_480_) {
	return new Class134_Sub2(this, class139, i, i_479_, i_480_, i_478_);
    }
    
    public Class134 method2246(Class139 class139, int i, int i_481_,
			       int i_482_, int i_483_) {
	return new Class134_Sub2(this, class139, i, i_482_, i_483_, i_481_);
    }
    
    public Class134 method2247(Class139 class139, int i, int i_484_,
			       int i_485_, int i_486_) {
	return new Class134_Sub2(this, class139, i, i_485_, i_486_, i_484_);
    }
    
    public Class134 method2248(Class139 class139, int i, int i_487_,
			       int i_488_, int i_489_) {
	return new Class134_Sub2(this, class139, i, i_488_, i_489_, i_487_);
    }
    
    public boolean method2003() {
	return true;
    }
    
    public int method2250(int i, int i_490_) {
	return i | i_490_;
    }
    
    public int method2251(int i, int i_491_) {
	return i | i_491_;
    }
    
    public int method2252(int i, int i_492_) {
	return i | i_492_;
    }
    
    final void method8624() {
	OpenGL.glDepthMask(((Class151_Sub3) this).aBool9357
			   && ((Class151_Sub3) this).aBool9303);
    }
    
    public Class403 method2068() {
	return ((Class151_Sub3) this).aClass403_9277;
    }
    
    public Class403 method2008() {
	return ((Class151_Sub3) this).aClass403_9277;
    }
    
    public boolean method2147() {
	return false;
    }
    
    public int method2257() {
	return 4;
    }
    
    public void method1997(Class147 class147) {
	((Class151_Sub3) this).aClass92_9313.method1256(this, class147);
    }
    
    public void method2260(Class147 class147) {
	((Class151_Sub3) this).aClass92_9313.method1256(this, class147);
    }
    
    public void method2261(Class147 class147) {
	((Class151_Sub3) this).aClass92_9313.method1256(this, class147);
    }
    
    public final void method2192(Class400 class400) {
	((Class151_Sub3) this).aClass400_9282.method4807(class400);
	((Class151_Sub3) this).aClass403_9283
	    .method4865(((Class151_Sub3) this).aClass400_9282);
	((Class151_Sub3) this).aClass400_9358.method4807(class400);
	((Class151_Sub3) this).aClass400_9358.method4845();
	((Class151_Sub3) this).aClass403_9284
	    .method4865(((Class151_Sub3) this).aClass400_9358);
	method8569();
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8656();
    }
    
    public final void method2262(Class400 class400) {
	((Class151_Sub3) this).aClass400_9282.method4807(class400);
	((Class151_Sub3) this).aClass403_9283
	    .method4865(((Class151_Sub3) this).aClass400_9282);
	((Class151_Sub3) this).aClass400_9358.method4807(class400);
	((Class151_Sub3) this).aClass400_9358.method4845();
	((Class151_Sub3) this).aClass403_9284
	    .method4865(((Class151_Sub3) this).aClass400_9358);
	method8569();
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8656();
    }
    
    public Class400 method2346() {
	return new Class400(((Class151_Sub3) this).aClass400_9282);
    }
    
    public boolean method2104() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub2_9360 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
		       .method9073());
    }
    
    final synchronized void method8625(int i, int i_493_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_493_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub3) this).aClass656_9267.method7791(class487_sub28,
							 (byte) 3);
    }
    
    public final void method2289(Class403 class403) {
	((Class151_Sub3) this).aClass403_9285.method4864(class403);
	method8569();
	method8605();
    }
    
    final synchronized void method8626(long l) {
	Class487 class487 = new Class487();
	class487.aLong6694 = l * 4978201747651972667L;
	((Class151_Sub3) this).aClass656_9269.method7791(class487, (byte) 3);
    }
    
    public final Class403 method2268() {
	return new Class403(((Class151_Sub3) this).aClass403_9285);
    }
    
    public final Class403 method2269() {
	return new Class403(((Class151_Sub3) this).aClass403_9285);
    }
    
    final Interface10 method8627(int i, Buffer buffer, int i_494_,
				 boolean bool) {
	if (((Class151_Sub3) this).aBool9346
	    && (!bool || ((Class151_Sub3) this).aBool9327))
	    return new Class93_Sub1(this, i, buffer, i_494_, bool);
	return new Class101_Sub2(this, i, buffer);
    }
    
    public final void method2271(float f) {
	if (((Class151_Sub3) this).aFloat9325 != f) {
	    ((Class151_Sub3) this).aFloat9325 = f;
	    method8632();
	}
    }
    
    public int method2058(int i, int i_495_, int i_496_, int i_497_,
			  int i_498_, int i_499_) {
	int i_500_ = 0;
	float f = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		      * (float) i)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		      * (float) i_495_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		      * (float) i_496_));
	float f_501_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		  * (float) i_497_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * (float) i_498_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * (float) i_499_));
	float f_502_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_495_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_496_));
	float f_503_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i_497_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_498_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_499_));
	if (f < -f_502_ && f_501_ < -f_503_)
	    i_500_ |= 0x10;
	else if (f > f_502_ && f_501_ > f_503_)
	    i_500_ |= 0x20;
	float f_504_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_495_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_496_));
	float f_505_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i_497_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_498_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_499_));
	if (f_504_ < -f_502_ && f_505_ < -f_503_)
	    i_500_ |= 0x1;
	if (f_504_ > f_502_ && f_505_ > f_503_)
	    i_500_ |= 0x2;
	float f_506_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_495_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_496_));
	float f_507_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i_497_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_498_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_499_));
	if (f_506_ < -f_502_ && f_507_ < -f_503_)
	    i_500_ |= 0x4;
	if (f_506_ > f_502_ && f_507_ > f_503_)
	    i_500_ |= 0x8;
	return i_500_;
    }
    
    public final void method2273(int i, float f, float f_508_, float f_509_,
				 float f_510_, float f_511_) {
	boolean bool = ((Class151_Sub3) this).anInt9321 != i;
	if (bool || ((Class151_Sub3) this).aFloat9326 != f
	    || ((Class151_Sub3) this).aFloat9197 != f_508_) {
	    ((Class151_Sub3) this).anInt9321 = i;
	    ((Class151_Sub3) this).aFloat9326 = f;
	    ((Class151_Sub3) this).aFloat9197 = f_508_;
	    if (bool) {
		((Class151_Sub3) this).aFloat9322
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff0000)
		       / 1.671168E7F);
		((Class151_Sub3) this).aFloat9249
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff00)
		       / 65280.0F);
		((Class151_Sub3) this).aFloat9272
		    = ((float) (((Class151_Sub3) this).anInt9321 & 0xff)
		       / 255.0F);
		method8632();
	    }
	    method8573();
	}
	if (((Class151_Sub3) this).aFloatArray9317[0] != f_509_
	    || ((Class151_Sub3) this).aFloatArray9317[1] != f_510_
	    || ((Class151_Sub3) this).aFloatArray9317[2] != f_511_) {
	    ((Class151_Sub3) this).aFloatArray9317[0] = f_509_;
	    ((Class151_Sub3) this).aFloatArray9317[1] = f_510_;
	    ((Class151_Sub3) this).aFloatArray9317[2] = f_511_;
	    ((Class151_Sub3) this).aFloatArray9214[0] = -f_509_;
	    ((Class151_Sub3) this).aFloatArray9214[1] = -f_510_;
	    ((Class151_Sub3) this).aFloatArray9214[2] = -f_511_;
	    float f_512_
		= (float) (1.0 / Math.sqrt((double) (f_509_ * f_509_
						     + f_510_ * f_510_
						     + f_511_ * f_511_)));
	    ((Class151_Sub3) this).aFloatArray9323[0] = f_509_ * f_512_;
	    ((Class151_Sub3) this).aFloatArray9323[1] = f_510_ * f_512_;
	    ((Class151_Sub3) this).aFloatArray9323[2] = f_511_ * f_512_;
	    ((Class151_Sub3) this).aFloatArray9250[0]
		= -((Class151_Sub3) this).aFloatArray9323[0];
	    ((Class151_Sub3) this).aFloatArray9250[1]
		= -((Class151_Sub3) this).aFloatArray9323[1];
	    ((Class151_Sub3) this).aFloatArray9250[2]
		= -((Class151_Sub3) this).aFloatArray9323[2];
	    method8560();
	    ((Class151_Sub3) this).anInt9331
		= (int) (f_509_ * 256.0F / f_510_);
	    ((Class151_Sub3) this).anInt9318
		= (int) (f_511_ * 256.0F / f_510_);
	}
    }
    
    public void method2018(int i, int i_513_, int i_514_) {
	method2071();
	if (((Class151_Sub3) this).aClass144_Sub2_9403 == null)
	    method8642(i_513_, i_514_);
	if (((Class151_Sub3) this).aClass114_9228 == null)
	    ((Class151_Sub3) this).aClass114_9228
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), true);
	else
	    ((Class114_Sub3) ((Class151_Sub3) this).aClass114_9228).method8159
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0, true);
	method2014(((Class151_Sub3) this).aClass144_Sub2_9403, (byte) -23);
	method2176(1, -16777216);
	((Class151_Sub3) this).aClass114_9228.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051, (((Class151_Sub3) this).anIntArray9404
				       [((Class151_Sub3) this).anInt9408]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub3) this).aClass144_Sub2_9403, -1894129544);
	((Class151_Sub3) this).aLongArray9224[((Class151_Sub3) this).anInt9408]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub3) this).anIntArray9406[((Class151_Sub3) this).anInt9408]
	    = i;
	if (++((Class151_Sub3) this).anInt9408 >= 3)
	    ((Class151_Sub3) this).anInt9408 = 0;
	method2134();
    }
    
    public final void method2377(int i) {
	((Class151_Sub3) this).anInt9255 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class151_Sub3) this).anInt9255++;
	((Class151_Sub3) this).anInt9208
	    = 1 << ((Class151_Sub3) this).anInt9255;
    }
    
    public void method2186(float f, float f_515_) {
	((Class151_Sub3) this).aFloat9294 = f;
	((Class151_Sub3) this).aFloat9238 = f_515_;
	method8618();
    }
    
    public final void method2385(int i) {
	((Class151_Sub3) this).anInt9255 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class151_Sub3) this).anInt9255++;
	((Class151_Sub3) this).anInt9208
	    = 1 << ((Class151_Sub3) this).anInt9255;
    }
    
    public final void method2278(int i, int i_516_, int i_517_) {
	if (((Class151_Sub3) this).anInt9334 != i
	    || ((Class151_Sub3) this).anInt9335 != i_516_
	    || ((Class151_Sub3) this).anInt9336 != i_517_) {
	    ((Class151_Sub3) this).anInt9334 = i;
	    ((Class151_Sub3) this).anInt9335 = i_516_;
	    ((Class151_Sub3) this).anInt9336 = i_517_;
	    method8630();
	    method8574();
	}
    }
    
    public Class136 method2279(int i) {
	return (((Class151_Sub3) this).aBool9320
		? new Class136_Sub1_Sub1(this, i) : null);
    }
    
    public Class136 method2379(int i) {
	return (((Class151_Sub3) this).aBool9320
		? new Class136_Sub1_Sub1(this, i) : null);
    }
    
    public Class136 method2280(int i) {
	return (((Class151_Sub3) this).aBool9320
		? new Class136_Sub1_Sub1(this, i) : null);
    }
    
    public Class136 method2281(Class136 class136, Class136 class136_518_,
			       float f, Class136 class136_519_) {
	if (class136 != null && class136_518_ != null
	    && ((Class151_Sub3) this).aBool9320
	    && ((Class151_Sub3) this).aBool9364) {
	    Class136_Sub1_Sub2 class136_sub1_sub2 = null;
	    Class136_Sub1 class136_sub1 = (Class136_Sub1) class136;
	    Class136_Sub1 class136_sub1_520_ = (Class136_Sub1) class136_518_;
	    Class100_Sub2 class100_sub2 = class136_sub1.method8507();
	    Class100_Sub2 class100_sub2_521_ = class136_sub1_520_.method8507();
	    if (class100_sub2 != null && class100_sub2_521_ != null) {
		int i = ((((Class100_Sub2) class100_sub2).anInt8595
			  > ((Class100_Sub2) class100_sub2_521_).anInt8595)
			 ? ((Class100_Sub2) class100_sub2).anInt8595
			 : ((Class100_Sub2) class100_sub2_521_).anInt8595);
		if (class136 != class136_519_ && class136_518_ != class136_519_
		    && class136_519_ instanceof Class136_Sub1_Sub2) {
		    Class136_Sub1_Sub2 class136_sub1_sub2_522_
			= (Class136_Sub1_Sub2) class136_519_;
		    if (class136_sub1_sub2_522_.method10214() == i)
			class136_sub1_sub2 = class136_sub1_sub2_522_;
		}
		if (class136_sub1_sub2 == null)
		    class136_sub1_sub2 = new Class136_Sub1_Sub2(this, i);
		if (class136_sub1_sub2.method10215(class100_sub2,
						   class100_sub2_521_, f))
		    return class136_sub1_sub2;
	    }
	}
	return f < 0.5F ? class136 : class136_518_;
    }
    
    public Class136 method2282(Class136 class136, Class136 class136_523_,
			       float f, Class136 class136_524_) {
	if (class136 != null && class136_523_ != null
	    && ((Class151_Sub3) this).aBool9320
	    && ((Class151_Sub3) this).aBool9364) {
	    Class136_Sub1_Sub2 class136_sub1_sub2 = null;
	    Class136_Sub1 class136_sub1 = (Class136_Sub1) class136;
	    Class136_Sub1 class136_sub1_525_ = (Class136_Sub1) class136_523_;
	    Class100_Sub2 class100_sub2 = class136_sub1.method8507();
	    Class100_Sub2 class100_sub2_526_ = class136_sub1_525_.method8507();
	    if (class100_sub2 != null && class100_sub2_526_ != null) {
		int i = ((((Class100_Sub2) class100_sub2).anInt8595
			  > ((Class100_Sub2) class100_sub2_526_).anInt8595)
			 ? ((Class100_Sub2) class100_sub2).anInt8595
			 : ((Class100_Sub2) class100_sub2_526_).anInt8595);
		if (class136 != class136_524_ && class136_523_ != class136_524_
		    && class136_524_ instanceof Class136_Sub1_Sub2) {
		    Class136_Sub1_Sub2 class136_sub1_sub2_527_
			= (Class136_Sub1_Sub2) class136_524_;
		    if (class136_sub1_sub2_527_.method10214() == i)
			class136_sub1_sub2 = class136_sub1_sub2_527_;
		}
		if (class136_sub1_sub2 == null)
		    class136_sub1_sub2 = new Class136_Sub1_Sub2(this, i);
		if (class136_sub1_sub2.method10215(class100_sub2,
						   class100_sub2_526_, f))
		    return class136_sub1_sub2;
	    }
	}
	return f < 0.5F ? class136 : class136_523_;
    }
    
    public Class136 method2283(Class136 class136, Class136 class136_528_,
			       float f, Class136 class136_529_) {
	if (class136 != null && class136_528_ != null
	    && ((Class151_Sub3) this).aBool9320
	    && ((Class151_Sub3) this).aBool9364) {
	    Class136_Sub1_Sub2 class136_sub1_sub2 = null;
	    Class136_Sub1 class136_sub1 = (Class136_Sub1) class136;
	    Class136_Sub1 class136_sub1_530_ = (Class136_Sub1) class136_528_;
	    Class100_Sub2 class100_sub2 = class136_sub1.method8507();
	    Class100_Sub2 class100_sub2_531_ = class136_sub1_530_.method8507();
	    if (class100_sub2 != null && class100_sub2_531_ != null) {
		int i = ((((Class100_Sub2) class100_sub2).anInt8595
			  > ((Class100_Sub2) class100_sub2_531_).anInt8595)
			 ? ((Class100_Sub2) class100_sub2).anInt8595
			 : ((Class100_Sub2) class100_sub2_531_).anInt8595);
		if (class136 != class136_529_ && class136_528_ != class136_529_
		    && class136_529_ instanceof Class136_Sub1_Sub2) {
		    Class136_Sub1_Sub2 class136_sub1_sub2_532_
			= (Class136_Sub1_Sub2) class136_529_;
		    if (class136_sub1_sub2_532_.method10214() == i)
			class136_sub1_sub2 = class136_sub1_sub2_532_;
		}
		if (class136_sub1_sub2 == null)
		    class136_sub1_sub2 = new Class136_Sub1_Sub2(this, i);
		if (class136_sub1_sub2.method10215(class100_sub2,
						   class100_sub2_531_, f))
		    return class136_sub1_sub2;
	    }
	}
	return f < 0.5F ? class136 : class136_528_;
    }
    
    public final void method2048(Class136 class136) {
	((Class151_Sub3) this).aClass136_Sub1_9240 = (Class136_Sub1) class136;
    }
    
    public final void method2253(Class136 class136) {
	((Class151_Sub3) this).aClass136_Sub1_9240 = (Class136_Sub1) class136;
    }
    
    final void method8628() {
	if (((Class151_Sub3) this).aBool9276)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    final void method8629() {
	if (((Class151_Sub3) this).anInt9248 != 2) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 2;
	}
    }
    
    public final void method2096(int i, int i_533_, int i_534_, int i_535_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1646(i, i_533_, i_534_,
							     i_535_);
    }
    
    void method8630() {
	((Class151_Sub3) this).aFloat9338
	    = (((Class151_Sub3) this).aFloat9297
	       - (float) ((Class151_Sub3) this).anInt9336
	       - ((Class151_Sub3) this).aFloat9340);
	((Class151_Sub3) this).aFloat9337
	    = (((Class151_Sub3) this).aFloat9338
	       - ((float) ((Class151_Sub3) this).anInt9335
		  * ((Class151_Sub3) this).aFloat9339));
	if (((Class151_Sub3) this).aFloat9337
	    < ((Class151_Sub3) this).aFloat9296)
	    ((Class151_Sub3) this).aFloat9337
		= ((Class151_Sub3) this).aFloat9296;
	OpenGL.glFogf(2915, ((Class151_Sub3) this).aFloat9337);
	OpenGL.glFogf(2916, ((Class151_Sub3) this).aFloat9338);
	aFloatArray9361[0] = (float) (((Class151_Sub3) this).anInt9334
				      & 0xff0000) / 1.671168E7F;
	aFloatArray9361[1]
	    = (float) (((Class151_Sub3) this).anInt9334 & 0xff00) / 65280.0F;
	aFloatArray9361[2]
	    = (float) (((Class151_Sub3) this).anInt9334 & 0xff) / 255.0F;
	OpenGL.glFogfv(2918, aFloatArray9361, 0);
    }
    
    public final boolean method2304() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public boolean method2165() {
	return true;
    }
    
    public final void method2277(int i, int i_536_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1623(i, i_536_);
    }
    
    public final boolean method2292() {
	if (((Class151_Sub3) this).aClass124_9244 == null)
	    return false;
	return ((Class151_Sub3) this).aClass124_9244.method1619();
    }
    
    public boolean method2296() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		       .method9073());
    }
    
    public void method2270(int i, Class138 class138) {
	((Class151_Sub3) this).anInt9343 = i;
	((Class151_Sub3) this).aClass138_9344 = class138;
	((Class151_Sub3) this).aBool9341 = true;
    }
    
    Class151_Sub3(Canvas canvas, Class140 class140, Interface19 interface19,
		  Interface41 interface41, Interface44 interface44,
		  Interface43 interface43, int i) {
	super(class140, interface19, interface41, interface44, interface43);
	((Class151_Sub3) this).aClass403_9277 = new Class403();
	((Class151_Sub3) this).aClass403_9236 = new Class403();
	((Class151_Sub3) this).aClass400_9295 = new Class400();
	((Class151_Sub3) this).anInt9208 = 8;
	((Class151_Sub3) this).anInt9255 = 3;
	((Class151_Sub3) this).aBool9247 = false;
	((Class151_Sub3) this).aClass656_9373 = new Class656();
	((Class151_Sub3) this).anUnsafe9259 = null;
	((Class151_Sub3) this).aClass656_9262 = new Class656();
	((Class151_Sub3) this).aClass656_9264 = new Class656();
	((Class151_Sub3) this).aClass656_9217 = new Class656();
	((Class151_Sub3) this).aClass656_9265 = new Class656();
	((Class151_Sub3) this).aClass656_9267 = new Class656();
	((Class151_Sub3) this).aClass656_9268 = new Class656();
	((Class151_Sub3) this).aClass656_9269 = new Class656();
	((Class151_Sub3) this).aClass400_9282 = new Class400();
	((Class151_Sub3) this).aClass403_9283 = new Class403();
	((Class151_Sub3) this).aClass403_9284 = new Class403();
	((Class151_Sub3) this).aClass403_9285 = new Class403();
	((Class151_Sub3) this).aClass403_9286 = new Class403();
	((Class151_Sub3) this).aClass403_9351 = new Class403();
	((Class151_Sub3) this).aFloatArrayArray9288 = new float[6][4];
	((Class151_Sub3) this).aFloatArray9289 = new float[4];
	((Class151_Sub3) this).aFloat9294 = 0.0F;
	((Class151_Sub3) this).aFloat9238 = 1.0F;
	((Class151_Sub3) this).aFloat9296 = 0.0F;
	((Class151_Sub3) this).aFloat9297 = -1.0F;
	((Class151_Sub3) this).aClass400_9358 = new Class400();
	((Class151_Sub3) this).aClass403_9363 = new Class403();
	((Class151_Sub3) this).aClass403_9300 = new Class403();
	((Class151_Sub3) this).aFloatArray9301 = new float[16];
	((Class151_Sub3) this).aBool9303 = true;
	((Class151_Sub3) this).anInt9304 = 0;
	((Class151_Sub3) this).anInt9305 = 0;
	((Class151_Sub3) this).anInt9306 = 0;
	((Class151_Sub3) this).anInt9307 = 0;
	((Class151_Sub3) this).anInt9308 = 0;
	((Class151_Sub3) this).anInt9213 = 0;
	((Class151_Sub3) this).aFloatArray9317 = new float[4];
	((Class151_Sub3) this).aFloatArray9214 = new float[4];
	((Class151_Sub3) this).aFloatArray9323 = new float[4];
	((Class151_Sub3) this).aFloatArray9250 = new float[4];
	((Class151_Sub3) this).anInt9321 = -1;
	((Class151_Sub3) this).aFloat9322 = 1.0F;
	((Class151_Sub3) this).aFloat9249 = 1.0F;
	((Class151_Sub3) this).aFloat9272 = 1.0F;
	((Class151_Sub3) this).aFloat9326 = -1.0F;
	((Class151_Sub3) this).aFloat9197 = -1.0F;
	((Class151_Sub3) this).aClass487_Sub16Array9328
	    = new Class487_Sub16[anInt9314];
	((Class151_Sub3) this).anInt9334 = -1;
	((Class151_Sub3) this).anInt9335 = -1;
	((Class151_Sub3) this).anInt9336 = 0;
	((Class151_Sub3) this).aFloat9339 = 1.0F;
	((Class151_Sub3) this).aFloat9340 = 0.0F;
	((Class151_Sub3) this).aBool9342 = false;
	((Class151_Sub3) this).anInt9348 = 8448;
	((Class151_Sub3) this).anInt9292 = 8448;
	((Class151_Sub3) this).aFloat9367 = -1.0F;
	((Class151_Sub3) this).aFloat9386 = -1.0F;
	((Class151_Sub3) this).aClass134_Sub2Array9254 = new Class134_Sub2[8];
	((Class151_Sub3) this).aClass134_Sub2Array9388 = new Class134_Sub2[8];
	((Class151_Sub3) this).aClass487_Sub17_Sub1_9395
	    = new Class487_Sub17_Sub1(8192);
	((Class151_Sub3) this).anIntArray9200 = new int[1];
	((Class151_Sub3) this).anIntArray9370 = new int[1];
	((Class151_Sub3) this).anIntArray9398 = new int[1];
	((Class151_Sub3) this).aByteArray9399 = new byte[16384];
	((Class151_Sub3) this).aClass114_9228 = null;
	((Class151_Sub3) this).aClass114_9266 = null;
	((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	((Class151_Sub3) this).anIntArray9404 = new int[3];
	((Class151_Sub3) this).aLongArray9224 = new long[3];
	((Class151_Sub3) this).anIntArray9406 = new int[3];
	((Class151_Sub3) this).anInt9407 = 0;
	((Class151_Sub3) this).anInt9408 = 0;
	try {
	    try {
		Field field
		    = sun.misc.Unsafe.class.getDeclaredField("theUnsafe");
		field.setAccessible(true);
		((Class151_Sub3) this).anUnsafe9259 = (Unsafe) field.get(null);
	    } catch (Exception exception) {
		/* empty */
	    }
	    ((Class151_Sub3) this).anInt9241 = i;
	    Class637_Sub18.method9766((byte) 119).method334("jaclib",
							    -1960089392);
	    Class637_Sub18.method9766((byte) 109).method334("jaggl",
							    -1983982804);
	    ((Class151_Sub3) this).anOpenGL9369 = new OpenGL();
	    long l
		= ((Class151_Sub3) this).anOpenGL9369.init(canvas, 8, 8, 8, 24,
							   0,
							   ((Class151_Sub3)
							    this).anInt9241);
	    if (l == 0L)
		throw new RuntimeException("");
	    method8552();
	    int i_537_ = method8619();
	    if (i_537_ != 0)
		throw new RuntimeException("");
	    ((Class151_Sub3) this).anInt9384
		= ((Class151_Sub3) this).aBool9359 ? 33639 : 5121;
	    ((Class151_Sub3) this).aBool9396
		= ((Class151_Sub3) this).aString9356.indexOf("radeon") != -1;
	    boolean bool
		= ((Class151_Sub3) this).aString9329.indexOf("intel") != -1;
	    boolean bool_538_ = false;
	    boolean bool_539_ = false;
	    int i_540_ = 0;
	    if (((Class151_Sub3) this).aBool9396 || bool) {
		String[] strings
		    = Class429.method5254(((Class151_Sub3) this)
					      .aString9356.replace('/', ' '),
					  ' ', (byte) -62);
		int i_541_ = 0;
		for (/**/; i_541_ < strings.length; i_541_++) {
		    String string = strings[i_541_];
		    try {
			if (string.length() <= 0)
			    continue;
			if (string.charAt(0) == 'x' && string.length() >= 3
			    && Class610.method7427(string.substring(1, 3),
						   1454335979)) {
			    string = string.substring(1);
			    bool_539_ = true;
			}
			if (string.equals("hd")) {
			    bool_538_ = true;
			    continue;
			}
			if (string.startsWith("hd")) {
			    string = string.substring(2);
			    bool_538_ = true;
			}
			if (string.length() < 4
			    || !Class610.method7427(string.substring(0, 4),
						    1454335979))
			    continue;
			i_540_ = Class32.method780(string.substring(0, 4),
						   (byte) 5);
		    } catch (Exception exception) {
			continue;
		    }
		    break;
		}
	    }
	    if (((Class151_Sub3) this).anInt9241 != 0 && bool && !bool_538_)
		throw new RuntimeException_Sub3("");
	    if (((Class151_Sub3) this).aBool9396 || bool) {
		if (bool) {
		    if (!bool_538_) {
			((Class151_Sub3) this).aBool9364 = false;
			((Class151_Sub3) this).aBool9302 = false;
			((Class151_Sub3) this).aBool9368 = false;
		    }
		} else {
		    if (!bool_539_ && !bool_538_) {
			if (i_540_ >= 7000 && i_540_ <= 7999)
			    ((Class151_Sub3) this).aBool9346 = false;
			if (i_540_ >= 7000 && i_540_ <= 9250)
			    ((Class151_Sub3) this).aBool9372 = false;
		    }
		    if (!bool_538_ || i_540_ < 4000)
			((Class151_Sub3) this).aBool9376 = false;
		    ((Class151_Sub3) this).aBool9375
			&= ((Class151_Sub3) this).anOpenGL9369
			       .method1010("GL_ARB_half_float_pixel");
		    ((Class151_Sub3) this).aBool9327
			= ((Class151_Sub3) this).aBool9346;
		}
	    }
	    ((Class151_Sub3) this).aBool9382
		= !((Class151_Sub3) this).aString9329.equals("s3 graphics");
	    if (((Class151_Sub3) this).aBool9346) {
		try {
		    int[] is = new int[1];
		    OpenGL.glGenBuffersARB(1, is, 0);
		} catch (Throwable throwable) {
		    throw new RuntimeException("");
		}
	    }
	    Class213.method3107(false, true, (byte) 0);
	    ((Class151_Sub3) this).aBool9247 = true;
	    ((Class151_Sub3) this).aClass112_9242
		= new Class112(this, anInterface19_1837);
	    method8554();
	    ((Class151_Sub3) this).aClass111_9252 = new Class111(this);
	    ((Class151_Sub3) this).aClass124_9244 = new Class124(this);
	    if (!((Class151_Sub3) this).aClass124_9244.method1645()) {
		((Class151_Sub3) this).aClass124_9244.method1618();
		((Class151_Sub3) this).aClass124_9244 = null;
	    } else {
		((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		    = new Class487_Sub4_Sub3(this);
		if (!((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
			 .method10273()) {
		    ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
			.method9084();
		    ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 = null;
		}
		((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		    = new Class487_Sub4_Sub1(this);
		if (!((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
			 .method10240()) {
		    ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
			.method9084();
		    ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 = null;
		}
		((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
		    = new Class487_Sub4_Sub2(this);
		if (!((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
			 .method10247()) {
		    ((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
			.method9084();
		    ((Class151_Sub3) this).aClass487_Sub4_Sub2_9360 = null;
		}
	    }
	    method1991(canvas, new Class144_Sub1_Sub3(this, canvas, l),
		       -891216833);
	    method2012(canvas, -684099565);
	    ((Class151_Sub3) this).aClass104_9243 = new Class104(this);
	    method8553();
	    method2220();
	    if (((Class151_Sub3) this).aClass124_9244 != null) {
		method8641();
		method8576();
	    }
	} catch (Throwable throwable) {
	    throwable.printStackTrace();
	    method2078(-1650546235);
	    if (throwable instanceof OutOfMemoryError)
		throw (OutOfMemoryError) throwable;
	    if (throwable instanceof RuntimeException_Sub3)
		throw (RuntimeException_Sub3) throwable;
	    throw new RuntimeException("");
	}
    }
    
    public void method2093(int i, int i_542_, int i_543_, int i_544_,
			   int i_545_, int i_546_) {
	method8585();
	method8606(i_546_);
	float f = (float) i_543_ - (float) i;
	float f_547_ = (float) i_544_ - (float) i_542_;
	if (f == 0.0F && f_547_ == 0.0F)
	    f = 1.0F;
	else {
	    float f_548_
		= (float) (1.0
			   / Math.sqrt((double) (f * f + f_547_ * f_547_)));
	    f *= f_548_;
	    f_547_ *= f_548_;
	}
	OpenGL.glColor4ub((byte) (i_545_ >> 16), (byte) (i_545_ >> 8),
			  (byte) i_545_, (byte) (i_545_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_542_ + 0.35F);
	OpenGL.glVertex2f((float) i_543_ + f + 0.35F,
			  (float) i_544_ + f_547_ + 0.35F);
	OpenGL.glEnd();
    }
    
    void method8631() {
	aFloatArray9361[0] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9361, 0);
	aFloatArray9361[0] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9361, 0);
    }
    
    public boolean method2145() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		       .method9073());
    }
    
    void method8632() {
	aFloatArray9361[0] = (((Class151_Sub3) this).aFloat9325
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (((Class151_Sub3) this).aFloat9325
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (((Class151_Sub3) this).aFloat9325
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightModelfv(2899, aFloatArray9361, 0);
    }
    
    public void method2299(float f, float f_549_, float f_550_, float f_551_,
			   float f_552_) {
	Class487_Sub4_Sub1.aFloat11253 = f;
	Class487_Sub4_Sub1.aFloat11250 = f_549_;
	Class487_Sub4_Sub1.aFloat11251 = f_550_;
	Class487_Sub4_Sub1.aFloat11252 = f_551_;
	Class487_Sub4_Sub1.aFloat11254 = f_552_;
    }
    
    public void method2300(float f, float f_553_, float f_554_, float f_555_,
			   float f_556_) {
	Class487_Sub4_Sub1.aFloat11253 = f;
	Class487_Sub4_Sub1.aFloat11250 = f_553_;
	Class487_Sub4_Sub1.aFloat11251 = f_554_;
	Class487_Sub4_Sub1.aFloat11252 = f_555_;
	Class487_Sub4_Sub1.aFloat11254 = f_556_;
    }
    
    public boolean method2368() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub2_9360 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
		       .method9073());
    }
    
    public boolean method2210() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub2_9360 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub2_9360
		       .method9073());
    }
    
    public void method2303(Class149 class149, float f, Class149 class149_557_,
			   float f_558_, Class149 class149_559_,
			   float f_560_) {
	int i = 0;
	if (class149_559_ == null && f_560_ > 0.0F)
	    f_560_ = 0.0F;
	if (class149_557_ == null && f_558_ > 0.0F) {
	    class149_557_ = class149_559_;
	    class149_559_ = null;
	    f_558_ = f_560_;
	    f_560_ = 0.0F;
	}
	if (class149 == null && f > 0.0F) {
	    class149 = class149_557_;
	    class149_557_ = class149_559_;
	    class149_559_ = null;
	    f = f_558_;
	    f_558_ = f_560_;
	    f_560_ = 0.0F;
	}
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[0]
	    = (Class149_Sub1) class149;
	Class487_Sub4_Sub2.aFloatArray11277[0] = f;
	if (f > 0.0F)
	    i++;
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[1]
	    = (Class149_Sub1) class149_557_;
	Class487_Sub4_Sub2.aFloatArray11277[1] = f_558_;
	if (f_558_ > 0.0F)
	    i++;
	Class487_Sub4_Sub2.aClass149_Sub1Array11274[2]
	    = (Class149_Sub1) class149_559_;
	Class487_Sub4_Sub2.aFloatArray11277[2] = f_560_;
	if (f_560_ > 0.0F)
	    i++;
	Class487_Sub4_Sub2.anInt11271 = i;
	Class487_Sub4_Sub2.aFloat11272 = 1.0F - (f + f_558_ + f_560_);
    }
    
    final void method8633(Class87 class87, Class87 class87_561_,
			  Class87 class87_562_, Class87 class87_563_) {
	if (class87 != null) {
	    method8581(((Class87) class87).anInterface10_1214);
	    OpenGL.glVertexPointer(((Class87) class87).aByte1213,
				   ((Class87) class87).aShort1211,
				   ((Class151_Sub3) this)
				       .anInterface10_9377.method38(),
				   (((Class151_Sub3) this)
					.anInterface10_9377.method39()
				    + (long) ((Class87) class87).aByte1212));
	    OpenGL.glEnableClientState(32884);
	} else
	    OpenGL.glDisableClientState(32884);
	if (class87_561_ != null) {
	    method8581(((Class87) class87_561_).anInterface10_1214);
	    OpenGL.glNormalPointer
		(((Class87) class87_561_).aShort1211,
		 ((Class151_Sub3) this).anInterface10_9377.method38(),
		 (((Class151_Sub3) this).anInterface10_9377.method39()
		  + (long) ((Class87) class87_561_).aByte1212));
	    OpenGL.glEnableClientState(32885);
	} else
	    OpenGL.glDisableClientState(32885);
	if (class87_562_ != null) {
	    method8581(((Class87) class87_562_).anInterface10_1214);
	    OpenGL.glColorPointer
		(((Class87) class87_562_).aByte1213,
		 ((Class87) class87_562_).aShort1211,
		 ((Class151_Sub3) this).anInterface10_9377.method38(),
		 (((Class151_Sub3) this).anInterface10_9377.method39()
		  + (long) ((Class87) class87_562_).aByte1212));
	    OpenGL.glEnableClientState(32886);
	} else
	    OpenGL.glDisableClientState(32886);
	if (class87_563_ != null) {
	    method8581(((Class87) class87_563_).anInterface10_1214);
	    OpenGL.glTexCoordPointer
		(((Class87) class87_563_).aByte1213,
		 ((Class87) class87_563_).aShort1211,
		 ((Class151_Sub3) this).anInterface10_9377.method38(),
		 (((Class151_Sub3) this).anInterface10_9377.method39()
		  + (long) ((Class87) class87_563_).aByte1212));
	    OpenGL.glEnableClientState(32888);
	} else
	    OpenGL.glDisableClientState(32888);
    }
    
    public int method2256() {
	return 4;
    }
    
    public int method2026() {
	if (((Class151_Sub3) this).aBool9310) {
	    if ((((Class151_Sub3) this).aLongArray9224
		 [((Class151_Sub3) this).anInt9407])
		== 0L)
		return -1;
	    int i
		= OpenGL.glClientWaitSync((((Class151_Sub3) this)
					   .aLongArray9224
					   [((Class151_Sub3) this).anInt9407]),
					  0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return i != 37147 ? (((Class151_Sub3) this).anIntArray9406
				 [((Class151_Sub3) this).anInt9407]) : -1;
	}
	return -1;
    }
    
    public Class149 method2319(int[] is) {
	return new Class149_Sub1(this, is);
    }
    
    final void method2073(float f, float f_564_, float f_565_, float f_566_,
			  float f_567_, float f_568_) {
	Class487_Sub4_Sub3.aFloat11337 = f;
	Class487_Sub4_Sub3.aFloat11324 = f_564_;
	Class487_Sub4_Sub3.aFloat11321 = f_565_;
    }
    
    final void method2311(float f, float f_569_, float f_570_, float f_571_,
			  float f_572_, float f_573_) {
	Class487_Sub4_Sub3.aFloat11337 = f;
	Class487_Sub4_Sub3.aFloat11324 = f_569_;
	Class487_Sub4_Sub3.aFloat11321 = f_570_;
    }
    
    public void method2313(int i, Class138 class138) {
	((Class151_Sub3) this).anInt9343 = i;
	((Class151_Sub3) this).aClass138_9344 = class138;
	((Class151_Sub3) this).aBool9341 = true;
    }
    
    public Class127 method2120() {
	int i = -1;
	if (((Class151_Sub3) this).aString9329.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub3) this).aString9329.indexOf("intel") != -1)
	    i = 32902;
	else if (((Class151_Sub3) this).aString9329.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, "OpenGL", ((Class151_Sub3) this).anInt9293,
			    ((Class151_Sub3) this).aString9356, 0L, false);
    }
    
    public final void method2011(float f) {
	if (((Class151_Sub3) this).aFloat9325 != f) {
	    ((Class151_Sub3) this).aFloat9325 = f;
	    method8632();
	}
    }
    
    public void method2315(float f, float f_574_, float f_575_, float[] fs) {
	float f_576_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_574_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_575_));
	float f_577_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * f_574_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * f_575_));
	float f_578_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * f_574_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * f_575_));
	float f_579_
	    = (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9283.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[6]
		  * f_574_)
	       + (((Class151_Sub3) this).aClass403_9283.aFloatArray4592[10]
		  * f_575_));
	fs[0] = (((Class151_Sub3) this).aFloat9204
		 + ((Class151_Sub3) this).aFloat9291 * f_577_ / f_576_);
	fs[1] = (((Class151_Sub3) this).aFloat9203
		 + ((Class151_Sub3) this).aFloat9278 * f_578_ / f_576_);
	fs[2] = f_579_;
    }
    
    public void method2203(float f, float f_580_, float f_581_, float[] fs) {
	float f_582_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * f_580_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * f_581_));
	float f_583_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_580_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_581_));
	if (f_582_ < -f_583_ || f_582_ > f_583_) {
	    float[] fs_584_ = fs;
	    float[] fs_585_ = fs;
	    fs[2] = Float.NaN;
	    fs_585_[1] = Float.NaN;
	    fs_584_[0] = Float.NaN;
	} else {
	    float f_586_
		= (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		      * f)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		      * f_580_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		      * f_581_));
	    if (f_586_ < -f_583_ || f_586_ > f_583_) {
		float[] fs_587_ = fs;
		float[] fs_588_ = fs;
		fs[2] = Float.NaN;
		fs_588_[1] = Float.NaN;
		fs_587_[0] = Float.NaN;
	    } else {
		float f_589_ = ((((Class151_Sub3) this).aClass403_9351
				 .aFloatArray4592[13])
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[1]) * f
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[5]) * f_580_
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[9]) * f_581_);
		if (f_589_ < -f_583_ || f_589_ > f_583_) {
		    float[] fs_590_ = fs;
		    float[] fs_591_ = fs;
		    fs[2] = Float.NaN;
		    fs_591_[1] = Float.NaN;
		    fs_590_[0] = Float.NaN;
		} else {
		    float f_592_ = ((((Class151_Sub3) this).aClass403_9283
				     .aFloatArray4592[14])
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[2]) * f
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[6]) * f_580_
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[10]) * f_581_);
		    fs[0] = (((Class151_Sub3) this).aFloat9204
			     + (((Class151_Sub3) this).aFloat9291 * f_586_
				/ f_583_));
		    fs[1] = (((Class151_Sub3) this).aFloat9203
			     + (((Class151_Sub3) this).aFloat9278 * f_589_
				/ f_583_));
		    fs[2] = f_592_;
		}
	    }
	}
    }
    
    public void method2317(float f, float f_593_, float f_594_, float[] fs) {
	float f_595_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * f_593_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * f_594_));
	float f_596_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_593_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_594_));
	if (f_595_ < -f_596_ || f_595_ > f_596_) {
	    float[] fs_597_ = fs;
	    float[] fs_598_ = fs;
	    fs[2] = Float.NaN;
	    fs_598_[1] = Float.NaN;
	    fs_597_[0] = Float.NaN;
	} else {
	    float f_599_
		= (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		      * f)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		      * f_593_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		      * f_594_));
	    if (f_599_ < -f_596_ || f_599_ > f_596_) {
		float[] fs_600_ = fs;
		float[] fs_601_ = fs;
		fs[2] = Float.NaN;
		fs_601_[1] = Float.NaN;
		fs_600_[0] = Float.NaN;
	    } else {
		float f_602_ = ((((Class151_Sub3) this).aClass403_9351
				 .aFloatArray4592[13])
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[1]) * f
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[5]) * f_593_
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[9]) * f_594_);
		if (f_602_ < -f_596_ || f_602_ > f_596_) {
		    float[] fs_603_ = fs;
		    float[] fs_604_ = fs;
		    fs[2] = Float.NaN;
		    fs_604_[1] = Float.NaN;
		    fs_603_[0] = Float.NaN;
		} else {
		    float f_605_ = ((((Class151_Sub3) this).aClass403_9283
				     .aFloatArray4592[14])
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[2]) * f
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[6]) * f_593_
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[10]) * f_594_);
		    fs[0] = (((Class151_Sub3) this).aFloat9204
			     + (((Class151_Sub3) this).aFloat9291 * f_599_
				/ f_596_));
		    fs[1] = (((Class151_Sub3) this).aFloat9203
			     + (((Class151_Sub3) this).aFloat9278 * f_602_
				/ f_596_));
		    fs[2] = f_605_;
		}
	    }
	}
    }
    
    public void method2318(float f, float f_606_, float f_607_, float[] fs) {
	float f_608_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * f_606_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * f_607_));
	float f_609_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + ((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3] * f
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * f_606_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * f_607_));
	if (f_608_ < -f_609_ || f_608_ > f_609_) {
	    float[] fs_610_ = fs;
	    float[] fs_611_ = fs;
	    fs[2] = Float.NaN;
	    fs_611_[1] = Float.NaN;
	    fs_610_[0] = Float.NaN;
	} else {
	    float f_612_
		= (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		      * f)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		      * f_606_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		      * f_607_));
	    if (f_612_ < -f_609_ || f_612_ > f_609_) {
		float[] fs_613_ = fs;
		float[] fs_614_ = fs;
		fs[2] = Float.NaN;
		fs_614_[1] = Float.NaN;
		fs_613_[0] = Float.NaN;
	    } else {
		float f_615_ = ((((Class151_Sub3) this).aClass403_9351
				 .aFloatArray4592[13])
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[1]) * f
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[5]) * f_606_
				+ (((Class151_Sub3) this).aClass403_9351
				   .aFloatArray4592[9]) * f_607_);
		if (f_615_ < -f_609_ || f_615_ > f_609_) {
		    float[] fs_616_ = fs;
		    float[] fs_617_ = fs;
		    fs[2] = Float.NaN;
		    fs_617_[1] = Float.NaN;
		    fs_616_[0] = Float.NaN;
		} else {
		    float f_618_ = ((((Class151_Sub3) this).aClass403_9283
				     .aFloatArray4592[14])
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[2]) * f
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[6]) * f_606_
				    + (((Class151_Sub3) this).aClass403_9283
				       .aFloatArray4592[10]) * f_607_);
		    fs[0] = (((Class151_Sub3) this).aFloat9204
			     + (((Class151_Sub3) this).aFloat9291 * f_612_
				/ f_609_));
		    fs[1] = (((Class151_Sub3) this).aFloat9203
			     + (((Class151_Sub3) this).aFloat9278 * f_615_
				/ f_609_));
		    fs[2] = f_618_;
		}
	    }
	}
    }
    
    public Class144_Sub2 method1986() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public Class144_Sub2 method2320() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public Class114 method2235(Class153 class153, boolean bool) {
	int[] is = class153.method2455(false);
	Class114 class114
	    = method2067(is, 0, class153.method2474(), class153.method2474(),
			 class153.method2441(), 16711680);
	class114.method1553(class153.method2442(), class153.method2444(),
			    class153.method2473(), class153.method2475());
	return class114;
    }
    
    public Class144_Sub2 method2322() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public Class144_Sub2 method2288() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public Interface18 method2324(int i, int i_619_, Class116 class116,
				  Class155 class155, int i_620_) {
	return new Class487_Sub35_Sub3(this, class116, class155, i, i_619_,
				       i_620_);
    }
    
    public Class400 method2077() {
	return ((Class151_Sub3) this).aClass400_9295;
    }
    
    public Interface16 method2326(int i, int i_621_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_621_);
    }
    
    void method8634() {
	int i = 0;
	while (!((Class151_Sub3) this).anOpenGL9369.method1011()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class118.method1565(1000L);
	}
    }
    
    void method2388(int i, int i_622_, int i_623_, int i_624_, int i_625_) {
	method8585();
	method8606(i_625_);
	float f = (float) i + 0.35F;
	float f_626_ = (float) i_622_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_624_ >> 16), (byte) (i_624_ >> 8),
			  (byte) i_624_, (byte) (i_624_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_626_);
	OpenGL.glVertex2f(f, f_626_ + (float) i_623_);
	OpenGL.glEnd();
    }
    
    void method8635() {
	((Class151_Sub3) this).aClass100Array9352
	    = new Class100[((Class151_Sub3) this).anInt9347];
	((Class151_Sub3) this).aClass100_Sub3_9353
	    = new Class100_Sub3(this, 3553, Class116.aClass116_1448,
				Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	for (int i = 0; i < 8; i++) {
	    ((Class151_Sub3) this).aClass134_Sub2Array9254[i]
		= new Class134_Sub2(this);
	    ((Class151_Sub3) this).aClass134_Sub2Array9388[i]
		= new Class134_Sub2(this);
	}
	if (((Class151_Sub3) this).aBool9364) {
	    ((Class151_Sub3) this).aClass144_Sub2_Sub1_9389
		= new Class144_Sub2_Sub1(this);
	    new Class144_Sub2_Sub1(this);
	}
    }
    
    void method8636() {
	((Class151_Sub3) this).aClass100Array9352
	    = new Class100[((Class151_Sub3) this).anInt9347];
	((Class151_Sub3) this).aClass100_Sub3_9353
	    = new Class100_Sub3(this, 3553, Class116.aClass116_1448,
				Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	for (int i = 0; i < 8; i++) {
	    ((Class151_Sub3) this).aClass134_Sub2Array9254[i]
		= new Class134_Sub2(this);
	    ((Class151_Sub3) this).aClass134_Sub2Array9388[i]
		= new Class134_Sub2(this);
	}
	if (((Class151_Sub3) this).aBool9364) {
	    ((Class151_Sub3) this).aClass144_Sub2_Sub1_9389
		= new Class144_Sub2_Sub1(this);
	    new Class144_Sub2_Sub1(this);
	}
    }
    
    void method8637() {
	method8588(-2);
	for (int i = ((Class151_Sub3) this).anInt9347 - 1; i >= 0; i--) {
	    method8590(i);
	    method8591(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method8594(8448, 8448);
	method8595(2, 34168, 770);
	method8599();
	((Class151_Sub3) this).anInt9273 = 1;
	((Class151_Sub3) this).anInt9231 = 0;
	((Class151_Sub3) this).aBool9276 = true;
	if (((Class151_Sub3) this).aBool9383)
	    OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
	else
	    OpenGL.glBlendFunc(770, 771);
	((Class151_Sub3) this).anInt9354 = 1;
	((Class151_Sub3) this).aByte9279 = (byte) -1;
	method8610((byte) 0);
	((Class151_Sub3) this).aBool9298 = true;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, (float) ((Class151_Sub3) this).aByte9279);
	if (((Class151_Sub3) this).aBool9302) {
	    if (((Class151_Sub3) this).anInt9241 == 0)
		OpenGL.glDisable(32925);
	    else
		OpenGL.glEnable(32925);
	    OpenGL.glDisable(32926);
	}
	OpenGL.glColorMask(true, true, true, true);
	((Class151_Sub3) this).aBool9275 = true;
	method8600(true);
	method8555(true);
	method8603(true);
	method8604(true);
	method2174(0.0F, 1.0F);
	method8566();
	((Class151_Sub3) this).anOpenGL9369.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_627_ = 16384 + i;
	    OpenGL.glLightfv(i_627_, 4608, fs, 0);
	    OpenGL.glLightf(i_627_, 4615, 0.0F);
	    OpenGL.glLightf(i_627_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class151_Sub3) this).aBool9374)
	    OpenGL.glEnable(34895);
	((Class151_Sub3) this).anInt9334 = -1;
	((Class151_Sub3) this).anInt9321 = -1;
	method2221();
	method2036();
    }
    
    void method8638() {
	method8588(-2);
	for (int i = ((Class151_Sub3) this).anInt9347 - 1; i >= 0; i--) {
	    method8590(i);
	    method8591(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method8594(8448, 8448);
	method8595(2, 34168, 770);
	method8599();
	((Class151_Sub3) this).anInt9273 = 1;
	((Class151_Sub3) this).anInt9231 = 0;
	((Class151_Sub3) this).aBool9276 = true;
	if (((Class151_Sub3) this).aBool9383)
	    OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
	else
	    OpenGL.glBlendFunc(770, 771);
	((Class151_Sub3) this).anInt9354 = 1;
	((Class151_Sub3) this).aByte9279 = (byte) -1;
	method8610((byte) 0);
	((Class151_Sub3) this).aBool9298 = true;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, (float) ((Class151_Sub3) this).aByte9279);
	if (((Class151_Sub3) this).aBool9302) {
	    if (((Class151_Sub3) this).anInt9241 == 0)
		OpenGL.glDisable(32925);
	    else
		OpenGL.glEnable(32925);
	    OpenGL.glDisable(32926);
	}
	OpenGL.glColorMask(true, true, true, true);
	((Class151_Sub3) this).aBool9275 = true;
	method8600(true);
	method8555(true);
	method8603(true);
	method8604(true);
	method2174(0.0F, 1.0F);
	method8566();
	((Class151_Sub3) this).anOpenGL9369.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_628_ = 16384 + i;
	    OpenGL.glLightfv(i_628_, 4608, fs, 0);
	    OpenGL.glLightf(i_628_, 4615, 0.0F);
	    OpenGL.glLightf(i_628_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class151_Sub3) this).aBool9374)
	    OpenGL.glEnable(34895);
	((Class151_Sub3) this).anInt9334 = -1;
	((Class151_Sub3) this).anInt9321 = -1;
	method2221();
	method2036();
    }
    
    void method8639() {
	method8588(-2);
	for (int i = ((Class151_Sub3) this).anInt9347 - 1; i >= 0; i--) {
	    method8590(i);
	    method8591(null);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	}
	method8594(8448, 8448);
	method8595(2, 34168, 770);
	method8599();
	((Class151_Sub3) this).anInt9273 = 1;
	((Class151_Sub3) this).anInt9231 = 0;
	((Class151_Sub3) this).aBool9276 = true;
	if (((Class151_Sub3) this).aBool9383)
	    OpenGL.glBlendFuncSeparate(770, 771, 0, 0);
	else
	    OpenGL.glBlendFunc(770, 771);
	((Class151_Sub3) this).anInt9354 = 1;
	((Class151_Sub3) this).aByte9279 = (byte) -1;
	method8610((byte) 0);
	((Class151_Sub3) this).aBool9298 = true;
	OpenGL.glEnable(3008);
	OpenGL.glAlphaFunc(516, (float) ((Class151_Sub3) this).aByte9279);
	if (((Class151_Sub3) this).aBool9302) {
	    if (((Class151_Sub3) this).anInt9241 == 0)
		OpenGL.glDisable(32925);
	    else
		OpenGL.glEnable(32925);
	    OpenGL.glDisable(32926);
	}
	OpenGL.glColorMask(true, true, true, true);
	((Class151_Sub3) this).aBool9275 = true;
	method8600(true);
	method8555(true);
	method8603(true);
	method8604(true);
	method2174(0.0F, 1.0F);
	method8566();
	((Class151_Sub3) this).anOpenGL9369.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_629_ = 16384 + i;
	    OpenGL.glLightfv(i_629_, 4608, fs, 0);
	    OpenGL.glLightf(i_629_, 4615, 0.0F);
	    OpenGL.glLightf(i_629_, 4616, 0.0F);
	}
	OpenGL.glEnable(16384);
	OpenGL.glEnable(16385);
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	if (((Class151_Sub3) this).aBool9374)
	    OpenGL.glEnable(34895);
	((Class151_Sub3) this).anInt9334 = -1;
	((Class151_Sub3) this).anInt9321 = -1;
	method2221();
	method2036();
    }
    
    final synchronized void method8640(int i, int i_630_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_630_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub3) this).aClass656_9264.method7791(class487_sub28,
							 (byte) 3);
    }
    
    void method2329() {
	for (Class487 class487 = ((Class151_Sub3) this).aClass656_9373
				     .method7795((short) 1611);
	     class487 != null;
	     class487
		 = ((Class151_Sub3) this).aClass656_9373.method7798((byte) 10))
	    ((Class487_Sub26_Sub2) class487).method10271();
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1618();
	if (((Class151_Sub3) this).aBool9247) {
	    Class223.method3235(false, true, 251099845);
	    ((Class151_Sub3) this).aBool9247 = false;
	}
    }
    
    void method2330() {
	for (Class487 class487 = ((Class151_Sub3) this).aClass656_9373
				     .method7795((short) 1598);
	     class487 != null;
	     class487 = ((Class151_Sub3) this).aClass656_9373
			    .method7798((byte) -40))
	    ((Class487_Sub26_Sub2) class487).method10271();
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1618();
	if (((Class151_Sub3) this).aBool9247) {
	    Class223.method3235(false, true, -1260854784);
	    ((Class151_Sub3) this).aBool9247 = false;
	}
    }
    
    public boolean method2254() {
	return true;
    }
    
    Class144_Sub1 method2331(Canvas canvas, int i, int i_631_) {
	return new Class144_Sub1_Sub3(this, canvas);
    }
    
    Class144_Sub1 method2332(Canvas canvas, int i, int i_632_) {
	return new Class144_Sub1_Sub3(this, canvas);
    }
    
    public void method2347(int i, int i_633_, int i_634_, int i_635_,
			   int i_636_, int i_637_) {
	float f = (float) i + 0.35F;
	float f_638_ = (float) i_633_ + 0.35F;
	float f_639_ = f + (float) i_634_;
	float f_640_ = f_638_ + (float) i_635_;
	method8585();
	method8606(i_637_);
	OpenGL.glColor4ub((byte) (i_636_ >> 16), (byte) (i_636_ >> 8),
			  (byte) i_636_, (byte) (i_636_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_638_);
	OpenGL.glVertex2f(f, f_640_);
	OpenGL.glVertex2f(f_639_, f_640_);
	OpenGL.glVertex2f(f_639_, f_638_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    public void method2345() {
	if (((Class151_Sub3) this).aBool9310) {
	    ((Class151_Sub3) this).aClass114_9228 = null;
	    if (((Class151_Sub3) this).aClass144_Sub2_9403 != null) {
		((Class151_Sub3) this).aClass144_Sub2_9403.method80();
		((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, ((Class151_Sub3) this).anIntArray9404,
				      0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub3) this).anIntArray9404[i] = 0;
		if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224
					[i]);
		    ((Class151_Sub3) this).aLongArray9224[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    ((Class151_Sub3) this).aClass114_9266 = null;
	    ((Class151_Sub3) this).aClass114_9228 = null;
	}
    }
    
    public void method2004() {
	if (((Class151_Sub3) this).aBool9382 && aClass144_1857 != null) {
	    int i = ((Class151_Sub3) this).anInt9306;
	    int i_641_ = ((Class151_Sub3) this).anInt9307;
	    int i_642_ = ((Class151_Sub3) this).anInt9304;
	    int i_643_ = ((Class151_Sub3) this).anInt9305;
	    method2036();
	    int i_644_ = ((Class151_Sub3) this).anInt9287;
	    int i_645_ = ((Class151_Sub3) this).anInt9311;
	    int i_646_ = ((Class151_Sub3) this).anInt9312;
	    int i_647_ = ((Class151_Sub3) this).anInt9380;
	    method2221();
	    OpenGL.glReadBuffer(1028);
	    OpenGL.glDrawBuffer(1029);
	    method8566();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8591(null);
	    method8588(-2);
	    method8592(1);
	    method8606(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, aClass144_1857.method1943(),
				aClass144_1857.method1944(), 6144);
	    OpenGL.glFlush();
	    OpenGL.glReadBuffer(1029);
	    OpenGL.glDrawBuffer(1029);
	    method2381(i, i_642_, i_641_, i_643_);
	    method2034(i_644_, i_645_, i_646_, i_647_);
	}
    }
    
    public boolean method2335() {
	if (((Class151_Sub3) this).aBool9310
	    && (((Class151_Sub3) this).aLongArray9224
		[((Class151_Sub3) this).anInt9408]) != 0L)
	    return false;
	return true;
    }
    
    public Class152 method2243(Class4 class4, Class153[] class153s,
			       boolean bool) {
	return new Class152_Sub2(this, class4, class153s, bool);
    }
    
    public void method2357(int i, int i_648_, int[] is, int[] is_649_) {
	method8558(i, i_648_, is, is_649_);
    }
    
    public final void method2198(int i, int i_650_, int i_651_, int i_652_) {
	if (((Class151_Sub3) this).anInt9306 < i)
	    ((Class151_Sub3) this).anInt9306 = i;
	if (((Class151_Sub3) this).anInt9307 > i_651_)
	    ((Class151_Sub3) this).anInt9307 = i_651_;
	if (((Class151_Sub3) this).anInt9304 < i_650_)
	    ((Class151_Sub3) this).anInt9304 = i_650_;
	if (((Class151_Sub3) this).anInt9305 > i_652_)
	    ((Class151_Sub3) this).anInt9305 = i_652_;
	OpenGL.glEnable(3089);
	method8562();
    }
    
    public boolean method2025() {
	return true;
    }
    
    public void method2338(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    public void method2339(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    public void method2215(int i, int i_653_, int i_654_, int i_655_,
			   int i_656_, int i_657_, Class131 class131,
			   int i_658_, int i_659_) {
	Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	Class100_Sub3_Sub1 class100_sub3_sub1
	    = ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	method8586();
	method8591(((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666);
	method8606(i_657_);
	method8594(7681, 8448);
	method8595(0, 34167, 768);
	float f
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11027);
	float f_660_
	    = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
	       / (float) ((Class100_Sub3_Sub1) class100_sub3_sub1).anInt11028);
	float f_661_ = (float) i_654_ - (float) i;
	float f_662_ = (float) i_655_ - (float) i_653_;
	float f_663_ = (float) (1.0 / Math.sqrt((double) (f_661_ * f_661_
							  + f_662_ * f_662_)));
	f_661_ *= f_663_;
	f_662_ *= f_663_;
	OpenGL.glColor4ub((byte) (i_656_ >> 16), (byte) (i_656_ >> 8),
			  (byte) i_656_, (byte) (i_656_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glTexCoord2f(f * (float) (i - i_658_),
			    f_660_ * (float) (i_653_ - i_659_));
	OpenGL.glVertex2f((float) i + 0.35F, (float) i_653_ + 0.35F);
	OpenGL.glTexCoord2f(f * (float) (i_654_ - i_658_),
			    f_660_ * (float) (i_655_ - i_659_));
	OpenGL.glVertex2f((float) i_654_ + f_661_ + 0.35F,
			  (float) i_655_ + f_662_ + 0.35F);
	OpenGL.glEnd();
	method8595(0, 5890, 768);
    }
    
    public void method2341(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    public void method2171(long l) {
	if (OpenGL.glUnmapBufferARB(35051)) {
	    /* empty */
	}
	OpenGL.glBindBufferARB(35051, 0);
    }
    
    boolean method8641() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public void method2344() {
	if (((Class151_Sub3) this).aBool9310) {
	    ((Class151_Sub3) this).aClass114_9228 = null;
	    if (((Class151_Sub3) this).aClass144_Sub2_9403 != null) {
		((Class151_Sub3) this).aClass144_Sub2_9403.method80();
		((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, ((Class151_Sub3) this).anIntArray9404,
				      0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub3) this).anIntArray9404[i] = 0;
		if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224
					[i]);
		    ((Class151_Sub3) this).aLongArray9224[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    ((Class151_Sub3) this).aClass114_9266 = null;
	    ((Class151_Sub3) this).aClass114_9228 = null;
	}
    }
    
    public void method2355(int i, Class138 class138) {
	if (!((Class151_Sub3) this).aBool9341)
	    throw new RuntimeException("");
	((Class151_Sub3) this).anInt9343 = i;
	((Class151_Sub3) this).aClass138_9344 = class138;
	if (((Class151_Sub3) this).aBool9342) {
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8125();
	}
    }
    
    public void method2383() {
	if (((Class151_Sub3) this).aBool9310) {
	    ((Class151_Sub3) this).aClass114_9228 = null;
	    if (((Class151_Sub3) this).aClass144_Sub2_9403 != null) {
		((Class151_Sub3) this).aClass144_Sub2_9403.method80();
		((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, ((Class151_Sub3) this).anIntArray9404,
				      0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub3) this).anIntArray9404[i] = 0;
		if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224
					[i]);
		    ((Class151_Sub3) this).aLongArray9224[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    ((Class151_Sub3) this).aClass114_9266 = null;
	    ((Class151_Sub3) this).aClass114_9228 = null;
	}
    }
    
    public void method2092(int i, int i_664_, int i_665_, int i_666_,
			   int i_667_, int i_668_) {
	float f = (float) i + 0.35F;
	float f_669_ = (float) i_664_ + 0.35F;
	float f_670_ = f + (float) i_665_;
	float f_671_ = f_669_ + (float) i_666_;
	method8585();
	method8606(i_668_);
	OpenGL.glColor4ub((byte) (i_667_ >> 16), (byte) (i_667_ >> 8),
			  (byte) i_667_, (byte) (i_667_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(7);
	OpenGL.glVertex2f(f, f_669_);
	OpenGL.glVertex2f(f, f_671_);
	OpenGL.glVertex2f(f_670_, f_671_);
	OpenGL.glVertex2f(f_670_, f_669_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    void method8642(int i, int i_672_) {
	method2383();
	method2031(i, i_672_, 1034960495);
	if (((Class151_Sub3) this).aBool9310) {
	    ((Class151_Sub3) this).aClass114_9266
		= method2065(i, i_672_, true, true);
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = method2017();
	    ((Class151_Sub3) this).aClass144_Sub2_9403.method8672
		(0, ((Class151_Sub3) this).aClass114_9266.method1494());
	    OpenGL.glGenBuffersARB(3, ((Class151_Sub3) this).anIntArray9404,
				   0);
	    for (int i_673_ = 0; i_673_ < 3; i_673_++) {
		OpenGL.glBindBufferARB(35051, (((Class151_Sub3) this)
					       .anIntArray9404[i_673_]));
		OpenGL.glBufferDataARBa(35051, i * i_672_ * 4, 0L, 35041);
		OpenGL.glBindBufferARB(35051, 0);
	    }
	} else {
	    ((Class151_Sub3) this).aClass114_9266
		= method2065(i, i_672_, true, true);
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = method2017();
	    ((Class151_Sub3) this).aClass144_Sub2_9403.method8672
		(0, ((Class151_Sub3) this).aClass114_9266.method1494());
	}
    }
    
    public final void method2085() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    void method2349(int i, int i_674_, int i_675_, int i_676_, int i_677_) {
	if (i_675_ < 0)
	    i_675_ = -i_675_;
	if (i + i_675_ >= ((Class151_Sub3) this).anInt9306
	    && i - i_675_ <= ((Class151_Sub3) this).anInt9307
	    && i_674_ + i_675_ >= ((Class151_Sub3) this).anInt9304
	    && i_674_ - i_675_ <= ((Class151_Sub3) this).anInt9305) {
	    method8585();
	    method8606(i_677_);
	    OpenGL.glColor4ub((byte) (i_676_ >> 16), (byte) (i_676_ >> 8),
			      (byte) i_676_, (byte) (i_676_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_678_ = (float) i_674_ + 0.35F;
	    int i_679_ = i_675_ << 1;
	    if ((float) i_679_ < ((Class151_Sub3) this).aFloat9386) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_678_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_678_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_678_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_678_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_679_ <= ((Class151_Sub3) this).aFloat9367) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_679_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_678_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_678_);
		int i_680_ = 262144 / (6 * i_675_);
		if (i_680_ <= 64)
		    i_680_ = 64;
		else if (i_680_ > 512)
		    i_680_ = 512;
		i_680_ = Class148.method1973(i_680_, (byte) 91);
		OpenGL.glVertex2f(f + (float) i_675_, f_678_);
		for (int i_681_ = 16384 - i_680_; i_681_ > 0; i_681_ -= i_680_)
		    OpenGL.glVertex2f(f + (Class113.aFloatArray1444[i_681_]
					   * (float) i_675_),
				      f_678_ + (Class113.aFloatArray1443
						[i_681_]) * (float) i_675_);
		OpenGL.glVertex2f(f + (float) i_675_, f_678_);
		OpenGL.glEnd();
	    }
	}
    }
    
    void method2172(int i, int i_682_, int i_683_, int i_684_, int i_685_) {
	if (i_683_ < 0)
	    i_683_ = -i_683_;
	if (i + i_683_ >= ((Class151_Sub3) this).anInt9306
	    && i - i_683_ <= ((Class151_Sub3) this).anInt9307
	    && i_682_ + i_683_ >= ((Class151_Sub3) this).anInt9304
	    && i_682_ - i_683_ <= ((Class151_Sub3) this).anInt9305) {
	    method8585();
	    method8606(i_685_);
	    OpenGL.glColor4ub((byte) (i_684_ >> 16), (byte) (i_684_ >> 8),
			      (byte) i_684_, (byte) (i_684_ >> 24));
	    float f = (float) i + 0.35F;
	    float f_686_ = (float) i_682_ + 0.35F;
	    int i_687_ = i_683_ << 1;
	    if ((float) i_687_ < ((Class151_Sub3) this).aFloat9386) {
		OpenGL.glBegin(7);
		OpenGL.glVertex2f(f + 1.0F, f_686_ + 1.0F);
		OpenGL.glVertex2f(f + 1.0F, f_686_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_686_ - 1.0F);
		OpenGL.glVertex2f(f - 1.0F, f_686_ + 1.0F);
		OpenGL.glEnd();
	    } else if ((float) i_687_ <= ((Class151_Sub3) this).aFloat9367) {
		OpenGL.glEnable(2832);
		OpenGL.glPointSize((float) i_687_);
		OpenGL.glBegin(0);
		OpenGL.glVertex2f(f, f_686_);
		OpenGL.glEnd();
		OpenGL.glDisable(2832);
	    } else {
		OpenGL.glBegin(6);
		OpenGL.glVertex2f(f, f_686_);
		int i_688_ = 262144 / (6 * i_683_);
		if (i_688_ <= 64)
		    i_688_ = 64;
		else if (i_688_ > 512)
		    i_688_ = 512;
		i_688_ = Class148.method1973(i_688_, (byte) 57);
		OpenGL.glVertex2f(f + (float) i_683_, f_686_);
		for (int i_689_ = 16384 - i_688_; i_689_ > 0; i_689_ -= i_688_)
		    OpenGL.glVertex2f(f + (Class113.aFloatArray1444[i_689_]
					   * (float) i_683_),
				      f_686_ + (Class113.aFloatArray1443
						[i_689_]) * (float) i_683_);
		OpenGL.glVertex2f(f + (float) i_683_, f_686_);
		OpenGL.glEnd();
	    }
	}
    }
    
    public final void method2013() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
	    && ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245.method9073()) {
	    ((Class151_Sub3) this).aClass124_9244
		.method1625(((Class151_Sub3) this).aClass487_Sub4_Sub3_9245);
	    ((Class151_Sub3) this).aClass112_9242.method1482();
	}
    }
    
    public Class132 method2180(int i, int i_690_, int[][] is, int[][] is_691_,
			       int i_692_, int i_693_, int i_694_) {
	return new Class132_Sub3(this, i_693_, i_694_, i, i_690_, is, is_691_,
				 i_692_);
    }
    
    public Class132 method2367(int i, int i_695_, int[][] is, int[][] is_696_,
			       int i_697_, int i_698_, int i_699_) {
	return new Class132_Sub3(this, i_698_, i_699_, i, i_695_, is, is_696_,
				 i_697_);
    }
    
    public boolean method2342() {
	return false;
    }
    
    public void method2356() {
	((Class151_Sub3) this).anInt9287 = 0;
	((Class151_Sub3) this).anInt9311 = 0;
	((Class151_Sub3) this).anInt9312 = aClass144_1857.method1943();
	((Class151_Sub3) this).anInt9380 = aClass144_1857.method1944();
	method8561();
    }
    
    public void method2050() {
	((Class151_Sub3) this).anInt9287 = 0;
	((Class151_Sub3) this).anInt9311 = 0;
	((Class151_Sub3) this).anInt9312 = aClass144_1857.method1943();
	((Class151_Sub3) this).anInt9380 = aClass144_1857.method1944();
	method8561();
    }
    
    public void method2358() {
	((Class151_Sub3) this).anInt9287 = 0;
	((Class151_Sub3) this).anInt9311 = 0;
	((Class151_Sub3) this).anInt9312 = aClass144_1857.method1943();
	((Class151_Sub3) this).anInt9380 = aClass144_1857.method1944();
	method8561();
    }
    
    final void method8643() {
	if (((Class151_Sub3) this).anInt9387 == 2)
	    OpenGL.glDepthRange(((Class151_Sub3) this).aFloat9294,
				((Class151_Sub3) this).aFloat9238);
	else
	    OpenGL.glDepthRange(0.0F, 1.0F);
    }
    
    final void method8644(int i, boolean bool, boolean bool_700_) {
	if (i != ((Class151_Sub3) this).anInt9345
	    || (((Class151_Sub3) this).aBool9342
		!= ((Class151_Sub3) this).aBool9341)) {
	    Class100_Sub3 class100_sub3 = null;
	    byte i_701_ = 0;
	    byte i_702_ = 0;
	    int i_703_ = 0;
	    byte i_704_
		= ((Class151_Sub3) this).aBool9341 ? (byte) 3 : (byte) 0;
	    byte i_705_ = 0;
	    if (i >= 0) {
		Class145 class145 = aClass140_1833.method1927(i, 2130169623);
		if (class145.aBool1690) {
		    class100_sub3 = ((Class151_Sub3) this).aClass112_9242
					.method1478(class145);
		    if (class145.aByte1693 != 0 || class145.aByte1694 != 0)
			method8598(((float) (((Class151_Sub3) this).anInt9253
					     % 128000)
				    / 1000.0F * (float) class145.aByte1693
				    / 64.0F % 1.0F),
				   ((float) (((Class151_Sub3) this).anInt9253
					     % 128000)
				    / 1000.0F * (float) class145.aByte1694
				    / 64.0F % 1.0F),
				   0.0F);
		    else
			method8599();
		    if (!((Class151_Sub3) this).aBool9341) {
			i_702_ = class145.aByte1714;
			i_703_ = class145.anInt1674 * 1706790411;
			i_704_ = class145.aByte1713;
		    }
		    i_701_ = class145.aByte1704;
		} else
		    method8599();
		if (class145.aClass544_1696 == Class544.aClass544_7359)
		    i_705_ = class145.aByte1676;
	    } else
		method8599();
	    method8610(i_705_);
	    ((Class151_Sub3) this).aClass104_9243
		.method1411(i_704_, i_702_, i_703_, bool, bool_700_);
	    if (!((Class151_Sub3) this).aClass104_9243
		     .method1410(class100_sub3, i_701_)) {
		method8591(class100_sub3);
		method8592(i_701_);
	    }
	    ((Class151_Sub3) this).aBool9342
		= ((Class151_Sub3) this).aBool9341;
	    ((Class151_Sub3) this).anInt9345 = i;
	}
	((Class151_Sub3) this).anInt9248 &= ~0x7;
    }
    
    final int method8645(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 void method2121(Class400 class400, Class150 class150,
			   Class375 class375) {
	Class403 class403 = ((Class151_Sub3) this).aClass403_9363;
	class403.method4865(class400);
	class403.method4863(((Class151_Sub3) this).aClass403_9351);
	class150.method1984(class375, ((Class151_Sub3) this).aClass403_9285,
			    class403, ((Class151_Sub3) this).aFloat9204,
			    ((Class151_Sub3) this).aFloat9203,
			    ((Class151_Sub3) this).aFloat9291,
			    ((Class151_Sub3) this).aFloat9278);
    }
    
    final void method8646(int i, boolean bool) {
	method8644(i, bool, true);
    }
    
    final void method8647() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    public int method2340(int i, int i_706_) {
	return i | i_706_;
    }
    
    final void method8648() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    final void method8649() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    public int method2123(int i, int i_707_, int i_708_, int i_709_,
			  int i_710_, int i_711_) {
	int i_712_ = 0;
	float f = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		      * (float) i)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		      * (float) i_707_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		      * (float) i_708_));
	float f_713_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		  * (float) i_709_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * (float) i_710_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * (float) i_711_));
	float f_714_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_707_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_708_));
	float f_715_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i_709_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_710_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_711_));
	if (f < -f_714_ && f_713_ < -f_715_)
	    i_712_ |= 0x10;
	else if (f > f_714_ && f_713_ > f_715_)
	    i_712_ |= 0x20;
	float f_716_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_707_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_708_));
	float f_717_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i_709_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_710_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_711_));
	if (f_716_ < -f_714_ && f_717_ < -f_715_)
	    i_712_ |= 0x1;
	if (f_716_ > f_714_ && f_717_ > f_715_)
	    i_712_ |= 0x2;
	float f_718_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_707_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_708_));
	float f_719_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i_709_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_710_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_711_));
	if (f_718_ < -f_714_ && f_719_ < -f_715_)
	    i_712_ |= 0x4;
	if (f_718_ > f_714_ && f_719_ > f_715_)
	    i_712_ |= 0x8;
	return i_712_;
    }
    
    public void method2343() {
	if (((Class151_Sub3) this).aBool9310) {
	    ((Class151_Sub3) this).aClass114_9228 = null;
	    if (((Class151_Sub3) this).aClass144_Sub2_9403 != null) {
		((Class151_Sub3) this).aClass144_Sub2_9403.method80();
		((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, ((Class151_Sub3) this).anIntArray9404,
				      0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub3) this).anIntArray9404[i] = 0;
		if (((Class151_Sub3) this).aLongArray9224[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub3) this).aLongArray9224
					[i]);
		    ((Class151_Sub3) this).aLongArray9224[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub3) this).aClass144_Sub2_9403 = null;
	    ((Class151_Sub3) this).aClass114_9266 = null;
	    ((Class151_Sub3) this).aClass114_9228 = null;
	}
    }
    
    final void method8650() {
	((Class151_Sub3) this).aFloat9297
	    = ((Class151_Sub3) this).aClass403_9285.method4877();
	((Class151_Sub3) this).aFloat9296
	    = ((Class151_Sub3) this).aClass403_9285.method4876();
	method8630();
	if (((Class151_Sub3) this).anInt9387 == 2)
	    method8570(((Class151_Sub3) this).aClass403_9285.aFloatArray4592);
	else if (((Class151_Sub3) this).anInt9387 == 1)
	    method8570(((Class151_Sub3) this).aClass403_9286.aFloatArray4592);
    }
    
    void method2386(int i, int i_720_) throws Exception_Sub7 {
	try {
	    aClass144_Sub1_1853.method8234();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(-693450353);
    }
    
    public void method2359(int i, Class487_Sub16[] class487_sub16s) {
	for (int i_721_ = 0; i_721_ < i; i_721_++)
	    ((Class151_Sub3) this).aClass487_Sub16Array9328[i_721_]
		= class487_sub16s[i_721_];
	((Class151_Sub3) this).anInt9330 = i;
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8571();
    }
    
    public void method2378(int i, Class487_Sub16[] class487_sub16s) {
	for (int i_722_ = 0; i_722_ < i; i_722_++)
	    ((Class151_Sub3) this).aClass487_Sub16Array9328[i_722_]
		= class487_sub16s[i_722_];
	((Class151_Sub3) this).anInt9330 = i;
	if (((Class151_Sub3) this).anInt9387 != 1)
	    method8571();
    }
    
    void method8651() {
	int i;
	for (i = 0; i < ((Class151_Sub3) this).anInt9330; i++) {
	    Class487_Sub16 class487_sub16
		= ((Class151_Sub3) this).aClass487_Sub16Array9328[i];
	    int i_723_ = 16386 + i;
	    aFloatArray9394[0] = (float) class487_sub16.method9196(1296113754);
	    aFloatArray9394[1] = (float) class487_sub16.method9176(-843915778);
	    aFloatArray9394[2] = (float) class487_sub16.method9175(-64375987);
	    aFloatArray9394[3] = 1.0F;
	    OpenGL.glLightfv(i_723_, 4611, aFloatArray9394, 0);
	    int i_724_ = class487_sub16.method9179(447359536);
	    float f = class487_sub16.method9174((byte) 114) / 255.0F;
	    aFloatArray9394[0] = (float) (i_724_ >> 16 & 0xff) * f;
	    aFloatArray9394[1] = (float) (i_724_ >> 8 & 0xff) * f;
	    aFloatArray9394[2] = (float) (i_724_ & 0xff) * f;
	    OpenGL.glLightfv(i_723_, 4609, aFloatArray9394, 0);
	    OpenGL.glLightf(i_723_, 4617,
			    1.0F / (float) (class487_sub16.method9194((byte) 2)
					    * class487_sub16
						  .method9194((byte) 119)));
	    OpenGL.glEnable(i_723_);
	}
	for (/**/; i < ((Class151_Sub3) this).anInt9251; i++)
	    OpenGL.glDisable(16386 + i);
	((Class151_Sub3) this).anInt9251 = ((Class151_Sub3) this).anInt9330;
    }
    
    public boolean method2219() {
	return true;
    }
    
    void method8652() {
	aFloatArray9361[0] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (((Class151_Sub3) this).aFloat9326
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609, aFloatArray9361, 0);
	aFloatArray9361[0] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9322);
	aFloatArray9361[1] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9249);
	aFloatArray9361[2] = (-((Class151_Sub3) this).aFloat9197
			      * ((Class151_Sub3) this).aFloat9272);
	aFloatArray9361[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609, aFloatArray9361, 0);
    }
    
    public void method2336(int i, int i_725_, int[] is, int[] is_726_) {
	method8558(i, i_725_, is, is_726_);
    }
    
    public final void method2259(int i, int i_727_, int i_728_, int i_729_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1646(i, i_727_, i_728_,
							     i_729_);
    }
    
    boolean method8653() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    boolean method8654() {
	if (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263 != null) {
	    if (!((Class151_Sub3) this).aClass487_Sub4_Sub1_9263
		     .method9073()) {
		if (((Class151_Sub3) this).aClass124_9244.method1624
		    (((Class151_Sub3) this).aClass487_Sub4_Sub1_9263))
		    ((Class151_Sub3) this).aClass112_9242.method1482();
		else
		    return false;
	    }
	    return true;
	}
	return false;
    }
    
    public final void method2199(int i, int i_730_, int i_731_, int i_732_) {
	if (((Class151_Sub3) this).anInt9306 < i)
	    ((Class151_Sub3) this).anInt9306 = i;
	if (((Class151_Sub3) this).anInt9307 > i_731_)
	    ((Class151_Sub3) this).anInt9307 = i_731_;
	if (((Class151_Sub3) this).anInt9304 < i_730_)
	    ((Class151_Sub3) this).anInt9304 = i_730_;
	if (((Class151_Sub3) this).anInt9305 > i_732_)
	    ((Class151_Sub3) this).anInt9305 = i_732_;
	OpenGL.glEnable(3089);
	method8562();
    }
    
    public void method2406(int i, int i_733_, float f, int i_734_, int i_735_,
			   float f_736_, int i_737_, int i_738_, float f_739_,
			   int i_740_, int i_741_, int i_742_, int i_743_) {
	method8585();
	method8606(i_743_);
	OpenGL.glBegin(4);
	OpenGL.glColor4ub((byte) (i_740_ >> 16), (byte) (i_740_ >> 8),
			  (byte) i_740_, (byte) (i_740_ >> 24));
	OpenGL.glVertex3f((float) i + 0.35F, (float) i_733_ + 0.35F, f);
	OpenGL.glColor4ub((byte) (i_741_ >> 16), (byte) (i_741_ >> 8),
			  (byte) i_741_, (byte) (i_741_ >> 24));
	OpenGL.glVertex3f((float) i_734_ + 0.35F, (float) i_735_ + 0.35F,
			  f_736_);
	OpenGL.glColor4ub((byte) (i_742_ >> 16), (byte) (i_742_ >> 8),
			  (byte) i_742_, (byte) (i_742_ >> 24));
	OpenGL.glVertex3f((float) i_737_ + 0.35F, (float) i_738_ + 0.35F,
			  f_739_);
	OpenGL.glEnd();
    }
    
    final void method8655() {
	if (((Class151_Sub3) this).aBool9383) {
	    int i = 0;
	    int i_744_ = 0;
	    if (((Class151_Sub3) this).anInt9231 == 0) {
		i = 0;
		i_744_ = 0;
	    } else if (((Class151_Sub3) this).anInt9231 == 1) {
		i = 1;
		i_744_ = 0;
	    } else if (((Class151_Sub3) this).anInt9231 == 2) {
		i = 1;
		i_744_ = 1;
	    } else if (((Class151_Sub3) this).anInt9231 == 3) {
		i = 0;
		i_744_ = 1;
	    }
	    if (((Class151_Sub3) this).anInt9354 == 1)
		OpenGL.glBlendFuncSeparate(770, 771, i, i_744_);
	    else if (((Class151_Sub3) this).anInt9354 == 2)
		OpenGL.glBlendFuncSeparate(1, 1, i, i_744_);
	    else if (((Class151_Sub3) this).anInt9354 == 3)
		OpenGL.glBlendFuncSeparate(774, 1, i, i_744_);
	    else if (((Class151_Sub3) this).anInt9354 == 0)
		OpenGL.glBlendFuncSeparate(1, 0, i, i_744_);
	} else if (((Class151_Sub3) this).anInt9354 == 1) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(770, 771);
	} else if (((Class151_Sub3) this).anInt9354 == 2) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(1, 1);
	} else if (((Class151_Sub3) this).anInt9354 == 3) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(774, 1);
	} else
	    OpenGL.glDisable(3042);
    }
    
    public Interface16 method2363(int i, int i_745_, int i_746_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_745_,
				       i_746_);
    }
    
    public Interface16 method2364(int i, int i_747_, int i_748_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_747_,
				       i_748_);
    }
    
    public final boolean method2107() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		       .method9073());
    }
    
    public void method2204(int i, int i_749_) {
	int i_750_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_749_ & 0xff0000) / 1.671168E7F,
				(float) (i_749_ & 0xff00) / 65280.0F,
				(float) (i_749_ & 0xff) / 255.0F,
				(float) (i_749_ >>> 24) / 255.0F);
	    i_750_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method8604(true);
	    i_750_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_750_ |= 0x400;
	OpenGL.glClear(i_750_);
    }
    
    public void method2118(boolean bool) {
	/* empty */
    }
    
    public Class400 method2166() {
	return new Class400(((Class151_Sub3) this).aClass400_9282);
    }
    
    final void method8656() {
	OpenGL.glLoadIdentity();
	OpenGL.glMultMatrixf((((Class151_Sub3) this).aClass403_9283
			      .aFloatArray4592),
			     0);
	if (((Class151_Sub3) this).aBool9342)
	    ((Class104) ((Class151_Sub3) this).aClass104_9243)
		.aClass108_Sub4_1371.method8123();
	method8560();
	method8571();
    }
    
    final void method8657() {
	if (((Class151_Sub3) this).anInt9248 != 4) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 4;
	}
    }
    
    public Class149 method2360(int[] is) {
	return new Class149_Sub1(this, is);
    }
    
    public String method2148() {
	String string = "Caps: 2:";
	String string_751_ = ":";
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9241).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9384).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9347).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9362).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).anInt9319).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9386).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aFloat9367).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9359 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9396 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9393 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9346 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9327 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9302 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9378 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9232 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9379 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9381 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9372 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9375 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9320 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9374 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9199 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9364 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9365 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9366 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9376 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9382 ? 1 : 0).append
		     (string_751_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub3) this).aBool9383 ? 1 : 0).toString();
	return string;
    }
    
    final void method8658() {
	if (((Class151_Sub3) this).anInt9248 != 1) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8591(null);
	    method8588(-2);
	    method8592(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 1;
	}
    }
    
    final void method8659() {
	if (((Class151_Sub3) this).anInt9248 != 2) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 2;
	}
    }
    
    public long method2374(int i, int i_752_) {
	return method8558(i, i_752_, null, null);
    }
    
    void method2082(int i, int i_753_) throws Exception_Sub7 {
	try {
	    aClass144_Sub1_1853.method8234();
	} catch (Exception exception) {
	    /* empty */
	}
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(-372726082);
    }
    
    final void method8660() {
	if (((Class151_Sub3) this).anInt9248 != 4) {
	    method8567();
	    method8600(false);
	    method8555(false);
	    method8603(false);
	    method8604(false);
	    method8588(-2);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 4;
	}
    }
    
    final void method8661() {
	if (((Class151_Sub3) this).anInt9248 != 8) {
	    method8568();
	    method8600(true);
	    method8603(true);
	    method8604(true);
	    method8606(1);
	    method8610((byte) 0);
	    ((Class151_Sub3) this).anInt9248 = 8;
	}
    }
    
    public final void method2202(int[] is) {
	is[0] = ((Class151_Sub3) this).anInt9306;
	is[1] = ((Class151_Sub3) this).anInt9304;
	is[2] = ((Class151_Sub3) this).anInt9307;
	is[3] = ((Class151_Sub3) this).anInt9305;
    }
    
    public final void method2159(Class136 class136) {
	((Class151_Sub3) this).aClass136_Sub1_9240 = (Class136_Sub1) class136;
    }
    
    final void method8662() {
	if (aClass144_1857 != null) {
	    int i;
	    int i_754_;
	    int i_755_;
	    int i_756_;
	    if (((Class151_Sub3) this).anInt9387 == 2) {
		i = ((Class151_Sub3) this).anInt9287;
		i_754_ = ((Class151_Sub3) this).anInt9311;
		i_755_ = ((Class151_Sub3) this).anInt9312;
		i_756_ = ((Class151_Sub3) this).anInt9380;
	    } else {
		i = 0;
		i_754_ = 0;
		i_755_ = aClass144_1857.method1943();
		i_756_ = aClass144_1857.method1944();
	    }
	    if (i_755_ < 1)
		i_755_ = 1;
	    if (i_756_ < 1)
		i_756_ = 1;
	    OpenGL.glViewport(((Class151_Sub3) this).anInt9308 + i,
			      (((Class151_Sub3) this).anInt9213
			       + aClass144_1857.method1944() - i_754_
			       - i_756_),
			      i_755_, i_756_);
	    ((Class151_Sub3) this).aFloat9291
		= (float) ((Class151_Sub3) this).anInt9312 / 2.0F;
	    ((Class151_Sub3) this).aFloat9278
		= (float) ((Class151_Sub3) this).anInt9380 / 2.0F;
	    ((Class151_Sub3) this).aFloat9204
		= ((float) ((Class151_Sub3) this).anInt9287
		   + ((Class151_Sub3) this).aFloat9291);
	    ((Class151_Sub3) this).aFloat9203
		= ((float) ((Class151_Sub3) this).anInt9311
		   + ((Class151_Sub3) this).aFloat9278);
	}
    }
    
    public int method2265(int i, int i_757_, int i_758_, int i_759_,
			  int i_760_, int i_761_) {
	int i_762_ = 0;
	float f = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		      * (float) i)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		      * (float) i_757_)
		   + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		      * (float) i_758_));
	float f_763_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[14]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[2]
		  * (float) i_759_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[6]
		  * (float) i_760_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[10]
		  * (float) i_761_));
	float f_764_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_757_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_758_));
	float f_765_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[15]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[3]
		  * (float) i_759_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[7]
		  * (float) i_760_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[11]
		  * (float) i_761_));
	if (f < -f_764_ && f_763_ < -f_765_)
	    i_762_ |= 0x10;
	else if (f > f_764_ && f_763_ > f_765_)
	    i_762_ |= 0x20;
	float f_766_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_757_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_758_));
	float f_767_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[12]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[0]
		  * (float) i_759_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[4]
		  * (float) i_760_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[8]
		  * (float) i_761_));
	if (f_766_ < -f_764_ && f_767_ < -f_765_)
	    i_762_ |= 0x1;
	if (f_766_ > f_764_ && f_767_ > f_765_)
	    i_762_ |= 0x2;
	float f_768_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_757_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_758_));
	float f_769_
	    = (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[13]
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[1]
		  * (float) i_759_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[5]
		  * (float) i_760_)
	       + (((Class151_Sub3) this).aClass403_9351.aFloatArray4592[9]
		  * (float) i_761_));
	if (f_768_ < -f_764_ && f_769_ < -f_765_)
	    i_762_ |= 0x4;
	if (f_768_ > f_764_ && f_769_ > f_765_)
	    i_762_ |= 0x8;
	return i_762_;
    }
    
    public final int method2353() {
	return (((Class151_Sub3) this).anInt9261
		+ ((Class151_Sub3) this).anInt9260
		+ ((Class151_Sub3) this).anInt9234);
    }
    
    public boolean method2160() {
	return ((Class151_Sub3) this).aBool9310;
    }
    
    final void method8663() {
	if (((Class151_Sub3) this).aBool9276)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    public final void method2036() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    final void method8664() {
	if (((Class151_Sub3) this).aBool9350) {
	    OpenGL.glMatrixMode(5890);
	    OpenGL.glLoadIdentity();
	    OpenGL.glMatrixMode(5888);
	    ((Class151_Sub3) this).aBool9350 = false;
	}
    }
    
    public boolean method2387() {
	return true;
    }
    
    public final void method2197(int i, int i_770_, int i_771_, int i_772_) {
	if (aClass144_1857 != null) {
	    if (i < 0)
		i = 0;
	    if (i_771_ > aClass144_1857.method1943())
		i_771_ = aClass144_1857.method1943();
	    if (i_770_ < 0)
		i_770_ = 0;
	    if (i_772_ > aClass144_1857.method1944())
		i_772_ = aClass144_1857.method1944();
	    ((Class151_Sub3) this).anInt9306 = i;
	    ((Class151_Sub3) this).anInt9304 = i_770_;
	    ((Class151_Sub3) this).anInt9307 = i_771_;
	    ((Class151_Sub3) this).anInt9305 = i_772_;
	    OpenGL.glEnable(3089);
	    method8562();
	}
    }
    
    public int[] method2006() {
	int[] is = new int[1];
	OpenGL.glGetIntegerv(34466, is, 0);
	int i = is[0];
	if (i == 0)
	    return null;
	int[] is_773_ = new int[i];
	OpenGL.glGetIntegerv(34467, is_773_, 0);
	return is_773_;
    }
    
    void method8665() {
	((Class151_Sub3) this).aClass100Array9352
	    = new Class100[((Class151_Sub3) this).anInt9347];
	((Class151_Sub3) this).aClass100_Sub3_9353
	    = new Class100_Sub3(this, 3553, Class116.aClass116_1448,
				Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	new Class100_Sub3(this, 3553, Class116.aClass116_1448,
			  Class155.aClass155_1894, 1, 1);
	for (int i = 0; i < 8; i++) {
	    ((Class151_Sub3) this).aClass134_Sub2Array9254[i]
		= new Class134_Sub2(this);
	    ((Class151_Sub3) this).aClass134_Sub2Array9388[i]
		= new Class134_Sub2(this);
	}
	if (((Class151_Sub3) this).aBool9364) {
	    ((Class151_Sub3) this).aClass144_Sub2_Sub1_9389
		= new Class144_Sub2_Sub1(this);
	    new Class144_Sub2_Sub1(this);
	}
    }
    
    public Interface16 method2362(int i, int i_774_, int i_775_) {
	return new Class487_Sub35_Sub3(this, Class116.aClass116_1452,
				       Class155.aClass155_1890, i, i_774_,
				       i_775_);
    }
    
    final void method8666() {
	OpenGL.glDepthMask(((Class151_Sub3) this).aBool9357
			   && ((Class151_Sub3) this).aBool9303);
    }
    
    final void method8667() {
	OpenGL.glDepthMask(((Class151_Sub3) this).aBool9357
			   && ((Class151_Sub3) this).aBool9303);
    }
    
    final void method8668(int i) {
	if (((Class151_Sub3) this).anInt9273 != i) {
	    int i_776_;
	    boolean bool;
	    boolean bool_777_;
	    boolean bool_778_;
	    if (i == 1) {
		i_776_ = 1;
		bool = true;
		bool_777_ = true;
		bool_778_ = true;
	    } else if (i == 2) {
		i_776_ = 2;
		bool = true;
		bool_777_ = false;
		bool_778_ = true;
	    } else if (i == 128) {
		i_776_ = 3;
		bool = true;
		bool_777_ = true;
		bool_778_ = true;
	    } else if (i == 3) {
		i_776_ = 0;
		bool = true;
		bool_777_ = true;
		bool_778_ = false;
	    } else {
		i_776_ = 0;
		bool = true;
		bool_777_ = false;
		bool_778_ = false;
	    }
	    if (bool != ((Class151_Sub3) this).aBool9275) {
		OpenGL.glColorMask(bool, bool, bool, true);
		((Class151_Sub3) this).aBool9275 = bool;
	    }
	    if (bool_777_ != ((Class151_Sub3) this).aBool9298) {
		((Class151_Sub3) this).aBool9298 = bool_777_;
		method8609();
	    }
	    if (bool_778_ != ((Class151_Sub3) this).aBool9276) {
		((Class151_Sub3) this).aBool9276 = bool_778_;
		method8628();
	    }
	    if (i_776_ != ((Class151_Sub3) this).anInt9354) {
		((Class151_Sub3) this).anInt9354 = i_776_;
		method8607();
	    }
	    ((Class151_Sub3) this).anInt9273 = i;
	    ((Class151_Sub3) this).anInt9248 &= ~0xc;
	}
    }
    
    public long method2029(int i, int i_779_) {
	return method8558(i, i_779_, null, null);
    }
    
    public void method2047(int i, int i_780_, int i_781_, int i_782_,
			   int i_783_, int i_784_) {
	float f = (float) i + 0.35F;
	float f_785_ = (float) i_780_ + 0.35F;
	float f_786_ = f + (float) i_781_ - 1.0F;
	float f_787_ = f_785_ + (float) i_782_ - 1.0F;
	method8585();
	method8606(i_784_);
	OpenGL.glColor4ub((byte) (i_783_ >> 16), (byte) (i_783_ >> 8),
			  (byte) i_783_, (byte) (i_783_ >> 24));
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glDisable(32925);
	OpenGL.glBegin(2);
	OpenGL.glVertex2f(f, f_785_);
	OpenGL.glVertex2f(f, f_787_);
	OpenGL.glVertex2f(f_786_, f_787_);
	OpenGL.glVertex2f(f_786_, f_785_);
	OpenGL.glEnd();
	if (((Class151_Sub3) this).aBool9302)
	    OpenGL.glEnable(32925);
    }
    
    final Class100_Sub2 method8669() {
	return (((Class151_Sub3) this).aClass136_Sub1_9240 != null
		? ((Class151_Sub3) this).aClass136_Sub1_9240.method8507()
		: null);
    }
    
    public final boolean method2138() {
	return (((Class151_Sub3) this).aClass487_Sub4_Sub3_9245 != null
		&& ((Class151_Sub3) this).aClass487_Sub4_Sub3_9245
		       .method9073());
    }
    
    public void method2217(int i, int i_788_, int i_789_, int i_790_,
			   int i_791_, int i_792_, Class131 class131,
			   int i_793_, int i_794_, int i_795_, int i_796_,
			   int i_797_) {
	if (i != i_789_ || i_788_ != i_790_) {
	    Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	    Class100_Sub3_Sub1 class100_sub3_sub1
		= ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	    method8586();
	    method8591(((Class131_Sub1) class131_sub1)
		       .aClass100_Sub3_Sub1_8666);
	    method8606(i_792_);
	    method8594(7681, 8448);
	    method8595(0, 34167, 768);
	    float f = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
		       / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
				  .anInt11027));
	    float f_798_
		= (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
		   / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
			      .anInt11028));
	    float f_799_ = (float) i_789_ - (float) i;
	    float f_800_ = (float) i_790_ - (float) i_788_;
	    float f_801_
		= (float) (1.0 / Math.sqrt((double) (f_799_ * f_799_
						     + f_800_ * f_800_)));
	    f_799_ *= f_801_;
	    f_800_ *= f_801_;
	    OpenGL.glColor4ub((byte) (i_791_ >> 16), (byte) (i_791_ >> 8),
			      (byte) i_791_, (byte) (i_791_ >> 24));
	    i_797_ %= i_796_ + i_795_;
	    float f_802_ = f_799_ * (float) i_795_;
	    float f_803_ = f_800_ * (float) i_795_;
	    float f_804_ = 0.0F;
	    float f_805_ = 0.0F;
	    float f_806_ = f_802_;
	    float f_807_ = f_803_;
	    if (i_797_ > i_795_) {
		f_804_ = f_799_ * (float) (i_795_ + i_796_ - i_797_);
		f_805_ = f_800_ * (float) (i_795_ + i_796_ - i_797_);
	    } else {
		f_806_ = f_799_ * (float) (i_795_ - i_797_);
		f_807_ = f_800_ * (float) (i_795_ - i_797_);
	    }
	    float f_808_ = (float) i + 0.35F + f_804_;
	    float f_809_ = (float) i_788_ + 0.35F + f_805_;
	    float f_810_ = f_799_ * (float) i_796_;
	    float f_811_ = f_800_ * (float) i_796_;
	    for (;;) {
		if (i_789_ > i) {
		    if (f_808_ > (float) i_789_ + 0.35F)
			break;
		    if (f_808_ + f_806_ > (float) i_789_)
			f_806_ = (float) i_789_ - f_808_;
		} else {
		    if (f_808_ < (float) i_789_ + 0.35F)
			break;
		    if (f_808_ + f_806_ < (float) i_789_)
			f_806_ = (float) i_789_ - f_808_;
		}
		if (i_790_ > i_788_) {
		    if (f_809_ > (float) i_790_ + 0.35F)
			break;
		    if (f_809_ + f_807_ > (float) i_790_)
			f_807_ = (float) i_790_ - f_809_;
		} else {
		    if (f_809_ < (float) i_790_ + 0.35F)
			break;
		    if (f_809_ + f_807_ < (float) i_790_)
			f_807_ = (float) i_790_ - f_809_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_808_ - (float) i_793_),
				    f_798_ * (f_809_ - (float) i_794_));
		OpenGL.glVertex2f(f_808_, f_809_);
		OpenGL.glTexCoord2f(f * (f_808_ + f_806_ - (float) i_793_),
				    f_798_ * (f_809_ + f_807_
					      - (float) i_794_));
		OpenGL.glVertex2f(f_808_ + f_806_, f_809_ + f_807_);
		OpenGL.glEnd();
		f_808_ += f_810_ + f_806_;
		f_809_ += f_811_ + f_807_;
		f_806_ = f_802_;
		f_807_ = f_803_;
	    }
	    method8595(0, 5890, 768);
	}
    }
    
    public final void method2369() {
	if (aClass144_1857 != null) {
	    ((Class151_Sub3) this).anInt9306 = 0;
	    ((Class151_Sub3) this).anInt9304 = 0;
	    ((Class151_Sub3) this).anInt9307 = aClass144_1857.method1943();
	    ((Class151_Sub3) this).anInt9305 = aClass144_1857.method1944();
	    OpenGL.glDisable(3089);
	}
    }
    
    public Class114 method2066(int[] is, int i, int i_812_, int i_813_,
			       int i_814_, boolean bool) {
	return new Class114_Sub3(this, i_813_, i_814_, is, i, i_812_);
    }
    
    public final void method2190(int i, int i_815_, int i_816_, int i_817_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1646(i, i_815_, i_816_,
							     i_817_);
    }
    
    public Class114 method2351(int i, int i_818_, int i_819_, int i_820_,
			       boolean bool) {
	return new Class114_Sub3(this, i, i_818_, i_819_, i_820_);
    }
    
    public Class144_Sub2 method2321() {
	return new Class144_Sub2_Sub1(this);
    }
    
    public final void method2370(int i) {
	((Class151_Sub3) this).anInt9255 = 0;
	for (/**/; i > 1; i >>= 1)
	    ((Class151_Sub3) this).anInt9255++;
	((Class151_Sub3) this).anInt9208
	    = 1 << ((Class151_Sub3) this).anInt9255;
    }
    
    public final void method2007(float f) {
	if (((Class151_Sub3) this).aFloat9325 != f) {
	    ((Class151_Sub3) this).aFloat9325 = f;
	    method8632();
	}
    }
    
    public void method2056(int i, int i_821_, int i_822_, int i_823_,
			   int i_824_, int i_825_, Class131 class131,
			   int i_826_, int i_827_, int i_828_, int i_829_,
			   int i_830_) {
	if (i != i_822_ || i_821_ != i_823_) {
	    Class131_Sub1 class131_sub1 = (Class131_Sub1) class131;
	    Class100_Sub3_Sub1 class100_sub3_sub1
		= ((Class131_Sub1) class131_sub1).aClass100_Sub3_Sub1_8666;
	    method8586();
	    method8591(((Class131_Sub1) class131_sub1)
		       .aClass100_Sub3_Sub1_8666);
	    method8606(i_825_);
	    method8594(7681, 8448);
	    method8595(0, 34167, 768);
	    float f = (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11029
		       / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
				  .anInt11027));
	    float f_831_
		= (((Class100_Sub3_Sub1) class100_sub3_sub1).aFloat11030
		   / (float) (((Class100_Sub3_Sub1) class100_sub3_sub1)
			      .anInt11028));
	    float f_832_ = (float) i_822_ - (float) i;
	    float f_833_ = (float) i_823_ - (float) i_821_;
	    float f_834_
		= (float) (1.0 / Math.sqrt((double) (f_832_ * f_832_
						     + f_833_ * f_833_)));
	    f_832_ *= f_834_;
	    f_833_ *= f_834_;
	    OpenGL.glColor4ub((byte) (i_824_ >> 16), (byte) (i_824_ >> 8),
			      (byte) i_824_, (byte) (i_824_ >> 24));
	    i_830_ %= i_829_ + i_828_;
	    float f_835_ = f_832_ * (float) i_828_;
	    float f_836_ = f_833_ * (float) i_828_;
	    float f_837_ = 0.0F;
	    float f_838_ = 0.0F;
	    float f_839_ = f_835_;
	    float f_840_ = f_836_;
	    if (i_830_ > i_828_) {
		f_837_ = f_832_ * (float) (i_828_ + i_829_ - i_830_);
		f_838_ = f_833_ * (float) (i_828_ + i_829_ - i_830_);
	    } else {
		f_839_ = f_832_ * (float) (i_828_ - i_830_);
		f_840_ = f_833_ * (float) (i_828_ - i_830_);
	    }
	    float f_841_ = (float) i + 0.35F + f_837_;
	    float f_842_ = (float) i_821_ + 0.35F + f_838_;
	    float f_843_ = f_832_ * (float) i_829_;
	    float f_844_ = f_833_ * (float) i_829_;
	    for (;;) {
		if (i_822_ > i) {
		    if (f_841_ > (float) i_822_ + 0.35F)
			break;
		    if (f_841_ + f_839_ > (float) i_822_)
			f_839_ = (float) i_822_ - f_841_;
		} else {
		    if (f_841_ < (float) i_822_ + 0.35F)
			break;
		    if (f_841_ + f_839_ < (float) i_822_)
			f_839_ = (float) i_822_ - f_841_;
		}
		if (i_823_ > i_821_) {
		    if (f_842_ > (float) i_823_ + 0.35F)
			break;
		    if (f_842_ + f_840_ > (float) i_823_)
			f_840_ = (float) i_823_ - f_842_;
		} else {
		    if (f_842_ < (float) i_823_ + 0.35F)
			break;
		    if (f_842_ + f_840_ < (float) i_823_)
			f_840_ = (float) i_823_ - f_842_;
		}
		OpenGL.glBegin(1);
		OpenGL.glTexCoord2f(f * (f_841_ - (float) i_826_),
				    f_831_ * (f_842_ - (float) i_827_));
		OpenGL.glVertex2f(f_841_, f_842_);
		OpenGL.glTexCoord2f(f * (f_841_ + f_839_ - (float) i_826_),
				    f_831_ * (f_842_ + f_840_
					      - (float) i_827_));
		OpenGL.glVertex2f(f_841_ + f_839_, f_842_ + f_840_);
		OpenGL.glEnd();
		f_841_ += f_843_ + f_839_;
		f_842_ += f_844_ + f_840_;
		f_839_ = f_835_;
		f_840_ = f_836_;
	    }
	    method8595(0, 5890, 768);
	}
    }
    
    void method2274(int i, int i_845_, int i_846_, int i_847_, int i_848_) {
	method8585();
	method8606(i_848_);
	float f = (float) i + 0.35F;
	float f_849_ = (float) i_845_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_847_ >> 16), (byte) (i_847_ >> 8),
			  (byte) i_847_, (byte) (i_847_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_849_);
	OpenGL.glVertex2f(f, f_849_ + (float) i_846_);
	OpenGL.glEnd();
    }
    
    public final int method2127() {
	return (((Class151_Sub3) this).anInt9261
		+ ((Class151_Sub3) this).anInt9260
		+ ((Class151_Sub3) this).anInt9234);
    }
    
    void method2389(int i, int i_850_, int i_851_, int i_852_, int i_853_) {
	method8585();
	method8606(i_853_);
	float f = (float) i + 0.35F;
	float f_854_ = (float) i_850_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_852_ >> 16), (byte) (i_852_ >> 8),
			  (byte) i_852_, (byte) (i_852_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_854_);
	OpenGL.glVertex2f(f, f_854_ + (float) i_851_);
	OpenGL.glEnd();
    }
    
    void method2241(int i, int i_855_, int i_856_, int i_857_, int i_858_) {
	method8585();
	method8606(i_858_);
	float f = (float) i + 0.35F;
	float f_859_ = (float) i_855_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_857_ >> 16), (byte) (i_857_ >> 8),
			  (byte) i_857_, (byte) (i_857_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_859_);
	OpenGL.glVertex2f(f, f_859_ + (float) i_856_);
	OpenGL.glEnd();
    }
    
    void method2354(int i, int i_860_, int i_861_, int i_862_, int i_863_) {
	method8585();
	method8606(i_863_);
	float f = (float) i + 0.35F;
	float f_864_ = (float) i_860_ + 0.35F;
	OpenGL.glColor4ub((byte) (i_862_ >> 16), (byte) (i_862_ >> 8),
			  (byte) i_862_, (byte) (i_862_ >> 24));
	OpenGL.glBegin(1);
	OpenGL.glVertex2f(f, f_864_);
	OpenGL.glVertex2f(f, f_864_ + (float) i_861_);
	OpenGL.glEnd();
    }
    
    public Class487_Sub26 method2291(int i) {
	Class487_Sub26_Sub2 class487_sub26_sub2 = new Class487_Sub26_Sub2(i);
	((Class151_Sub3) this).aClass656_9373.method7791(class487_sub26_sub2,
							 (byte) 3);
	return class487_sub26_sub2;
    }
    
    public final void method2229(int i, int i_865_, int i_866_, int i_867_) {
	if (((Class151_Sub3) this).aClass124_9244 != null)
	    ((Class151_Sub3) this).aClass124_9244.method1646(i, i_865_, i_866_,
							     i_867_);
    }
    
    public int method2408(int i, int i_868_) {
	return i & i_868_ ^ i_868_;
    }
}
