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

import jaclib.memory.Stream;

import jaggl.MapBuffer;
import jaggl.OpenGL;

public final class Class151_Sub2_Sub2 extends Class151_Sub2
{
    boolean aBool11179;
    int[] anIntArray11180;
    Class656 aClass656_11181;
    Class656 aClass656_11182;
    Class656 aClass656_11183;
    Class656 aClass656_11184;
    int[] anIntArray11185;
    Class656 aClass656_11186;
    long aLong11187;
    Class656 aClass656_11188 = new Class656();
    static final int anInt11189 = 3;
    boolean aBool11190;
    boolean aBool11191;
    String aString11192;
    Class456_Sub1[] aClass456_Sub1Array11193;
    Class456_Sub2 aClass456_Sub2_11194;
    Class114 aClass114_11195;
    boolean aBool11196;
    boolean aBool11197;
    String aString11198;
    boolean aBool11199;
    int anInt11200;
    boolean aBool11201;
    boolean aBool11202;
    boolean aBool11203;
    boolean aBool11204;
    boolean aBool11205;
    boolean aBool11206;
    boolean aBool11207;
    int anInt11208;
    Class230_Sub1 aClass230_Sub1_11209;
    int anInt11210;
    float[] aFloatArray11211;
    long[] aLongArray11212;
    float[] aFloatArray11213;
    int anInt11214;
    Class114 aClass114_11215;
    Class144_Sub2 aClass144_Sub2_11216;
    int[] anIntArray11217;
    Class656 aClass656_11218;
    int[] anIntArray11219;
    int anInt11220;
    OpenGL anOpenGL11221;
    
    public void method2028(int i, int i_0_, int i_1_) {
	method2071();
	if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 == null)
	    method10228(i_0_, i_1_);
	if (((Class151_Sub2_Sub2) this).aClass114_11195 == null)
	    ((Class151_Sub2_Sub2) this).aClass114_11195
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), false);
	else
	    ((Class151_Sub2_Sub2) this).aClass114_11195.method1499
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0);
	method2014(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   (byte) 79);
	method2176(1, -16777216);
	((Class151_Sub2_Sub2) this).aClass114_11195.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051,
			       (((Class151_Sub2_Sub2) this).anIntArray11217
				[((Class151_Sub2_Sub2) this).anInt11214]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   -1603593601);
	((Class151_Sub2_Sub2) this).aLongArray11212
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub2_Sub2) this).anIntArray11219
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = i;
	if (++((Class151_Sub2_Sub2) this).anInt11214 >= 3)
	    ((Class151_Sub2_Sub2) this).anInt11214 = 0;
	method2134();
    }
    
    public Class229 method8245(String string) {
	byte[] is = method10227(string);
	if (is == null)
	    return null;
	Class232 class232 = method8415(is);
	return new Class229_Sub1(this, class232);
    }
    
    public boolean method8485() {
	return ((Class151_Sub2_Sub2) this).aBool11204;
    }
    
    public void method8315() {
	int i = ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010];
	if (i != 0) {
	    ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010] = 0;
	    OpenGL.glBindTexture(i, 0);
	    OpenGL.glDisable(i);
	}
    }
    
    public boolean method8240(boolean bool) {
	return true;
    }
    
    Class151_Sub2_Sub2(OpenGL opengl, Canvas canvas, long l, Class140 class140,
		       Interface19 interface19, Interface41 interface41,
		       Interface44 interface44, Interface43 interface43,
		       Class411 class411, int i) {
	super(class140, interface19, interface41, interface44, interface43,
	      class411, i, 1);
	((Class151_Sub2_Sub2) this).aClass656_11181 = new Class656();
	((Class151_Sub2_Sub2) this).aClass656_11182 = new Class656();
	((Class151_Sub2_Sub2) this).aClass656_11183 = new Class656();
	((Class151_Sub2_Sub2) this).aClass656_11184 = new Class656();
	((Class151_Sub2_Sub2) this).aClass656_11218 = new Class656();
	((Class151_Sub2_Sub2) this).aClass656_11186 = new Class656();
	((Class151_Sub2_Sub2) this).anIntArray11180 = new int[1000];
	((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193
	    = new Class456_Sub1[16];
	new MapBuffer();
	new MapBuffer();
	((Class151_Sub2_Sub2) this).aFloatArray11211 = new float[4];
	((Class151_Sub2_Sub2) this).aFloatArray11213 = new float[16];
	((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	((Class151_Sub2_Sub2) this).aClass114_11215 = null;
	((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	((Class151_Sub2_Sub2) this).anIntArray11217 = new int[3];
	((Class151_Sub2_Sub2) this).aLongArray11212 = new long[3];
	((Class151_Sub2_Sub2) this).anIntArray11219 = new int[3];
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	int[] is = new int[1];
	try {
	    ((Class151_Sub2_Sub2) this).anOpenGL11221 = opengl;
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.method1011();
	    ((Class151_Sub2_Sub2) this).aString11198
		= OpenGL.glGetString(7936).toLowerCase();
	    ((Class151_Sub2_Sub2) this).aString11192
		= OpenGL.glGetString(7937).toLowerCase();
	    if ((((Class151_Sub2_Sub2) this).aString11198.indexOf("microsoft")
		 != -1)
		|| ((Class151_Sub2_Sub2) this).aString11198
		       .indexOf("brian paul") != -1
		|| (((Class151_Sub2_Sub2) this).aString11198.indexOf("mesa")
		    != -1))
		throw new RuntimeException("");
	    String string = OpenGL.glGetString(7938);
	    String[] strings = Class429.method5254(string.replace('.', ' '),
						   ' ', (byte) -84);
	    if (strings.length >= 2) {
		try {
		    int i_2_ = Class32.method780(strings[0], (byte) 5);
		    int i_3_ = Class32.method780(strings[1], (byte) 5);
		    ((Class151_Sub2_Sub2) this).anInt11200 = i_2_ * 10 + i_3_;
		} catch (NumberFormatException numberformatexception) {
		    throw new RuntimeException("");
		}
	    } else
		throw new RuntimeException("");
	    if (((Class151_Sub2_Sub2) this).anInt11200 < 12)
		throw new RuntimeException("");
	    OpenGL.glGetIntegerv(34018, is, 0);
	    anInt9063 = is[0];
	    if (anInt9063 < 2)
		throw new RuntimeException("");
	    anInt8964 = 8;
	    ((Class151_Sub2_Sub2) this).aBool11201
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_vertex_buffer_object");
	    aBool9068 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_ARB_multisample");
	    aBool9072 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_EXT_blend_func_separate");
	    ((Class151_Sub2_Sub2) this).aBool11202
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_texture_rectangle");
	    aBool9069 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_ARB_texture_cube_map");
	    ((Class151_Sub2_Sub2) this).aBool11179
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_texture_non_power_of_two");
	    aBool9070 = true;
	    ((Class151_Sub2_Sub2) this).aBool11204
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_vertex_shader");
	    ((Class151_Sub2_Sub2) this).aBool11205
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_vertex_program");
	    ((Class151_Sub2_Sub2) this).aBool11206
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_fragment_shader");
	    ((Class151_Sub2_Sub2) this).aBool11207
		= ((Class151_Sub2_Sub2) this).anOpenGL11221
		      .method1010("GL_ARB_fragment_program");
	    aBool9065 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_EXT_framebuffer_object");
	    aBool9071 = aBool9065;
	    aBool9066 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_EXT_framebuffer_blit");
	    aBool9078 = ((Class151_Sub2_Sub2) this).anOpenGL11221
			    .method1010("GL_EXT_framebuffer_multisample");
	    ((Class151_Sub2_Sub2) this).aBool11196
		= (anUnsafe8958 != null
		   && (((Class151_Sub2_Sub2) this).anInt11200 >= 32
		       || ((Class151_Sub2_Sub2) this).anOpenGL11221
			      .method1010("GL_ARB_sync")));
	    ((Class151_Sub2_Sub2) this).anIntArray11185 = new int[anInt9063];
	    if (!method8485() || !method8378()) {
		if (!((Class151_Sub2_Sub2) this).anOpenGL11221
			 .method1010("GL_ARB_multitexture"))
		    throw new RuntimeException("");
		if (!((Class151_Sub2_Sub2) this).anOpenGL11221
			 .method1010("GL_ARB_texture_env_combine"))
		    throw new RuntimeException("");
	    }
	    Class470.aString5331.startsWith("mac");
	    ((Class151_Sub2_Sub2) this).anInt11208
		= Stream.method1040() ? 33639 : 5121;
	    if ((((Class151_Sub2_Sub2) this).aString11192.indexOf("radeon")
		 != -1)
		|| (((Class151_Sub2_Sub2) this).aString11198.indexOf("intel")
		    != -1)) {
		int i_4_ = 0;
		boolean bool = (((Class151_Sub2_Sub2) this).aString11198
				    .indexOf("intel")
				!= -1);
		boolean bool_5_ = false;
		boolean bool_6_ = false;
		String[] strings_7_
		    = Class429.method5254(((Class151_Sub2_Sub2) this)
					      .aString11192.replace('/', ' '),
					  ' ', (byte) -50);
		for (int i_8_ = 0; i_8_ < strings_7_.length; i_8_++) {
		    String string_9_ = strings_7_[i_8_];
		    try {
			if (string_9_.length() <= 0)
			    continue;
			if (string_9_.charAt(0) == 'x'
			    && string_9_.length() >= 3
			    && Class610.method7427(string_9_.substring(1, 3),
						   1454335979)) {
			    string_9_ = string_9_.substring(1);
			    bool_6_ = true;
			}
			if (string_9_.equals("hd")) {
			    bool_5_ = true;
			    continue;
			}
			if (string_9_.startsWith("hd")) {
			    string_9_ = string_9_.substring(2);
			    bool_5_ = true;
			}
			if (string_9_.length() < 4
			    || !Class610.method7427(string_9_.substring(0, 4),
						    1454335979))
			    continue;
			i_4_ = Class32.method780(string_9_.substring(0, 4),
						 (byte) 5);
		    } catch (Exception exception) {
			continue;
		    }
		    break;
		}
		if (bool) {
		    if (!bool_5_)
			aBool9065 = false;
		} else {
		    if (!bool_6_ && !bool_5_) {
			if (i_4_ >= 7000 && i_4_ <= 7999)
			    ((Class151_Sub2_Sub2) this).aBool11201 = false;
			if (i_4_ >= 7000 && i_4_ <= 9250)
			    aBool9070 = false;
		    }
		    ((Class151_Sub2_Sub2) this).aBool11202
			&= ((Class151_Sub2_Sub2) this).anOpenGL11221
			       .method1010("GL_ARB_half_float_pixel");
		    ((Class151_Sub2_Sub2) this).aBool11197 = true;
		}
	    }
	    if (((Class151_Sub2_Sub2) this).aBool11201) {
		try {
		    int[] is_10_ = new int[1];
		    OpenGL.glGenBuffersARB(1, is_10_, 0);
		} catch (Throwable throwable) {
		    throw new RuntimeException("");
		}
	    } else
		throw new RuntimeException("");
	    method1991(canvas, new Class144_Sub1_Sub1_Sub2(this, canvas, l),
		       -1125947268);
	    method2012(canvas, 1391259715);
	    method8265(32768, false);
	    method8265(32768, false);
	} catch (Throwable throwable) {
	    throwable.printStackTrace();
	    method2078(-1683303676);
	    if (throwable instanceof OutOfMemoryError)
		throw (OutOfMemoryError) throwable;
	    throw new RuntimeException("");
	}
    }
    
    void method8251() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_11_ = 16384 + i;
	    OpenGL.glLightfv(i_11_, 4608, fs, 0);
	    OpenGL.glLightf(i_11_, 4615, 0.0F);
	    OpenGL.glLightf(i_11_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    public Class127 method2285() {
	int i = -1;
	if (((Class151_Sub2_Sub2) this).aString11198.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, method8241() ? "OpenGL FF" : "OpenGL",
			    ((Class151_Sub2_Sub2) this).anInt11200,
			    ((Class151_Sub2_Sub2) this).aString11192, 0L,
			    method8241());
    }
    
    void method1989(int i, int i_12_) throws Exception_Sub7 {
	aClass144_Sub1_1853.method8234();
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(-1506718979);
    }
    
    public void method2391() {
	OpenGL.glFinish();
    }
    
    void method2233() {
	super.method2233();
	if (((Class151_Sub2_Sub2) this).anOpenGL11221 != null) {
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.method1012();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.release();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221 = null;
	}
    }
    
    Class144_Sub1 method2053(Canvas canvas, int i, int i_13_) {
	return new Class144_Sub1_Sub1_Sub2(this, canvas);
    }
    
    public Class144_Sub2 method2017() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    public Interface18 method2101(int i, int i_14_, Class116 class116,
				  Class155 class155, int i_15_) {
	return new Class460(this, class116, class155, i, i_14_, i_15_);
    }
    
    public Interface16 method2019(int i, int i_16_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_16_);
    }
    
    void method8271() {
	if (aClass144_1857 != null) {
	    int i = anInt8984 + anInt8974;
	    int i_17_ = anInt8995 + aClass144_1857.method1944() - anInt8928;
	    int i_18_ = anInt8975 - anInt8974;
	    int i_19_ = anInt8928 - anInt8943;
	    if (i_18_ < 0)
		i_18_ = 0;
	    if (i_19_ < 0)
		i_19_ = 0;
	    OpenGL.glScissor(i, i_17_, i_18_, i_19_);
	}
    }
    
    public int[] method2021(int i, int i_20_, int i_21_, int i_22_) {
	int[] is = new int[i_21_ * i_22_];
	int i_23_ = aClass144_1857.method1944();
	for (int i_24_ = 0; i_24_ < i_22_; i_24_++)
	    OpenGL.glReadPixelsi(i, i_23_ - i_20_ - i_24_ - 1, i_21_, 1, 32993,
				 ((Class151_Sub2_Sub2) this).anInt11208, is,
				 i_24_ * i_21_);
	return is;
    }
    
    void method8343() {
	aFloat9050 = aFloat8971 - (float) anInt9048;
	aFloat9049 = aFloat9050 - (float) anInt9047;
	if (aFloat9049 < aFloat8988)
	    aFloat9049 = aFloat8988;
	if (aBool8921) {
	    OpenGL.glFogf(2915, aFloat9049);
	    OpenGL.glFogf(2916, aFloat9050);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) (anInt9046 & 0xff0000) / 1.671168E7F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) (anInt9046 & 0xff00) / 65280.0F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) (anInt9046 & 0xff) / 255.0F;
	    OpenGL.glFogfv(2918, ((Class151_Sub2_Sub2) this).aFloatArray11211,
			   0);
	}
    }
    
    public boolean method2376() {
	return ((Class151_Sub2_Sub2) this).aBool11196;
    }
    
    final void method8493(Interface39 interface39, Class342 class342, int i,
			  int i_25_, int i_26_, int i_27_) {
	int i_28_;
	int i_29_;
	if (class342 == Class342.aClass342_3643) {
	    i_28_ = 1;
	    i_29_ = i_27_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_28_ = 3;
	    i_29_ = i_27_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_28_ = 4;
	    i_29_ = i_27_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_28_ = 6;
	    i_29_ = i_27_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_28_ = 5;
	    i_29_ = i_27_ + 2;
	} else {
	    i_28_ = 0;
	    i_29_ = i_27_;
	}
	Class155 class155 = interface39.method278();
	Class456_Sub2 class456_sub2 = (Class456_Sub2) interface39;
	class456_sub2.method5653();
	OpenGL.glDrawElements(i_28_, i_29_, method10224(class155),
			      (class456_sub2.method5650()
			       + (long) (i_26_ * (class155.anInt1895
						  * -822141047))));
    }
    
    public boolean method2024() {
	return true;
    }
    
    public boolean method2025() {
	return false;
    }
    
    public int method2026() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    if ((((Class151_Sub2_Sub2) this).aLongArray11212
		 [((Class151_Sub2_Sub2) this).anInt11220])
		== 0L)
		return -1;
	    int i = OpenGL.glClientWaitSync((((Class151_Sub2_Sub2) this)
					     .aLongArray11212
					     [(((Class151_Sub2_Sub2) this)
					       .anInt11220)]),
					    0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return (i != 37147
		    ? (((Class151_Sub2_Sub2) this).anIntArray11219
		       [((Class151_Sub2_Sub2) this).anInt11220])
		    : -1);
	}
	return -1;
    }
    
    final void method8319(int i, Class338 class338, boolean bool,
			  boolean bool_30_) {
	OpenGL.glTexEnvi(8960, 34176 + i, method10230(class338));
	if (bool)
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_30_ ? 771 : 770);
	else
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_30_ ? 769 : 768);
    }
    
    public void method2284() {
	for (int i = 0; i < 3; i++) {
	    if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this).aLongArray11212
				    [i]);
		((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
	    }
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    public long method2029(int i, int i_31_) {
	return method10217(i, i_31_, null, null);
    }
    
    public void method2030(int i, int i_32_, int[] is, int[] is_33_) {
	method10217(i, i_32_, is, is_33_);
    }
    
    long method10217(int i, int i_34_, int[] is, int[] is_35_) {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    if ((((Class151_Sub2_Sub2) this).aLongArray11212
		 [((Class151_Sub2_Sub2) this).anInt11220])
		!= 0L) {
		OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this).aLongArray11212
				    [((Class151_Sub2_Sub2) this).anInt11220]);
		((Class151_Sub2_Sub2) this).aLongArray11212
		    [((Class151_Sub2_Sub2) this).anInt11220]
		    = 0L;
	    }
	    OpenGL.glBindBufferARB(35051,
				   (((Class151_Sub2_Sub2) this).anIntArray11217
				    [((Class151_Sub2_Sub2) this).anInt11220]));
	    long l = OpenGL.glMapBufferARB(35051, 35000);
	    if (is != null) {
		for (int i_36_ = 0; i_36_ < i * i_34_; i_36_++)
		    is[i_36_] = anUnsafe8958.getInt(l + (long) (i_36_ * 4));
		if (OpenGL.glUnmapBufferARB(35051)) {
		    /* empty */
		}
		OpenGL.glBindBufferARB(35051, 0);
		l = 0L;
	    }
	    if (++((Class151_Sub2_Sub2) this).anInt11220 >= 3)
		((Class151_Sub2_Sub2) this).anInt11220 = 0;
	    return l;
	}
	if (((Class151_Sub2_Sub2) this).aClass114_11215 == null)
	    method10228(i, i_34_);
	if (((Class151_Sub2_Sub2) this).aClass114_11195 == null)
	    ((Class151_Sub2_Sub2) this).aClass114_11195
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), false);
	else
	    ((Class151_Sub2_Sub2) this).aClass114_11195.method1499
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0);
	method2014(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   (byte) -48);
	method2176(1, -16777216);
	((Class151_Sub2_Sub2) this).aClass114_11195.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	((Class151_Sub2_Sub2) this).aClass114_11215
	    .method1496(0, 0, i, i_34_, is, is_35_, 0, i);
	method2015(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   -1758979067);
	return 0L;
    }
    
    public void method2103(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    public void method2383() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	    if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 != null) {
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method80();
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, (((Class151_Sub2_Sub2) this)
					  .anIntArray11217), 0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub2_Sub2) this).anIntArray11217[i] = 0;
		if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this)
					.aLongArray11212[i]);
		    ((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11215 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    void method8346() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_37_ = 16384 + i;
	    OpenGL.glLightfv(i_37_, 4608, fs, 0);
	    OpenGL.glLightf(i_37_, 4615, 0.0F);
	    OpenGL.glLightf(i_37_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    public void method2153(boolean bool) {
	/* empty */
    }
    
    public final void method8462(Class342 class342, int i, int i_38_) {
	int i_39_;
	int i_40_;
	if (class342 == Class342.aClass342_3643) {
	    i_39_ = 1;
	    i_40_ = i_38_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_39_ = 3;
	    i_40_ = i_38_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_39_ = 4;
	    i_40_ = i_38_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_39_ = 6;
	    i_40_ = i_38_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_39_ = 5;
	    i_40_ = i_38_ + 2;
	} else {
	    i_39_ = 0;
	    i_40_ = i_38_;
	}
	OpenGL.glDrawArrays(i_39_, i, i_40_);
    }
    
    public boolean method2164() {
	return true;
    }
    
    void method8272() {
	if (aBool9087)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    public void method8247(Class403 class403, Class403 class403_41_,
			   Class403 class403_42_) {
	OpenGL.glMatrixMode(5888);
	aClass403_9081.method4881(class403, class403_41_);
	OpenGL.glLoadMatrixf(aClass403_9081.aFloatArray4592, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class403_42_.aFloatArray4592, 0);
    }
    
    Interface31 method8449(int i, int i_43_, boolean bool, int[] is, int i_44_,
			   int i_45_) {
	return new Class461_Sub2(this, i, i_43_, bool, is, i_44_, i_45_);
    }
    
    final void method8339() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = (float) (anInt9016 & 0xff0000) / 1.671168E7F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = (float) (anInt9016 & 0xff00) / 65280.0F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = (float) (anInt9016 & 0xff) / 255.0F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3]
	    = (float) (anInt9016 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    void method8419() {
	OpenGL.glDepthMask(aBool8973 && aBool9013);
    }
    
    void method8294() {
	if (aBool8987 && !aBool9030)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    void method8295() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = aFloat9000 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = aFloat9000 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = aFloat9000 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    void method8363() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = aFloat9001 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = aFloat9001 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = aFloat9001 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = -aFloat8986 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = -aFloat8986 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = -aFloat8986 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    void method8297() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray8992, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9005, 0);
    }
    
    void method8299() {
	if (aBool8990) {
	    OpenGL.glEnable(16384);
	    OpenGL.glEnable(16385);
	} else {
	    OpenGL.glDisable(16384);
	    OpenGL.glDisable(16385);
	}
    }
    
    void method8264() {
	/* empty */
    }
    
    public Class136 method2266(Class136 class136, Class136 class136_46_,
			       float f, Class136 class136_47_) {
	return f < 0.5F ? class136 : class136_46_;
    }
    
    boolean method8302(Class116 class116, Class155 class155) {
	return true;
    }
    
    boolean method8358(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    public void method2171(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    Interface31 method8496(int i, int i_48_, boolean bool, int[] is, int i_49_,
			   int i_50_) {
	return new Class461_Sub2(this, i, i_48_, bool, is, i_49_, i_50_);
    }
    
    public Class229 method8387(String string) {
	byte[] is = method10227(string);
	if (is == null)
	    return null;
	Class232 class232 = method8415(is);
	return new Class229_Sub1(this, class232);
    }
    
    Interface31 method8422(Class116 class116, int i, int i_51_, boolean bool,
			   float[] fs, int i_52_, int i_53_) {
	return new Class461_Sub2(this, class116, i, i_51_, bool, fs, i_52_,
				 i_53_);
    }
    
    Interface34 method8311(Class116 class116, Class155 class155, int i,
			   int i_54_) {
	return new Class461_Sub2(this, class116, class155, i, i_54_);
    }
    
    public float method8365() {
	return 0.0F;
    }
    
    Interface29 method8310(Class116 class116, int i, int i_55_, int i_56_,
			   boolean bool, byte[] is) {
	return new Class461_Sub1(this, class116, i, i_55_, i_56_, bool, is);
    }
    
    void method8442() {
	OpenGL.glTexEnvi(8960, 34162,
			 method10229(aClass345Array8917[anInt9010]));
    }
    
    void method8327() {
	OpenGL.glMatrixMode(5890);
	if (aClass340Array9031[anInt9010] != Class340.aClass340_3636)
	    OpenGL.glLoadMatrixf
		(aClass403Array9033[anInt9010]
		     .method4888(((Class151_Sub2_Sub2) this).aFloatArray11213),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    public int[] method2158(int i, int i_57_, int i_58_, int i_59_) {
	int[] is = new int[i_58_ * i_59_];
	int i_60_ = aClass144_1857.method1944();
	for (int i_61_ = 0; i_61_ < i_59_; i_61_++)
	    OpenGL.glReadPixelsi(i, i_60_ - i_57_ - i_61_ - 1, i_58_, 1, 32993,
				 ((Class151_Sub2_Sub2) this).anInt11208, is,
				 i_61_ * i_58_);
	return is;
    }
    
    void method8330() {
	OpenGL.glTexEnvi(8960, 34162,
			 method10229(aClass345Array8917[anInt9010]));
    }
    
    void method8411() {
	if (aClass144_1857 != null) {
	    int i = anInt8984 + anInt8974;
	    int i_62_ = anInt8995 + aClass144_1857.method1944() - anInt8928;
	    int i_63_ = anInt8975 - anInt8974;
	    int i_64_ = anInt8928 - anInt8943;
	    if (i_63_ < 0)
		i_63_ = 0;
	    if (i_64_ < 0)
		i_64_ = 0;
	    OpenGL.glScissor(i, i_62_, i_63_, i_64_);
	}
    }
    
    final void method8266(int i, Class338 class338, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method10230(class338));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    public void method8312(Class403 class403, Class403 class403_65_,
			   Class403 class403_66_) {
	OpenGL.glMatrixMode(5888);
	aClass403_9081.method4881(class403, class403_65_);
	OpenGL.glLoadMatrixf(aClass403_9081.aFloatArray4592, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class403_66_.aFloatArray4592, 0);
    }
    
    final void method8291(Interface39 interface39, Class342 class342, int i,
			  int i_67_, int i_68_, int i_69_) {
	int i_70_;
	int i_71_;
	if (class342 == Class342.aClass342_3643) {
	    i_70_ = 1;
	    i_71_ = i_69_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_70_ = 3;
	    i_71_ = i_69_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_70_ = 4;
	    i_71_ = i_69_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_70_ = 6;
	    i_71_ = i_69_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_70_ = 5;
	    i_71_ = i_69_ + 2;
	} else {
	    i_70_ = 0;
	    i_71_ = i_69_;
	}
	Class155 class155 = interface39.method278();
	Class456_Sub2 class456_sub2 = (Class456_Sub2) interface39;
	class456_sub2.method5653();
	OpenGL.glDrawElements(i_70_, i_71_, method10224(class155),
			      (class456_sub2.method5650()
			       + (long) (i_68_ * (class155.anInt1895
						  * -822141047))));
    }
    
    void method8424(int i) {
	if (!((Class151_Sub2_Sub2) this).aBool11203)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    void method8334(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    void method8335() {
	if (aBool8972)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (aByte9056 & 0xff) / 255.0F);
	if (anInt9057 > 1) {
	    if (aByte9056 != 0)
		OpenGL.glEnable(32926);
	    else
		OpenGL.glDisable(32926);
	}
    }
    
    void method8357() {
	if (aBool9072) {
	    int i = 0;
	    int i_72_ = 0;
	    if (anInt8937 == 0) {
		i = 0;
		i_72_ = 0;
	    } else if (anInt8937 == 1) {
		i = 1;
		i_72_ = 0;
	    } else if (anInt8937 == 2) {
		i = 1;
		i_72_ = 1;
	    } else if (anInt8937 == 3) {
		i = 0;
		i_72_ = 1;
	    }
	    if (aClass337_9053 == Class337.aClass337_3618)
		OpenGL.glBlendFuncSeparate(770, 771, i, i_72_);
	    else if (aClass337_9053 == Class337.aClass337_3616)
		OpenGL.glBlendFuncSeparate(1, 1, i, i_72_);
	    else if (aClass337_9053 == Class337.aClass337_3617)
		OpenGL.glBlendFuncSeparate(774, 1, i, i_72_);
	    else if (aClass337_9053 == Class337.aClass337_3615)
		OpenGL.glBlendFuncSeparate(1, 0, i, i_72_);
	} else if (aClass337_9053 == Class337.aClass337_3618) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(770, 771);
	} else if (aClass337_9053 == Class337.aClass337_3616) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(1, 1);
	} else if (aClass337_9053 == Class337.aClass337_3617) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(774, 1);
	} else
	    OpenGL.glDisable(3042);
    }
    
    void method8337() {
	if (aBool9054)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    void method8441() {
	if (aBool9080 && aBool9044 && anInt9047 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    Interface31 method8270(Class116 class116, int i, int i_73_, boolean bool,
			   byte[] is, int i_74_, int i_75_) {
	return new Class461_Sub2(this, class116, i, i_73_, bool, is, i_74_,
				 i_75_);
    }
    
    public void method8367(int i, Interface33 interface33) {
	((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i]
	    = (Class456_Sub1) interface33;
    }
    
    final Interface33 method8289(boolean bool) {
	return new Class456_Sub1(this, bool);
    }
    
    final Interface39 method8341(boolean bool) {
	return new Class456_Sub2(this, Class155.aClass155_1885, bool);
    }
    
    public final void method8489(Class342 class342, int i, int i_76_) {
	int i_77_;
	int i_78_;
	if (class342 == Class342.aClass342_3643) {
	    i_77_ = 1;
	    i_78_ = i_76_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_77_ = 3;
	    i_78_ = i_76_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_77_ = 4;
	    i_78_ = i_76_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_77_ = 6;
	    i_78_ = i_76_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_77_ = 5;
	    i_78_ = i_76_ + 2;
	} else {
	    i_77_ = 0;
	    i_78_ = i_76_;
	}
	OpenGL.glDrawArrays(i_77_, i, i_78_);
    }
    
    public void method8380(int i, Interface33 interface33) {
	((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i]
	    = (Class456_Sub1) interface33;
    }
    
    void method8344(Interface39 interface39) {
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194
	    = (Class456_Sub2) interface39;
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194.method5653();
    }
    
    public void method8463(Class325 class325) {
	Class311[] class311s = class325.aClass311Array3567;
	int i = 0;
	boolean bool = false;
	boolean bool_79_ = false;
	boolean bool_80_ = false;
	for (int i_81_ = 0; i_81_ < class311s.length; i_81_++) {
	    Class311 class311 = class311s[i_81_];
	    Class456_Sub1 class456_sub1
		= ((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i_81_];
	    int i_82_ = 0;
	    int i_83_ = class456_sub1.method8918();
	    long l = class456_sub1.method5650();
	    class456_sub1.method5653();
	    for (int i_84_ = 0; i_84_ < class311.method4109(); i_84_++) {
		Class324 class324 = class311.method4113(i_84_);
		switch (class324.anInt3560) {
		case 6:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_83_, l + (long) i_82_);
		    break;
		case 0:
		    OpenGL.glColorPointer(4, 5121, i_83_, l + (long) i_82_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glVertexPointer(3, 5126, i_83_, l + (long) i_82_);
		    bool_80_ = true;
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_83_, l + (long) i_82_);
		    break;
		case 11:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_83_, l + (long) i_82_);
		    break;
		default:
		    break;
		case 9:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_83_, l + (long) i_82_);
		    break;
		case 8:
		    OpenGL.glNormalPointer(5126, i_83_, l + (long) i_82_);
		    bool_79_ = true;
		}
		i_82_ += class324.anInt3564;
	    }
	}
	if (((Class151_Sub2_Sub2) this).aBool11191 != bool_80_) {
	    if (bool_80_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class151_Sub2_Sub2) this).aBool11191 = bool_80_;
	}
	if (((Class151_Sub2_Sub2) this).aBool11199 != bool_79_) {
	    if (bool_79_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class151_Sub2_Sub2) this).aBool11199 = bool_79_;
	}
	if (((Class151_Sub2_Sub2) this).aBool11190 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class151_Sub2_Sub2) this).aBool11190 = bool;
	}
	if (((Class151_Sub2_Sub2) this).anInt11210 < i) {
	    for (int i_85_ = ((Class151_Sub2_Sub2) this).anInt11210; i_85_ < i;
		 i_85_++) {
		OpenGL.glClientActiveTexture(33984 + i_85_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class151_Sub2_Sub2) this).anInt11210 = i;
	} else if (((Class151_Sub2_Sub2) this).anInt11210 > i) {
	    for (int i_86_ = i; i_86_ < ((Class151_Sub2_Sub2) this).anInt11210;
		 i_86_++) {
		OpenGL.glClientActiveTexture(33984 + i_86_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class151_Sub2_Sub2) this).anInt11210 = i;
	}
    }
    
    final Interface33 method8480(boolean bool) {
	return new Class456_Sub1(this, bool);
    }
    
    final void method8350(Interface39 interface39, Class342 class342, int i,
			  int i_87_, int i_88_, int i_89_) {
	int i_90_;
	int i_91_;
	if (class342 == Class342.aClass342_3643) {
	    i_90_ = 1;
	    i_91_ = i_89_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_90_ = 3;
	    i_91_ = i_89_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_90_ = 4;
	    i_91_ = i_89_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_90_ = 6;
	    i_91_ = i_89_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_90_ = 5;
	    i_91_ = i_89_ + 2;
	} else {
	    i_90_ = 0;
	    i_91_ = i_89_;
	}
	Class155 class155 = interface39.method278();
	Class456_Sub2 class456_sub2 = (Class456_Sub2) interface39;
	class456_sub2.method5653();
	OpenGL.glDrawElements(i_90_, i_91_, method10224(class155),
			      (class456_sub2.method5650()
			       + (long) (i_88_ * (class155.anInt1895
						  * -822141047))));
    }
    
    public final void method8351(Class342 class342, int i, int i_92_,
				 int i_93_, int i_94_) {
	int i_95_;
	int i_96_;
	if (class342 == Class342.aClass342_3643) {
	    i_95_ = 1;
	    i_96_ = i_94_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_95_ = 3;
	    i_96_ = i_94_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_95_ = 4;
	    i_96_ = i_94_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_95_ = 6;
	    i_96_ = i_94_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_95_ = 5;
	    i_96_ = i_94_ + 2;
	} else {
	    i_95_ = 0;
	    i_96_ = i_94_;
	}
	Class155 class155
	    = ((Class151_Sub2_Sub2) this).aClass456_Sub2_11194.method278();
	OpenGL.glDrawElements(i_95_, i_96_, method10224(class155),
			      (((Class151_Sub2_Sub2) this)
				   .aClass456_Sub2_11194.method5650()
			       + (long) (i_93_ * (class155.anInt1895
						  * -822141047))));
    }
    
    public final synchronized void method1993(int i) {
	try {
	    method10226();
	} catch (Exception exception) {
	    return;
	}
	int i_97_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub2_Sub2) this).aClass656_11181
		    .method7825(785223442)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11181.method7792(580885875);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_97_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8932 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_97_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_97_, (((Class151_Sub2_Sub2) this)
						  .anIntArray11180), 0);
		i_97_ = 0;
	    }
	}
	if (i_97_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_97_, (((Class151_Sub2_Sub2) this)
					      .anIntArray11180), 0);
	    i_97_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11182
		    .method7825(362201526)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11182.method7792(1471533894);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_97_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt9055 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_97_ == 1000) {
		OpenGL.glDeleteTextures(i_97_, (((Class151_Sub2_Sub2) this)
						.anIntArray11180), 0);
		i_97_ = 0;
	    }
	}
	if (i_97_ > 0) {
	    OpenGL.glDeleteTextures(i_97_, (((Class151_Sub2_Sub2) this)
					    .anIntArray11180), 0);
	    i_97_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11183
		    .method7825(-825400471)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11183.method7792(1725065742);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_97_++]
		= class487_sub28.anInt10251 * -1323364665;
	    if (i_97_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_97_,
					       (((Class151_Sub2_Sub2) this)
						.anIntArray11180),
					       0);
		i_97_ = 0;
	    }
	}
	if (i_97_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_97_, (((Class151_Sub2_Sub2) this)
						   .anIntArray11180), 0);
	    i_97_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11184
		    .method7825(129511220)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11184
				       .method7792(-1367372831);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_97_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8933 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_97_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_97_,
						(((Class151_Sub2_Sub2) this)
						 .anIntArray11180),
						0);
		i_97_ = 0;
	    }
	}
	if (i_97_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_97_, (((Class151_Sub2_Sub2) this)
						    .anIntArray11180), 0);
	    boolean bool = false;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(1343398520)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(-402909057);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11218
		    .method7825(-753834170)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11218
				    .method7792(-1539562480);
	    OpenGL.glDeleteProgram((int) (class487.aLong6694
					  * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11186
		    .method7825(1144490140)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11186
				    .method7792(-717216314);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(38173764)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(1431951786);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	if (method2353() > 100663296
	    && (Class222.method3225(1718602453)
		> ((Class151_Sub2_Sub2) this).aLong11187 + 60000L)) {
	    System.gc();
	    ((Class151_Sub2_Sub2) this).aLong11187
		= Class222.method3225(1833283003);
	}
	super.method1993(i);
    }
    
    final synchronized void method10218(int i, int i_98_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_98_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub2_Sub2) this).aClass656_11181.method7791(class487_sub28,
							       (byte) 3);
    }
    
    final synchronized void method10219(int i, int i_99_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_99_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub2_Sub2) this).aClass656_11182.method7791(class487_sub28,
							       (byte) 3);
    }
    
    final synchronized void method10220(int i) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i);
	((Class151_Sub2_Sub2) this).aClass656_11183.method7791(class487_sub28,
							       (byte) 3);
    }
    
    final synchronized void method10221(int i, int i_100_) {
	Class487_Sub28 class487_sub28 = new Class487_Sub28(i_100_);
	class487_sub28.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub2_Sub2) this).aClass656_11184.method7791(class487_sub28,
							       (byte) 3);
    }
    
    final synchronized void method10222(long l) {
	Class487 class487 = new Class487();
	class487.aLong6694 = l * 4978201747651972667L;
	((Class151_Sub2_Sub2) this).aClass656_11186.method7791(class487,
							       (byte) 3);
    }
    
    final synchronized void method10223(int i) {
	Class487 class487 = new Class487();
	class487.aLong6694 = (long) i * 4978201747651972667L;
	((Class151_Sub2_Sub2) this).aClass656_11218.method7791(class487,
							       (byte) 3);
    }
    
    static final int method10224(Class155 class155) {
	switch (class155.anInt1889 * 623902933) {
	default:
	    return 5121;
	case 2:
	    return 5125;
	case 7:
	    return 5131;
	case 4:
	    return 5121;
	case 8:
	    return 5122;
	case 3:
	    return 5120;
	case 1:
	    return 5126;
	case 0:
	    return 5124;
	case 6:
	    return 5123;
	}
    }
    
    public int[] method2155(int i, int i_101_, int i_102_, int i_103_) {
	int[] is = new int[i_102_ * i_103_];
	int i_104_ = aClass144_1857.method1944();
	for (int i_105_ = 0; i_105_ < i_103_; i_105_++)
	    OpenGL.glReadPixelsi(i, i_104_ - i_101_ - i_105_ - 1, i_102_, 1,
				 32993, ((Class151_Sub2_Sub2) this).anInt11208,
				 is, i_105_ * i_102_);
	return is;
    }
    
    void method8382() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	int i;
	for (i = 0; i < anInt9008; i++) {
	    Class487_Sub16 class487_sub16 = aClass487_Sub16Array9003[i];
	    int i_106_ = class487_sub16.method9179(1673018745);
	    int i_107_ = 16386 + i;
	    float f = class487_sub16.method9174((byte) 79) / 255.0F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) class487_sub16.method9196(1528858623);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) class487_sub16.method9176(22301438);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) class487_sub16.method9175(-64375987);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_107_, 4611,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) (i_106_ >> 16 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) (i_106_ >> 8 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) (i_106_ & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_107_, 4609,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    OpenGL.glLightf(i_107_, 4617,
			    (1.0F
			     / (float) (class487_sub16.method9194((byte) 79)
					* class487_sub16
					      .method9194((byte) 88))));
	    OpenGL.glEnable(i_107_);
	}
	for (/**/; i < anInt9034; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    static int method10225(Class116 class116) {
	switch (class116.anInt1447 * 770769135) {
	case 3:
	    return 6406;
	case 5:
	    return 6402;
	case 9:
	    return 6408;
	case 2:
	    return 6410;
	default:
	    throw new IllegalStateException();
	case 7:
	    return 6407;
	case 4:
	    return 6409;
	}
    }
    
    void method10226() {
	int i = 0;
	while (!((Class151_Sub2_Sub2) this).anOpenGL11221.method1011()) {
	    if (i++ > 5)
		throw new RuntimeException("");
	    Class118.method1565(1000L);
	}
    }
    
    void method8405(int i) {
	if (!((Class151_Sub2_Sub2) this).aBool11203)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    public String method2005() {
	String string = "Caps: 4:";
	String string_108_ = ":";
	string = new StringBuilder().append(string).append(anInt9057).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).anInt11208).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append(anInt9063).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append(anInt8964).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11201 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9068 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11205 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11207 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11204 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11206 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9070 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11202 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9069 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11179 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9065 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9066 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9078 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9072 ? 1 : 0).append
		     (string_108_).toString();
	string = new StringBuilder().append(string).append
		     (OpenGL.glGetString(35724).toLowerCase()).toString();
	return string;
    }
    
    public Class229 method8329(String string) {
	byte[] is = method10227(string);
	if (is == null)
	    return null;
	Class232 class232 = method8415(is);
	return new Class229_Sub1(this, class232);
    }
    
    boolean method8445(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    void method8282() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray8992, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9005, 0);
    }
    
    void method2386(int i, int i_109_) throws Exception_Sub7 {
	aClass144_Sub1_1853.method8234();
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(184347845);
    }
    
    public void method2124() {
	OpenGL.glFinish();
    }
    
    byte[] method10227(String string) {
	return method8246("gl", string);
    }
    
    public final synchronized void method2126(int i) {
	try {
	    method10226();
	} catch (Exception exception) {
	    return;
	}
	int i_110_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub2_Sub2) this).aClass656_11181
		    .method7825(-672468938)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11181.method7792(844350514);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_110_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8932 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_110_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_110_, (((Class151_Sub2_Sub2) this)
						   .anIntArray11180), 0);
		i_110_ = 0;
	    }
	}
	if (i_110_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_110_, (((Class151_Sub2_Sub2) this)
					       .anIntArray11180), 0);
	    i_110_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11182
		    .method7825(313366541)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11182
				       .method7792(-1931499946);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_110_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt9055 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_110_ == 1000) {
		OpenGL.glDeleteTextures(i_110_, (((Class151_Sub2_Sub2) this)
						 .anIntArray11180), 0);
		i_110_ = 0;
	    }
	}
	if (i_110_ > 0) {
	    OpenGL.glDeleteTextures(i_110_, (((Class151_Sub2_Sub2) this)
					     .anIntArray11180), 0);
	    i_110_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11183
		    .method7825(1411599420)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11183.method7792(156797796);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_110_++]
		= class487_sub28.anInt10251 * -1323364665;
	    if (i_110_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_110_,
					       (((Class151_Sub2_Sub2) this)
						.anIntArray11180),
					       0);
		i_110_ = 0;
	    }
	}
	if (i_110_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_110_, (((Class151_Sub2_Sub2) this)
						    .anIntArray11180), 0);
	    i_110_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11184
		    .method7825(60524699)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11184.method7792(1665797093);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_110_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8933 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_110_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_110_,
						(((Class151_Sub2_Sub2) this)
						 .anIntArray11180),
						0);
		i_110_ = 0;
	    }
	}
	if (i_110_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_110_,
					    (((Class151_Sub2_Sub2) this)
					     .anIntArray11180),
					    0);
	    boolean bool = false;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(-406395824)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(1715060211);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11218
		    .method7825(-292172548)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11218
				    .method7792(-627312076);
	    OpenGL.glDeleteProgram((int) (class487.aLong6694
					  * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11186
		    .method7825(1677499437)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11186
				    .method7792(-585475385);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(1297043419)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(1310918465);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	if (method2353() > 100663296
	    && (Class222.method3225(2022234757)
		> ((Class151_Sub2_Sub2) this).aLong11187 + 60000L)) {
	    System.gc();
	    ((Class151_Sub2_Sub2) this).aLong11187
		= Class222.method3225(1759683227);
	}
	super.method1993(i);
    }
    
    public String method2148() {
	String string = "Caps: 4:";
	String string_111_ = ":";
	string = new StringBuilder().append(string).append(anInt9057).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).anInt11208).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append(anInt9063).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append(anInt8964).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11201 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9068 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11205 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11207 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11204 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11206 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9070 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11202 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9069 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11179 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9065 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9066 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9078 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9072 ? 1 : 0).append
		     (string_111_).toString();
	string = new StringBuilder().append(string).append
		     (OpenGL.glGetString(35724).toLowerCase()).toString();
	return string;
    }
    
    public String method2149() {
	String string = "Caps: 4:";
	String string_112_ = ":";
	string = new StringBuilder().append(string).append(anInt9057).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).anInt11208).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append(anInt9063).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append(anInt8964).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11201 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9068 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11205 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11207 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11204 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11206 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9070 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11202 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9069 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (((Class151_Sub2_Sub2) this).aBool11179 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9065 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9066 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9078 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (aBool9072 ? 1 : 0).append
		     (string_112_).toString();
	string = new StringBuilder().append(string).append
		     (OpenGL.glGetString(35724).toLowerCase()).toString();
	return string;
    }
    
    public Interface16 method2020(int i, int i_113_, int i_114_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_113_, i_114_);
    }
    
    Interface31 method8451(int i, int i_115_, boolean bool, int[] is,
			   int i_116_, int i_117_) {
	return new Class461_Sub2(this, i, i_115_, bool, is, i_116_, i_117_);
    }
    
    Class144_Sub1 method2333(Canvas canvas, int i, int i_118_) {
	return new Class144_Sub1_Sub1_Sub2(this, canvas);
    }
    
    public float method8400() {
	return 0.0F;
    }
    
    public int[] method2156(int i, int i_119_, int i_120_, int i_121_) {
	int[] is = new int[i_120_ * i_121_];
	int i_122_ = aClass144_1857.method1944();
	for (int i_123_ = 0; i_123_ < i_121_; i_123_++)
	    OpenGL.glReadPixelsi(i, i_122_ - i_119_ - i_123_ - 1, i_120_, 1,
				 32993, ((Class151_Sub2_Sub2) this).anInt11208,
				 is, i_123_ * i_120_);
	return is;
    }
    
    public int[] method2157(int i, int i_124_, int i_125_, int i_126_) {
	int[] is = new int[i_125_ * i_126_];
	int i_127_ = aClass144_1857.method1944();
	for (int i_128_ = 0; i_128_ < i_126_; i_128_++)
	    OpenGL.glReadPixelsi(i, i_127_ - i_124_ - i_128_ - 1, i_125_, 1,
				 32993, ((Class151_Sub2_Sub2) this).anInt11208,
				 is, i_128_ * i_125_);
	return is;
    }
    
    public void method2004() {
	if (aClass144_1857 != null) {
	    int i = aClass144_1857.method1943();
	    int i_129_ = aClass144_1857.method1944();
	    if (i > 0 || i_129_ > 0) {
		int i_130_ = anInt8981;
		int i_131_ = anInt9002;
		int i_132_ = anInt9062;
		int i_133_ = anInt8983;
		method2221();
		int i_134_ = anInt8974;
		int i_135_ = anInt8975;
		int i_136_ = anInt8943;
		int i_137_ = anInt8928;
		method2036();
		OpenGL.glReadBuffer(1028);
		OpenGL.glDrawBuffer(1029);
		method8281();
		method8338(false);
		method8292(false);
		method8288(false);
		method8404(false);
		method8314(null);
		method8316(1);
		method8348(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.glDisable(3553);
		OpenGL.glCopyPixels(0, 0, i, i_129_, 6144);
		OpenGL.glEnable(3553);
		OpenGL.glFlush();
		OpenGL.glReadBuffer(1029);
		OpenGL.glDrawBuffer(1029);
		method2381(i_134_, i_136_, i_135_, i_137_);
		method2034(i_130_, i_131_, i_132_, i_133_);
	    }
	}
    }
    
    public boolean method2160() {
	return ((Class151_Sub2_Sub2) this).aBool11196;
    }
    
    public boolean method2161() {
	return true;
    }
    
    public boolean method2366() {
	return true;
    }
    
    public boolean method2163() {
	return true;
    }
    
    public Class127 method2119() {
	int i = -1;
	if (((Class151_Sub2_Sub2) this).aString11198.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, method8241() ? "OpenGL FF" : "OpenGL",
			    ((Class151_Sub2_Sub2) this).anInt11200,
			    ((Class151_Sub2_Sub2) this).aString11192, 0L,
			    method8241());
    }
    
    public boolean method2165() {
	return false;
    }
    
    void method10228(int i, int i_138_) {
	method2383();
	method2031(i, i_138_, 703733864);
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    ((Class151_Sub2_Sub2) this).aClass114_11215
		= method2065(i, i_138_, false, true);
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = method2017();
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method8672
		(0, ((Class151_Sub2_Sub2) this).aClass114_11215.method1494());
	    OpenGL.glGenBuffersARB(3,
				   ((Class151_Sub2_Sub2) this).anIntArray11217,
				   0);
	    for (int i_139_ = 0; i_139_ < 3; i_139_++) {
		OpenGL.glBindBufferARB(35051, (((Class151_Sub2_Sub2) this)
					       .anIntArray11217[i_139_]));
		OpenGL.glBufferDataARBa(35051, i * i_138_ * 4, 0L, 35041);
		OpenGL.glBindBufferARB(35051, 0);
	    }
	} else {
	    ((Class151_Sub2_Sub2) this).aClass114_11215
		= method2065(i, i_138_, false, true);
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = method2017();
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method8672
		(0, ((Class151_Sub2_Sub2) this).aClass114_11215.method1494());
	}
    }
    
    public int method2167() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    if ((((Class151_Sub2_Sub2) this).aLongArray11212
		 [((Class151_Sub2_Sub2) this).anInt11220])
		== 0L)
		return -1;
	    int i = OpenGL.glClientWaitSync((((Class151_Sub2_Sub2) this)
					     .aLongArray11212
					     [(((Class151_Sub2_Sub2) this)
					       .anInt11220)]),
					    0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return (i != 37147
		    ? (((Class151_Sub2_Sub2) this).anIntArray11219
		       [((Class151_Sub2_Sub2) this).anInt11220])
		    : -1);
	}
	return -1;
    }
    
    void method8326() {
	if (aClass144_1857 != null)
	    OpenGL.glViewport(anInt8984 + anInt8981,
			      (anInt8995 + aClass144_1857.method1944()
			       - anInt9002 - anInt8983),
			      anInt9062, anInt8983);
	OpenGL.glDepthRange(aFloat8966, aFloat9004);
    }
    
    public int method2169() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    if ((((Class151_Sub2_Sub2) this).aLongArray11212
		 [((Class151_Sub2_Sub2) this).anInt11220])
		== 0L)
		return -1;
	    int i = OpenGL.glClientWaitSync((((Class151_Sub2_Sub2) this)
					     .aLongArray11212
					     [(((Class151_Sub2_Sub2) this)
					       .anInt11220)]),
					    0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return (i != 37147
		    ? (((Class151_Sub2_Sub2) this).anIntArray11219
		       [((Class151_Sub2_Sub2) this).anInt11220])
		    : -1);
	}
	return -1;
    }
    
    Class144_Sub1 method2334(Canvas canvas, int i, int i_140_) {
	return new Class144_Sub1_Sub1_Sub2(this, canvas);
    }
    
    void method8499(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    public void method8483(Class325 class325) {
	Class311[] class311s = class325.aClass311Array3567;
	int i = 0;
	boolean bool = false;
	boolean bool_141_ = false;
	boolean bool_142_ = false;
	for (int i_143_ = 0; i_143_ < class311s.length; i_143_++) {
	    Class311 class311 = class311s[i_143_];
	    Class456_Sub1 class456_sub1
		= ((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i_143_];
	    int i_144_ = 0;
	    int i_145_ = class456_sub1.method8918();
	    long l = class456_sub1.method5650();
	    class456_sub1.method5653();
	    for (int i_146_ = 0; i_146_ < class311.method4109(); i_146_++) {
		Class324 class324 = class311.method4113(i_146_);
		switch (class324.anInt3560) {
		case 6:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(3, 5126, i_145_,
					     l + (long) i_144_);
		    break;
		case 0:
		    OpenGL.glColorPointer(4, 5121, i_145_, l + (long) i_144_);
		    bool = true;
		    break;
		case 7:
		    OpenGL.glVertexPointer(3, 5126, i_145_, l + (long) i_144_);
		    bool_142_ = true;
		    break;
		case 4:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(4, 5126, i_145_,
					     l + (long) i_144_);
		    break;
		case 11:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(1, 5126, i_145_,
					     l + (long) i_144_);
		    break;
		default:
		    break;
		case 9:
		    OpenGL.glClientActiveTexture(33984 + i++);
		    OpenGL.glTexCoordPointer(2, 5126, i_145_,
					     l + (long) i_144_);
		    break;
		case 8:
		    OpenGL.glNormalPointer(5126, i_145_, l + (long) i_144_);
		    bool_141_ = true;
		}
		i_144_ += class324.anInt3564;
	    }
	}
	if (((Class151_Sub2_Sub2) this).aBool11191 != bool_142_) {
	    if (bool_142_)
		OpenGL.glEnableClientState(32884);
	    else
		OpenGL.glDisableClientState(32884);
	    ((Class151_Sub2_Sub2) this).aBool11191 = bool_142_;
	}
	if (((Class151_Sub2_Sub2) this).aBool11199 != bool_141_) {
	    if (bool_141_)
		OpenGL.glEnableClientState(32885);
	    else
		OpenGL.glDisableClientState(32885);
	    ((Class151_Sub2_Sub2) this).aBool11199 = bool_141_;
	}
	if (((Class151_Sub2_Sub2) this).aBool11190 != bool) {
	    if (bool)
		OpenGL.glEnableClientState(32886);
	    else
		OpenGL.glDisableClientState(32886);
	    ((Class151_Sub2_Sub2) this).aBool11190 = bool;
	}
	if (((Class151_Sub2_Sub2) this).anInt11210 < i) {
	    for (int i_147_ = ((Class151_Sub2_Sub2) this).anInt11210;
		 i_147_ < i; i_147_++) {
		OpenGL.glClientActiveTexture(33984 + i_147_);
		OpenGL.glEnableClientState(32888);
	    }
	    ((Class151_Sub2_Sub2) this).anInt11210 = i;
	} else if (((Class151_Sub2_Sub2) this).anInt11210 > i) {
	    for (int i_148_ = i;
		 i_148_ < ((Class151_Sub2_Sub2) this).anInt11210; i_148_++) {
		OpenGL.glClientActiveTexture(33984 + i_148_);
		OpenGL.glDisableClientState(32888);
	    }
	    ((Class151_Sub2_Sub2) this).anInt11210 = i;
	}
    }
    
    public long method2173(int i, int i_149_) {
	return method10217(i, i_149_, null, null);
    }
    
    Interface31 method8446(Class116 class116, int i, int i_150_, boolean bool,
			   byte[] is, int i_151_, int i_152_) {
	return new Class461_Sub2(this, class116, i, i_150_, bool, is, i_151_,
				 i_152_);
    }
    
    public void method2287() {
	for (int i = 0; i < 3; i++) {
	    if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this).aLongArray11212
				    [i]);
		((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
	    }
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    public long method2374(int i, int i_153_) {
	return method10217(i, i_153_, null, null);
    }
    
    public long method2177(int i, int i_154_) {
	return method10217(i, i_154_, null, null);
    }
    
    public void method2204(int i, int i_155_) {
	int i_156_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_155_ & 0xff0000) / 1.671168E7F,
				(float) (i_155_ & 0xff00) / 65280.0F,
				(float) (i_155_ & 0xff) / 255.0F,
				(float) (i_155_ >>> 24) / 255.0F);
	    i_156_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method8404(true);
	    i_156_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_156_ |= 0x400;
	OpenGL.glClear(i_156_);
    }
    
    public Class136 method2281(Class136 class136, Class136 class136_157_,
			       float f, Class136 class136_158_) {
	return f < 0.5F ? class136 : class136_157_;
    }
    
    public Class136 method2282(Class136 class136, Class136 class136_159_,
			       float f, Class136 class136_160_) {
	return f < 0.5F ? class136 : class136_159_;
    }
    
    public Class144_Sub2 method1986() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    void method8472() {
	if (aBool8972)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (aByte9056 & 0xff) / 255.0F);
	if (anInt9057 > 1) {
	    if (aByte9056 != 0)
		OpenGL.glEnable(32926);
	    else
		OpenGL.glDisable(32926);
	}
    }
    
    public Class144_Sub2 method2321() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    static final int method10229(Class345 class345) {
	if (class345 == Class345.aClass345_3672)
	    return 7681;
	if (class345 == Class345.aClass345_3669)
	    return 8448;
	if (class345 == Class345.aClass345_3673)
	    return 34165;
	if (class345 == Class345.aClass345_3670)
	    return 260;
	if (class345 == Class345.aClass345_3668)
	    return 34023;
	throw new IllegalArgumentException();
    }
    
    public Class144_Sub2 method2288() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    void method8393() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_161_ = 16384 + i;
	    OpenGL.glLightfv(i_161_, 4608, fs, 0);
	    OpenGL.glLightf(i_161_, 4615, 0.0F);
	    OpenGL.glLightf(i_161_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    public Interface18 method2112(int i, int i_162_, Class116 class116,
				  Class155 class155, int i_163_) {
	return new Class460(this, class116, class155, i, i_162_, i_163_);
    }
    
    public Interface16 method2326(int i, int i_164_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_164_);
    }
    
    void method2052() {
	super.method2233();
	if (((Class151_Sub2_Sub2) this).anOpenGL11221 != null) {
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.method1012();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.release();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221 = null;
	}
    }
    
    void method2329() {
	super.method2233();
	if (((Class151_Sub2_Sub2) this).anOpenGL11221 != null) {
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.method1012();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.release();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221 = null;
	}
    }
    
    void method2330() {
	super.method2233();
	if (((Class151_Sub2_Sub2) this).anOpenGL11221 != null) {
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.method1012();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221.release();
	    ((Class151_Sub2_Sub2) this).anOpenGL11221 = null;
	}
    }
    
    public void method2152(boolean bool) {
	/* empty */
    }
    
    Class144_Sub1 method2332(Canvas canvas, int i, int i_165_) {
	return new Class144_Sub1_Sub1_Sub2(this, canvas);
    }
    
    public boolean method8378() {
	return ((Class151_Sub2_Sub2) this).aBool11206;
    }
    
    public void method2032(boolean bool) {
	/* empty */
    }
    
    public boolean method2335() {
	if (((Class151_Sub2_Sub2) this).aBool11196
	    && (((Class151_Sub2_Sub2) this).aLongArray11212
		[((Class151_Sub2_Sub2) this).anInt11214]) != 0L)
	    return false;
	return true;
    }
    
    public void method2336(int i, int i_166_, int[] is, int[] is_167_) {
	method10217(i, i_166_, is, is_167_);
    }
    
    public long method2175(int i, int i_168_) {
	return method10217(i, i_168_, null, null);
    }
    
    public void method2018(int i, int i_169_, int i_170_) {
	method2071();
	if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 == null)
	    method10228(i_169_, i_170_);
	if (((Class151_Sub2_Sub2) this).aClass114_11195 == null)
	    ((Class151_Sub2_Sub2) this).aClass114_11195
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), false);
	else
	    ((Class151_Sub2_Sub2) this).aClass114_11195.method1499
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0);
	method2014(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   (byte) -55);
	method2176(1, -16777216);
	((Class151_Sub2_Sub2) this).aClass114_11195.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051,
			       (((Class151_Sub2_Sub2) this).anIntArray11217
				[((Class151_Sub2_Sub2) this).anInt11214]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   -2131831478);
	((Class151_Sub2_Sub2) this).aLongArray11212
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub2_Sub2) this).anIntArray11219
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = i;
	if (++((Class151_Sub2_Sub2) this).anInt11214 >= 3)
	    ((Class151_Sub2_Sub2) this).anInt11214 = 0;
	method2134();
    }
    
    public void method2339(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    public void method2016(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    public void method2341(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    public Class144_Sub2 method2322() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    Class144_Sub1 method2331(Canvas canvas, int i, int i_171_) {
	return new Class144_Sub1_Sub1_Sub2(this, canvas);
    }
    
    public void method2344() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	    if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 != null) {
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method80();
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, (((Class151_Sub2_Sub2) this)
					  .anIntArray11217), 0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub2_Sub2) this).anIntArray11217[i] = 0;
		if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this)
					.aLongArray11212[i]);
		    ((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11215 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    public void method2345() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	    if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 != null) {
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method80();
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, (((Class151_Sub2_Sub2) this)
					  .anIntArray11217), 0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub2_Sub2) this).anIntArray11217[i] = 0;
		if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this)
					.aLongArray11212[i]);
		    ((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11215 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    static final int method10230(Class338 class338) {
	if (class338 == Class338.aClass338_3621)
	    return 5890;
	if (class338 == Class338.aClass338_3620)
	    return 34167;
	if (class338 == Class338.aClass338_3622)
	    return 34168;
	if (class338 == Class338.aClass338_3623)
	    return 34166;
	throw new IllegalArgumentException();
    }
    
    public void method2357(int i, int i_172_, int[] is, int[] is_173_) {
	method10217(i, i_172_, is, is_173_);
    }
    
    public Interface16 method2364(int i, int i_174_, int i_175_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_174_, i_175_);
    }
    
    public boolean method8383() {
	return ((Class151_Sub2_Sub2) this).aBool11206;
    }
    
    public boolean method8384(boolean bool) {
	return true;
    }
    
    public Class136 method2283(Class136 class136, Class136 class136_176_,
			       float f, Class136 class136_177_) {
	return f < 0.5F ? class136 : class136_176_;
    }
    
    static int method10231(Class116 class116, Class155 class155) {
	if (class155 == Class155.aClass155_1894) {
	    switch (class116.anInt1447 * 770769135) {
	    case 6:
		return 33777;
	    default:
		throw new IllegalArgumentException();
	    case 0:
		return 33779;
	    case 9:
		return 6408;
	    case 7:
		return 6407;
	    case 2:
		return 6410;
	    case 4:
		return 6409;
	    case 3:
		return 6406;
	    }
	}
	if (class155 == Class155.aClass155_1885) {
	    switch (class116.anInt1447 * 770769135) {
	    case 5:
		return 33189;
	    case 9:
		return 32859;
	    case 7:
		return 32852;
	    case 4:
		return 32834;
	    default:
		throw new IllegalArgumentException();
	    case 3:
		return 32830;
	    case 2:
		return 36219;
	    }
	}
	if (class155 == Class155.aClass155_1890) {
	    switch (class116.anInt1447 * 770769135) {
	    case 5:
		return 33190;
	    default:
		throw new IllegalArgumentException();
	    }
	}
	if (class155 == Class155.aClass155_1891) {
	    switch (class116.anInt1447 * 770769135) {
	    default:
		throw new IllegalArgumentException();
	    case 5:
		return 33191;
	    }
	}
	if (class155 == Class155.aClass155_1892) {
	    switch (class116.anInt1447 * 770769135) {
	    case 3:
		return 34844;
	    case 9:
		return 34842;
	    case 7:
		return 34843;
	    case 4:
		return 34846;
	    default:
		throw new IllegalArgumentException();
	    case 2:
		return 34847;
	    }
	}
	if (class155 == Class155.aClass155_1893) {
	    switch (class116.anInt1447 * 770769135) {
	    case 7:
		return 34837;
	    case 2:
		return 34841;
	    default:
		throw new IllegalArgumentException();
	    case 4:
		return 34840;
	    case 3:
		return 34838;
	    case 9:
		return 34836;
	    }
	}
	throw new IllegalArgumentException();
    }
    
    public Interface18 method2324(int i, int i_178_, Class116 class116,
				  Class155 class155, int i_179_) {
	return new Class460(this, class116, class155, i, i_178_, i_179_);
    }
    
    boolean method8298(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    public void method8416(Class403 class403, Class403 class403_180_,
			   Class403 class403_181_) {
	OpenGL.glMatrixMode(5888);
	aClass403_9081.method4881(class403, class403_180_);
	OpenGL.glLoadMatrixf(aClass403_9081.aFloatArray4592, 0);
	OpenGL.glMatrixMode(5889);
	OpenGL.glLoadMatrixf(class403_181_.aFloatArray4592, 0);
    }
    
    void method8403() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_182_ = 16384 + i;
	    OpenGL.glLightfv(i_182_, 4608, fs, 0);
	    OpenGL.glLightf(i_182_, 4615, 0.0F);
	    OpenGL.glLightf(i_182_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    void method8277() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_183_ = 16384 + i;
	    OpenGL.glLightfv(i_183_, 4608, fs, 0);
	    OpenGL.glLightf(i_183_, 4615, 0.0F);
	    OpenGL.glLightf(i_183_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    Interface37 method8309(int i, boolean bool, int[][] is) {
	return new Class461_Sub3(this, i, bool, is);
    }
    
    void method8394() {
	OpenGL.glDepthFunc(515);
	OpenGL.glEnable(2884);
	OpenGL.glCullFace(1029);
	OpenGL.glClearDepth(1.0F);
	OpenGL.glAlphaFunc(516, 0.0F);
	OpenGL.glPolygonMode(1028, 6914);
	if (aBool9068) {
	    method8340(anInt9057 > 1);
	    OpenGL.glDisable(32926);
	}
	for (int i = anInt9063 - 1; i >= 0; i--) {
	    OpenGL.glActiveTexture(33984 + i);
	    OpenGL.glTexEnvi(8960, 8704, 34160);
	    OpenGL.glTexEnvi(8960, 34161, 8448);
	    OpenGL.glTexEnvi(8960, 34178, 34166);
	    OpenGL.glTexEnvi(8960, 34162, 8448);
	    OpenGL.glTexEnvi(8960, 34186, 34166);
	}
	OpenGL.glTexEnvi(8960, 34186, 34168);
	OpenGL.glShadeModel(7425);
	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_184_ = 16384 + i;
	    OpenGL.glLightfv(i_184_, 4608, fs, 0);
	    OpenGL.glLightf(i_184_, 4615, 0.0F);
	    OpenGL.glLightf(i_184_, 4616, 0.0F);
	}
	OpenGL.glFogf(2914, 0.95F);
	OpenGL.glFogi(2917, 9729);
	OpenGL.glHint(3156, 4353);
	((Class151_Sub2_Sub2) this).anOpenGL11221.setSwapInterval(0);
	super.method8251();
    }
    
    public void method2176(int i, int i_185_) {
	int i_186_ = 0;
	if ((i & 0x1) != 0) {
	    OpenGL.glClearColor((float) (i_185_ & 0xff0000) / 1.671168E7F,
				(float) (i_185_ & 0xff00) / 65280.0F,
				(float) (i_185_ & 0xff) / 255.0F,
				(float) (i_185_ >>> 24) / 255.0F);
	    i_186_ = 16384;
	}
	if ((i & 0x2) != 0) {
	    method8404(true);
	    i_186_ |= 0x100;
	}
	if ((i & 0x4) != 0)
	    i_186_ |= 0x400;
	OpenGL.glClear(i_186_);
    }
    
    public boolean method8366() {
	return ((Class151_Sub2_Sub2) this).aBool11204;
    }
    
    void method8408() {
	if (aClass144_1857 != null)
	    OpenGL.glViewport(anInt8984 + anInt8981,
			      (anInt8995 + aClass144_1857.method1944()
			       - anInt9002 - anInt8983),
			      anInt9062, anInt8983);
	OpenGL.glDepthRange(aFloat8966, aFloat9004);
    }
    
    void method8409() {
	if (aClass144_1857 != null)
	    OpenGL.glViewport(anInt8984 + anInt8981,
			      (anInt8995 + aClass144_1857.method1944()
			       - anInt9002 - anInt8983),
			      anInt9062, anInt8983);
	OpenGL.glDepthRange(aFloat8966, aFloat9004);
    }
    
    public final void method8503(Class342 class342, int i, int i_187_,
				 int i_188_, int i_189_) {
	int i_190_;
	int i_191_;
	if (class342 == Class342.aClass342_3643) {
	    i_190_ = 1;
	    i_191_ = i_189_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_190_ = 3;
	    i_191_ = i_189_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_190_ = 4;
	    i_191_ = i_189_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_190_ = 6;
	    i_191_ = i_189_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_190_ = 5;
	    i_191_ = i_189_ + 2;
	} else {
	    i_190_ = 0;
	    i_191_ = i_189_;
	}
	Class155 class155
	    = ((Class151_Sub2_Sub2) this).aClass456_Sub2_11194.method278();
	OpenGL.glDrawElements(i_190_, i_191_, method10224(class155),
			      (((Class151_Sub2_Sub2) this)
				   .aClass456_Sub2_11194.method5650()
			       + (long) (i_188_ * (class155.anInt1895
						   * -822141047))));
    }
    
    void method8413() {
	if (aClass144_1857 != null) {
	    int i = anInt8984 + anInt8974;
	    int i_192_ = anInt8995 + aClass144_1857.method1944() - anInt8928;
	    int i_193_ = anInt8975 - anInt8974;
	    int i_194_ = anInt8928 - anInt8943;
	    if (i_193_ < 0)
		i_193_ = 0;
	    if (i_194_ < 0)
		i_194_ = 0;
	    OpenGL.glScissor(i, i_192_, i_193_, i_194_);
	}
    }
    
    void method8402() {
	if (aClass144_1857 != null) {
	    int i = anInt8984 + anInt8974;
	    int i_195_ = anInt8995 + aClass144_1857.method1944() - anInt8928;
	    int i_196_ = anInt8975 - anInt8974;
	    int i_197_ = anInt8928 - anInt8943;
	    if (i_196_ < 0)
		i_196_ = 0;
	    if (i_197_ < 0)
		i_197_ = 0;
	    OpenGL.glScissor(i, i_195_, i_196_, i_197_);
	}
    }
    
    void method8414() {
	if (aBool9087)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    void method8308() {
	if (aBool9087)
	    OpenGL.glEnable(3089);
	else
	    OpenGL.glDisable(3089);
    }
    
    void method8423() {
	if (aBool8924)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method8420() {
	if (aBool8924)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method8469() {
	OpenGL.glTexEnvi(8960, 34161,
			 method10229(aClass345Array9014[anInt9010]));
    }
    
    void method8290() {
	if (aBool8924)
	    OpenGL.glEnable(2929);
	else
	    OpenGL.glDisable(2929);
    }
    
    void method8376() {
	OpenGL.glDepthMask(aBool8973 && aBool9013);
    }
    
    void method8427() {
	if (aBool8987 && !aBool9030)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    void method8428() {
	if (aBool8987 && !aBool9030)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    public Interface16 method2362(int i, int i_198_, int i_199_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_198_, i_199_);
    }
    
    void method8430() {
	if (aBool8987 && !aBool9030)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    void method8239() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = aFloat9000 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = aFloat9000 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = aFloat9000 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightModelfv(2899,
			      ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    public void method2220() {
	if (aClass144_1857 != null) {
	    int i = aClass144_1857.method1943();
	    int i_200_ = aClass144_1857.method1944();
	    if (i > 0 || i_200_ > 0) {
		int i_201_ = anInt8981;
		int i_202_ = anInt9002;
		int i_203_ = anInt9062;
		int i_204_ = anInt8983;
		method2221();
		int i_205_ = anInt8974;
		int i_206_ = anInt8975;
		int i_207_ = anInt8943;
		int i_208_ = anInt8928;
		method2036();
		OpenGL.glReadBuffer(1028);
		OpenGL.glDrawBuffer(1029);
		method8281();
		method8338(false);
		method8292(false);
		method8288(false);
		method8404(false);
		method8314(null);
		method8316(1);
		method8348(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.glDisable(3553);
		OpenGL.glCopyPixels(0, 0, i, i_200_, 6144);
		OpenGL.glEnable(3553);
		OpenGL.glFlush();
		OpenGL.glReadBuffer(1029);
		OpenGL.glDrawBuffer(1029);
		method2381(i_205_, i_207_, i_206_, i_208_);
		method2034(i_201_, i_202_, i_203_, i_204_);
	    }
	}
    }
    
    void method8432() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = aFloat9001 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = aFloat9001 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = aFloat9001 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = -aFloat8986 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = -aFloat8986 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = -aFloat8986 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    public int method2168() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    if ((((Class151_Sub2_Sub2) this).aLongArray11212
		 [((Class151_Sub2_Sub2) this).anInt11220])
		== 0L)
		return -1;
	    int i = OpenGL.glClientWaitSync((((Class151_Sub2_Sub2) this)
					     .aLongArray11212
					     [(((Class151_Sub2_Sub2) this)
					       .anInt11220)]),
					    0, 0);
	    if (i == 37149) {
		method2284();
		return -1;
	    }
	    return (i != 37147
		    ? (((Class151_Sub2_Sub2) this).anIntArray11219
		       [((Class151_Sub2_Sub2) this).anInt11220])
		    : -1);
	}
	return -1;
    }
    
    void method8352() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray8992, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9005, 0);
    }
    
    void method8410() {
	if (aClass144_1857 != null) {
	    int i = anInt8984 + anInt8974;
	    int i_209_ = anInt8995 + aClass144_1857.method1944() - anInt8928;
	    int i_210_ = anInt8975 - anInt8974;
	    int i_211_ = anInt8928 - anInt8943;
	    if (i_210_ < 0)
		i_210_ = 0;
	    if (i_211_ < 0)
		i_211_ = 0;
	    OpenGL.glScissor(i, i_209_, i_210_, i_211_);
	}
    }
    
    public float method8401() {
	return 0.0F;
    }
    
    void method8436() {
	if (aBool8990) {
	    OpenGL.glEnable(16384);
	    OpenGL.glEnable(16385);
	} else {
	    OpenGL.glDisable(16384);
	    OpenGL.glDisable(16385);
	}
    }
    
    void method8425() {
	OpenGL.glDepthMask(aBool8973 && aBool9013);
    }
    
    void method8354() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	int i;
	for (i = 0; i < anInt9008; i++) {
	    Class487_Sub16 class487_sub16 = aClass487_Sub16Array9003[i];
	    int i_212_ = class487_sub16.method9179(1081218066);
	    int i_213_ = 16386 + i;
	    float f = class487_sub16.method9174((byte) 50) / 255.0F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) class487_sub16.method9196(1768453956);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) class487_sub16.method9176(-1701337331);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) class487_sub16.method9175(-64375987);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_213_, 4611,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) (i_212_ >> 16 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) (i_212_ >> 8 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) (i_212_ & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_213_, 4609,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    OpenGL.glLightf(i_213_, 4617,
			    (1.0F
			     / (float) (class487_sub16.method9194((byte) 117)
					* class487_sub16
					      .method9194((byte) 44))));
	    OpenGL.glEnable(i_213_);
	}
	for (/**/; i < anInt9034; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    void method8340(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    boolean method8386(Class116 class116, Class155 class155) {
	return true;
    }
    
    public Class127 method2120() {
	int i = -1;
	if (((Class151_Sub2_Sub2) this).aString11198.indexOf("nvidia") != -1)
	    i = 4318;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("intel")
		 != -1)
	    i = 32902;
	else if (((Class151_Sub2_Sub2) this).aString11198.indexOf("ati") != -1)
	    i = 4098;
	return new Class127(i, method8241() ? "OpenGL FF" : "OpenGL",
			    ((Class151_Sub2_Sub2) this).anInt11200,
			    ((Class151_Sub2_Sub2) this).aString11192, 0L,
			    method8241());
    }
    
    void method2122(int i, int i_214_) throws Exception_Sub7 {
	aClass144_Sub1_1853.method8234();
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(-1742156711);
    }
    
    boolean method8293(Class116 class116, Class155 class155) {
	return true;
    }
    
    boolean method8443(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    boolean method8444(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    Interface31 method8433(Class116 class116, Class155 class155, int i,
			   int i_215_) {
	return method8311(class116, class155, i, i_215_);
    }
    
    void method8468() {
	OpenGL.glTexEnvi(8960, 34161,
			 method10229(aClass345Array9014[anInt9010]));
    }
    
    void method8486(Interface39 interface39) {
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194
	    = (Class456_Sub2) interface39;
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194.method5653();
    }
    
    Interface31 method8345(Class116 class116, int i, int i_216_, boolean bool,
			   byte[] is, int i_217_, int i_218_) {
	return new Class461_Sub2(this, class116, i, i_216_, bool, is, i_217_,
				 i_218_);
    }
    
    Interface31 method8447(Class116 class116, int i, int i_219_, boolean bool,
			   float[] fs, int i_220_, int i_221_) {
	return new Class461_Sub2(this, class116, i, i_219_, bool, fs, i_220_,
				 i_221_);
    }
    
    Interface31 method8448(Class116 class116, int i, int i_222_, boolean bool,
			   float[] fs, int i_223_, int i_224_) {
	return new Class461_Sub2(this, class116, i, i_222_, bool, fs, i_223_,
				 i_224_);
    }
    
    void method8429() {
	if (aBool8987 && !aBool9030)
	    OpenGL.glEnable(2896);
	else
	    OpenGL.glDisable(2896);
    }
    
    Interface31 method8450(int i, int i_225_, boolean bool, int[] is,
			   int i_226_, int i_227_) {
	return new Class461_Sub2(this, i, i_225_, bool, is, i_226_, i_227_);
    }
    
    Interface31 method8307(Class116 class116, Class155 class155, int i,
			   int i_228_) {
	return method8311(class116, class155, i, i_228_);
    }
    
    public void method2343() {
	if (((Class151_Sub2_Sub2) this).aBool11196) {
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	    if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 != null) {
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216.method80();
		((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    }
	    OpenGL.glDeleteBuffersARB(3, (((Class151_Sub2_Sub2) this)
					  .anIntArray11217), 0);
	    for (int i = 0; i < 3; i++) {
		((Class151_Sub2_Sub2) this).anIntArray11217[i] = 0;
		if (((Class151_Sub2_Sub2) this).aLongArray11212[i] != 0L) {
		    OpenGL.glDeleteSync(((Class151_Sub2_Sub2) this)
					.aLongArray11212[i]);
		    ((Class151_Sub2_Sub2) this).aLongArray11212[i] = 0L;
		}
	    }
	} else {
	    ((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11215 = null;
	    ((Class151_Sub2_Sub2) this).aClass114_11195 = null;
	}
	((Class151_Sub2_Sub2) this).anInt11214 = 0;
	((Class151_Sub2_Sub2) this).anInt11220 = 0;
    }
    
    Interface37 method8453(int i, boolean bool, int[][] is) {
	return new Class461_Sub3(this, i, bool, is);
    }
    
    Interface29 method8454(Class116 class116, int i, int i_229_, int i_230_,
			   boolean bool, byte[] is) {
	return new Class461_Sub1(this, class116, i, i_229_, i_230_, bool, is);
    }
    
    Interface29 method8455(Class116 class116, int i, int i_231_, int i_232_,
			   boolean bool, byte[] is) {
	return new Class461_Sub1(this, class116, i, i_231_, i_232_, bool, is);
    }
    
    Interface34 method8456(Class116 class116, Class155 class155, int i,
			   int i_233_) {
	return new Class461_Sub2(this, class116, class155, i, i_233_);
    }
    
    void method8431() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = aFloat9001 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = aFloat9001 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = aFloat9001 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16384, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = -aFloat8986 * aFloat8997;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = -aFloat8986 * aFloat8998;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = -aFloat8986 * aFloat8999;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	OpenGL.glLightfv(16385, 4609,
			 ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    public void method8417() {
	int i = ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010];
	if (i != 0) {
	    ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010] = 0;
	    OpenGL.glBindTexture(i, 0);
	    OpenGL.glDisable(i);
	}
    }
    
    public void method8460() {
	int i = ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010];
	if (i != 0) {
	    ((Class151_Sub2_Sub2) this).anIntArray11185[anInt9010] = 0;
	    OpenGL.glBindTexture(i, 0);
	    OpenGL.glDisable(i);
	}
    }
    
    final void method8373(int i, Class338 class338, boolean bool,
			  boolean bool_234_) {
	OpenGL.glTexEnvi(8960, 34176 + i, method10230(class338));
	if (bool)
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_234_ ? 771 : 770);
	else
	    OpenGL.glTexEnvi(8960, 34192 + i, bool_234_ ? 769 : 768);
    }
    
    final void method8465(int i, Class338 class338, boolean bool) {
	OpenGL.glTexEnvi(8960, 34184 + i, method10230(class338));
	OpenGL.glTexEnvi(8960, 34200 + i, bool ? 771 : 770);
    }
    
    void method8466() {
	OpenGL.glMatrixMode(5890);
	if (aClass340Array9031[anInt9010] != Class340.aClass340_3636)
	    OpenGL.glLoadMatrixf
		(aClass403Array9033[anInt9010]
		     .method4888(((Class151_Sub2_Sub2) this).aFloatArray11213),
		 0);
	else
	    OpenGL.glLoadIdentity();
	OpenGL.glMatrixMode(5888);
    }
    
    final void method8258() {
	((Class151_Sub2_Sub2) this).aFloatArray11211[0]
	    = (float) (anInt9016 & 0xff0000) / 1.671168E7F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[1]
	    = (float) (anInt9016 & 0xff00) / 65280.0F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[2]
	    = (float) (anInt9016 & 0xff) / 255.0F;
	((Class151_Sub2_Sub2) this).aFloatArray11211[3]
	    = (float) (anInt9016 >>> 24) / 255.0F;
	OpenGL.glTexEnvfv(8960, 8705,
			  ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
    }
    
    void method8487() {
	OpenGL.glActiveTexture(33984 + anInt9010);
    }
    
    public Interface16 method2363(int i, int i_235_, int i_236_) {
	return new Class460(this, Class116.aClass116_1452,
			    Class155.aClass155_1890, i, i_235_, i_236_);
    }
    
    void method8470() {
	OpenGL.glTexEnvi(8960, 34162,
			 method10229(aClass345Array8917[anInt9010]));
    }
    
    void method8439() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	int i;
	for (i = 0; i < anInt9008; i++) {
	    Class487_Sub16 class487_sub16 = aClass487_Sub16Array9003[i];
	    int i_237_ = class487_sub16.method9179(1654375489);
	    int i_238_ = 16386 + i;
	    float f = class487_sub16.method9174((byte) 100) / 255.0F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) class487_sub16.method9196(1214634900);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) class487_sub16.method9176(-25315938);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) class487_sub16.method9175(-64375987);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_238_, 4611,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) (i_237_ >> 16 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) (i_237_ >> 8 & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) (i_237_ & 0xff) * f;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[3] = 1.0F;
	    OpenGL.glLightfv(i_238_, 4609,
			     ((Class151_Sub2_Sub2) this).aFloatArray11211, 0);
	    OpenGL.glLightf(i_238_, 4617,
			    (1.0F
			     / (float) (class487_sub16.method9194((byte) 46)
					* class487_sub16
					      .method9194((byte) 85))));
	    OpenGL.glEnable(i_238_);
	}
	for (/**/; i < anInt9034; i++)
	    OpenGL.glDisable(16386 + i);
    }
    
    public long method2405(int i, int i_239_) {
	return method10217(i, i_239_, null, null);
    }
    
    void method8473() {
	if (aBool8972)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (aByte9056 & 0xff) / 255.0F);
	if (anInt9057 > 1) {
	    if (aByte9056 != 0)
		OpenGL.glEnable(32926);
	    else
		OpenGL.glDisable(32926);
	}
    }
    
    void method8318() {
	if (aBool8972)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (aByte9056 & 0xff) / 255.0F);
	if (anInt9057 > 1) {
	    if (aByte9056 != 0)
		OpenGL.glEnable(32926);
	    else
		OpenGL.glDisable(32926);
	}
    }
    
    void method8475() {
	if (aBool8972)
	    OpenGL.glEnable(3008);
	else
	    OpenGL.glDisable(3008);
	OpenGL.glAlphaFunc(516, (float) (aByte9056 & 0xff) / 255.0F);
	if (anInt9057 > 1) {
	    if (aByte9056 != 0)
		OpenGL.glEnable(32926);
	    else
		OpenGL.glDisable(32926);
	}
    }
    
    void method8269() {
	if (aBool9072) {
	    int i = 0;
	    int i_240_ = 0;
	    if (anInt8937 == 0) {
		i = 0;
		i_240_ = 0;
	    } else if (anInt8937 == 1) {
		i = 1;
		i_240_ = 0;
	    } else if (anInt8937 == 2) {
		i = 1;
		i_240_ = 1;
	    } else if (anInt8937 == 3) {
		i = 0;
		i_240_ = 1;
	    }
	    if (aClass337_9053 == Class337.aClass337_3618)
		OpenGL.glBlendFuncSeparate(770, 771, i, i_240_);
	    else if (aClass337_9053 == Class337.aClass337_3616)
		OpenGL.glBlendFuncSeparate(1, 1, i, i_240_);
	    else if (aClass337_9053 == Class337.aClass337_3617)
		OpenGL.glBlendFuncSeparate(774, 1, i, i_240_);
	    else if (aClass337_9053 == Class337.aClass337_3615)
		OpenGL.glBlendFuncSeparate(1, 0, i, i_240_);
	} else if (aClass337_9053 == Class337.aClass337_3618) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(770, 771);
	} else if (aClass337_9053 == Class337.aClass337_3616) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(1, 1);
	} else if (aClass337_9053 == Class337.aClass337_3617) {
	    OpenGL.glEnable(3042);
	    OpenGL.glBlendFunc(774, 1);
	} else
	    OpenGL.glDisable(3042);
    }
    
    void method8374() {
	if (aBool9054)
	    OpenGL.glEnable(3042);
	else
	    OpenGL.glDisable(3042);
    }
    
    void method8477() {
	aFloat9050 = aFloat8971 - (float) anInt9048;
	aFloat9049 = aFloat9050 - (float) anInt9047;
	if (aFloat9049 < aFloat8988)
	    aFloat9049 = aFloat8988;
	if (aBool8921) {
	    OpenGL.glFogf(2915, aFloat9049);
	    OpenGL.glFogf(2916, aFloat9050);
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[0]
		= (float) (anInt9046 & 0xff0000) / 1.671168E7F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[1]
		= (float) (anInt9046 & 0xff00) / 65280.0F;
	    ((Class151_Sub2_Sub2) this).aFloatArray11211[2]
		= (float) (anInt9046 & 0xff) / 255.0F;
	    OpenGL.glFogfv(2918, ((Class151_Sub2_Sub2) this).aFloatArray11211,
			   0);
	}
    }
    
    void method8478() {
	if (aBool9080 && aBool9044 && anInt9047 >= 0)
	    OpenGL.glEnable(2912);
	else
	    OpenGL.glDisable(2912);
    }
    
    public void method2118(boolean bool) {
	/* empty */
    }
    
    public boolean method2254() {
	return false;
    }
    
    Class325 method8364(Class311[] class311s) {
	return new Class325_Sub1(class311s);
    }
    
    Class325 method8481(Class311[] class311s) {
	return new Class325_Sub1(class311s);
    }
    
    Class325 method8482(Class311[] class311s) {
	return new Class325_Sub1(class311s);
    }
    
    Interface31 method8406(Class116 class116, int i, int i_241_, boolean bool,
			   byte[] is, int i_242_, int i_243_) {
	return new Class461_Sub2(this, class116, i, i_241_, bool, is, i_242_,
				 i_243_);
    }
    
    public void method2022(int i, int i_244_, int i_245_) {
	method2071();
	if (((Class151_Sub2_Sub2) this).aClass144_Sub2_11216 == null)
	    method10228(i_244_, i_245_);
	if (((Class151_Sub2_Sub2) this).aClass114_11195 == null)
	    ((Class151_Sub2_Sub2) this).aClass114_11195
		= method2154(0, 0, aClass144_1857.method1943(),
			     aClass144_1857.method1944(), false);
	else
	    ((Class151_Sub2_Sub2) this).aClass114_11195.method1499
		(0, 0, aClass144_1857.method1943(),
		 aClass144_1857.method1944(), 0, 0);
	method2014(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   (byte) 59);
	method2176(1, -16777216);
	((Class151_Sub2_Sub2) this).aClass114_11195.method1501
	    (anInt1829 * 1882172349, anInt1859 * 503204773,
	     anInt1830 * -1250842191, anInt1861 * -750000687);
	OpenGL.glBindBufferARB(35051,
			       (((Class151_Sub2_Sub2) this).anIntArray11217
				[((Class151_Sub2_Sub2) this).anInt11214]));
	OpenGL.glReadPixelsub(0, 0, anInt1856 * 631397597,
			      anInt1831 * 1422745689, 32993, 5121, null, 0);
	OpenGL.glBindBufferARB(35051, 0);
	method2015(((Class151_Sub2_Sub2) this).aClass144_Sub2_11216,
		   -1665995803);
	((Class151_Sub2_Sub2) this).aLongArray11212
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = OpenGL.glFenceSync(37143, 0);
	((Class151_Sub2_Sub2) this).anIntArray11219
	    [((Class151_Sub2_Sub2) this).anInt11214]
	    = i;
	if (++((Class151_Sub2_Sub2) this).anInt11214 >= 3)
	    ((Class151_Sub2_Sub2) this).anInt11214 = 0;
	method2134();
    }
    
    Interface34 method8457(Class116 class116, Class155 class155, int i,
			   int i_246_) {
	return new Class461_Sub2(this, class116, class155, i, i_246_);
    }
    
    void method8259() {
	OpenGL.glActiveTexture(33984 + anInt9010);
    }
    
    void method2082(int i, int i_247_) throws Exception_Sub7 {
	aClass144_Sub1_1853.method8234();
	if (anInterface19_1837 != null)
	    anInterface19_1837.method86(172481590);
    }
    
    void method8381(Interface39 interface39) {
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194
	    = (Class456_Sub2) interface39;
	((Class151_Sub2_Sub2) this).aClass456_Sub2_11194.method5653();
    }
    
    public final void method8488(Class342 class342, int i, int i_248_) {
	int i_249_;
	int i_250_;
	if (class342 == Class342.aClass342_3643) {
	    i_249_ = 1;
	    i_250_ = i_248_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_249_ = 3;
	    i_250_ = i_248_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_249_ = 4;
	    i_250_ = i_248_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_249_ = 6;
	    i_250_ = i_248_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_249_ = 5;
	    i_250_ = i_248_ + 2;
	} else {
	    i_249_ = 0;
	    i_250_ = i_248_;
	}
	OpenGL.glDrawArrays(i_249_, i, i_250_);
    }
    
    void method8287() {
	OpenGL.glTexEnvi(8960, 34161,
			 method10229(aClass345Array9014[anInt9010]));
    }
    
    final void method8490(Interface39 interface39, Class342 class342, int i,
			  int i_251_, int i_252_, int i_253_) {
	int i_254_;
	int i_255_;
	if (class342 == Class342.aClass342_3643) {
	    i_254_ = 1;
	    i_255_ = i_253_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_254_ = 3;
	    i_255_ = i_253_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_254_ = 4;
	    i_255_ = i_253_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_254_ = 6;
	    i_255_ = i_253_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_254_ = 5;
	    i_255_ = i_253_ + 2;
	} else {
	    i_254_ = 0;
	    i_255_ = i_253_;
	}
	Class155 class155 = interface39.method278();
	Class456_Sub2 class456_sub2 = (Class456_Sub2) interface39;
	class456_sub2.method5653();
	OpenGL.glDrawElements(i_254_, i_255_, method10224(class155),
			      (class456_sub2.method5650()
			       + (long) (i_252_ * (class155.anInt1895
						   * -822141047))));
    }
    
    public boolean method2236() {
	if (((Class151_Sub2_Sub2) this).aBool11196
	    && (((Class151_Sub2_Sub2) this).aLongArray11212
		[((Class151_Sub2_Sub2) this).anInt11214]) != 0L)
	    return false;
	return true;
    }
    
    public void method2338(long l) {
	if (l != 0L) {
	    if (OpenGL.glUnmapBufferARB(35051)) {
		/* empty */
	    }
	    OpenGL.glBindBufferARB(35051, 0);
	}
    }
    
    Class325 method8342(Class311[] class311s) {
	return new Class325_Sub1(class311s);
    }
    
    final void method8492(Interface39 interface39, Class342 class342, int i,
			  int i_256_, int i_257_, int i_258_) {
	int i_259_;
	int i_260_;
	if (class342 == Class342.aClass342_3643) {
	    i_259_ = 1;
	    i_260_ = i_258_ * 2;
	} else if (class342 == Class342.aClass342_3640) {
	    i_259_ = 3;
	    i_260_ = i_258_ + 1;
	} else if (class342 == Class342.aClass342_3644) {
	    i_259_ = 4;
	    i_260_ = i_258_ * 3;
	} else if (class342 == Class342.aClass342_3641) {
	    i_259_ = 6;
	    i_260_ = i_258_ + 2;
	} else if (class342 == Class342.aClass342_3645) {
	    i_259_ = 5;
	    i_260_ = i_258_ + 2;
	} else {
	    i_259_ = 0;
	    i_260_ = i_258_;
	}
	Class155 class155 = interface39.method278();
	Class456_Sub2 class456_sub2 = (Class456_Sub2) interface39;
	class456_sub2.method5653();
	OpenGL.glDrawElements(i_259_, i_260_, method10224(class155),
			      (class456_sub2.method5650()
			       + (long) (i_257_ * (class155.anInt1895
						   * -822141047))));
    }
    
    void method8494(int i) {
	if (!((Class151_Sub2_Sub2) this).aBool11203)
	    OpenGL.glPolygonMode(1028, (i & 0x2) != 0 ? 6913 : 6914);
    }
    
    public boolean method8495() {
	return ((Class151_Sub2_Sub2) this).aBool11204;
    }
    
    public boolean method8497() {
	return ((Class151_Sub2_Sub2) this).aBool11204;
    }
    
    public void method8498(Class403 class403) {
	float[] fs = class403.aFloatArray4592;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    public void method8238(Class403 class403) {
	float[] fs = class403.aFloatArray4592;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    public void method8317(int i, Interface33 interface33) {
	((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i]
	    = (Class456_Sub1) interface33;
    }
    
    public final synchronized void method2125(int i) {
	try {
	    method10226();
	} catch (Exception exception) {
	    return;
	}
	int i_261_ = 0;
	i &= 0x7fffffff;
	while (!((Class151_Sub2_Sub2) this).aClass656_11181
		    .method7825(-423942416)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11181.method7792(359554439);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_261_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8932 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_261_ == 1000) {
		OpenGL.glDeleteBuffersARB(i_261_, (((Class151_Sub2_Sub2) this)
						   .anIntArray11180), 0);
		i_261_ = 0;
	    }
	}
	if (i_261_ > 0) {
	    OpenGL.glDeleteBuffersARB(i_261_, (((Class151_Sub2_Sub2) this)
					       .anIntArray11180), 0);
	    i_261_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11182
		    .method7825(961231242)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11182.method7792(1894096438);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_261_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt9055 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_261_ == 1000) {
		OpenGL.glDeleteTextures(i_261_, (((Class151_Sub2_Sub2) this)
						 .anIntArray11180), 0);
		i_261_ = 0;
	    }
	}
	if (i_261_ > 0) {
	    OpenGL.glDeleteTextures(i_261_, (((Class151_Sub2_Sub2) this)
					     .anIntArray11180), 0);
	    i_261_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11183
		    .method7825(759702746)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11183.method7792(-363659429);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_261_++]
		= class487_sub28.anInt10251 * -1323364665;
	    if (i_261_ == 1000) {
		OpenGL.glDeleteFramebuffersEXT(i_261_,
					       (((Class151_Sub2_Sub2) this)
						.anIntArray11180),
					       0);
		i_261_ = 0;
	    }
	}
	if (i_261_ > 0) {
	    OpenGL.glDeleteFramebuffersEXT(i_261_, (((Class151_Sub2_Sub2) this)
						    .anIntArray11180), 0);
	    i_261_ = 0;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11184
		    .method7825(-808192219)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11184
				       .method7792(-1814068044);
	    ((Class151_Sub2_Sub2) this).anIntArray11180[i_261_++]
		= (int) (class487_sub28.aLong6694 * -2329590788501447949L);
	    anInt8933 -= class487_sub28.anInt10251 * -1323364665;
	    if (i_261_ == 1000) {
		OpenGL.glDeleteRenderbuffersEXT(i_261_,
						(((Class151_Sub2_Sub2) this)
						 .anIntArray11180),
						0);
		i_261_ = 0;
	    }
	}
	if (i_261_ > 0) {
	    OpenGL.glDeleteRenderbuffersEXT(i_261_,
					    (((Class151_Sub2_Sub2) this)
					     .anIntArray11180),
					    0);
	    boolean bool = false;
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(1840089812)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(547481889);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11218
		    .method7825(-296284829)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11218
				    .method7792(1045838965);
	    OpenGL.glDeleteProgram((int) (class487.aLong6694
					  * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11186
		    .method7825(2135415175)) {
	    Class487 class487 = ((Class151_Sub2_Sub2) this).aClass656_11186
				    .method7792(-116910517);
	    OpenGL.glDeleteShader((int) (class487.aLong6694
					 * -2329590788501447949L));
	}
	while (!((Class151_Sub2_Sub2) this).aClass656_11188
		    .method7825(2136152037)) {
	    Class487_Sub28 class487_sub28
		= (Class487_Sub28) ((Class151_Sub2_Sub2) this)
				       .aClass656_11188.method7792(411920610);
	    OpenGL.glDeleteLists((int) (class487_sub28.aLong6694
					* -2329590788501447949L),
				 class487_sub28.anInt10251 * -1323364665);
	}
	if (method2353() > 100663296
	    && (Class222.method3225(2012289428)
		> ((Class151_Sub2_Sub2) this).aLong11187 + 60000L)) {
	    System.gc();
	    ((Class151_Sub2_Sub2) this).aLong11187
		= Class222.method3225(1769957850);
	}
	super.method1993(i);
    }
    
    void method8500(int i) {
	OpenGL.glColorMask((i & 0x1) != 0, (i & 0x2) != 0, (i & 0x4) != 0,
			   (i & 0x8) != 0);
    }
    
    final Interface39 method8359(boolean bool) {
	return new Class456_Sub2(this, Class155.aClass155_1885, bool);
    }
    
    final Interface39 method8501(boolean bool) {
	return new Class456_Sub2(this, Class155.aClass155_1885, bool);
    }
    
    final Interface39 method8502(boolean bool) {
	return new Class456_Sub2(this, Class155.aClass155_1885, bool);
    }
    
    final Interface39 method8377(boolean bool) {
	return new Class456_Sub2(this, Class155.aClass155_1885, bool);
    }
    
    void method8426() {
	OpenGL.glDepthMask(aBool8973 && aBool9013);
    }
    
    byte[] method10232(String string) {
	return method8246("gl", string);
    }
    
    public Class229 method8267(String string) {
	byte[] is = method10227(string);
	if (is == null)
	    return null;
	Class232 class232 = method8415(is);
	return new Class229_Sub1(this, class232);
    }
    
    public void method8280(Class403 class403) {
	float[] fs = class403.aFloatArray4592;
	fs[1] = -fs[1];
	fs[5] = -fs[5];
	fs[9] = -fs[9];
	fs[13] = -fs[13];
    }
    
    void method8437() {
	if (aBool8990) {
	    OpenGL.glEnable(16384);
	    OpenGL.glEnable(16385);
	} else {
	    OpenGL.glDisable(16384);
	    OpenGL.glDisable(16385);
	}
    }
    
    boolean method8440(Class116 class116, Class155 class155) {
	return aBool9070;
    }
    
    public Class144_Sub2 method2320() {
	return new Class144_Sub2_Sub3_Sub2(this);
    }
    
    void method8434() {
	OpenGL.glMatrixMode(5888);
	OpenGL.glLoadMatrixf(aClass403_8938.aFloatArray4592, 0);
	OpenGL.glLightfv(16384, 4611, aFloatArray8992, 0);
	OpenGL.glLightfv(16385, 4611, aFloatArray9005, 0);
    }
    
    Interface31 method8452(int i, int i_262_, boolean bool, int[] is,
			   int i_263_, int i_264_) {
	return new Class461_Sub2(this, i, i_262_, bool, is, i_263_, i_264_);
    }
    
    void method8479(boolean bool) {
	if (bool)
	    OpenGL.glEnable(32925);
	else
	    OpenGL.glDisable(32925);
    }
    
    void method8328() {
	OpenGL.glActiveTexture(33984 + anInt9010);
    }
    
    void method8435() {
	/* empty */
    }
    
    public void method8484(int i, Interface33 interface33) {
	((Class151_Sub2_Sub2) this).aClass456_Sub1Array11193[i]
	    = (Class456_Sub1) interface33;
    }
}
