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

public abstract class Class461 implements Interface40
{
    static final int anInt5267 = 3553;
    static final int anInt5268 = 34067;
    Class116 aClass116_5269;
    static final int anInt5270 = 32879;
    Class151_Sub2_Sub2 aClass151_Sub2_Sub2_5271;
    int anInt5272;
    int anInt5273;
    Class313 aClass313_5274 = Class313.aClass313_3468;
    Class155 aClass155_5275;
    boolean aBool5276;
    static final int anInt5277 = 0;
    int anInt5278;
    static int[] anIntArray5279 = new int[1];
    
    public void method240() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = ((Class461) this).aClass151_Sub2_Sub2_5271.method8296();
	int i_0_ = (((Class151_Sub2_Sub2)
		     ((Class461) this).aClass151_Sub2_Sub2_5271)
		    .anIntArray11185[i]);
	if (i_0_ != ((Class461) this).anInt5273) {
	    if (i_0_ != 0) {
		OpenGL.glBindTexture(i_0_, 0);
		OpenGL.glDisable(i_0_);
	    }
	    OpenGL.glEnable(((Class461) this).anInt5273);
	    ((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
		.anIntArray11185[i]
		= ((Class461) this).anInt5273;
	}
	OpenGL.glBindTexture(((Class461) this).anInt5273,
			     ((Class461) this).anInt5272);
    }
    
    public void method80() {
	if (((Class461) this).anInt5272 != 0) {
	    ((Class461) this).aClass151_Sub2_Sub2_5271.anInt9055
		-= method5686();
	    int[] is = new int[1];
	    is[0] = ((Class461) this).anInt5272;
	    OpenGL.glDeleteTextures(1, is, 0);
	    ((Class461) this).anInt5272 = 0;
	}
    }
    
    void method5680(int i, int i_1_, int i_2_, int[] is) {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	if (i_1_ > 0 && !Class609.method7421(i_1_, -933242110))
	    throw new IllegalArgumentException("");
	if (i_2_ > 0 && !Class609.method7421(i_2_, -1394106063))
	    throw new IllegalArgumentException("");
	if (((Class461) this).aClass116_5269 != Class116.aClass116_1448)
	    throw new IllegalArgumentException("");
	int i_3_ = 0;
	int i_4_ = i_1_ < i_2_ ? i_1_ : i_2_;
	int i_5_ = i_1_ >> 1;
	int i_6_ = i_2_ >> 1;
	int[] is_7_ = is;
	int[] is_8_ = new int[i_5_ * i_6_];
	for (;;) {
	    OpenGL.glTexImage2Di(i, i_3_,
				 (Class151_Sub2_Sub2.method10231
				  (((Class461) this).aClass116_5269,
				   ((Class461) this).aClass155_5275)),
				 i_1_, i_2_, 0, 32993,
				 (((Class151_Sub2_Sub2)
				   ((Class461) this).aClass151_Sub2_Sub2_5271)
				  .anInt11208),
				 is_7_, 0);
	    if (i_4_ <= 1)
		break;
	    int i_9_ = 0;
	    int i_10_ = 0;
	    int i_11_ = i_10_ + i_1_;
	    for (int i_12_ = 0; i_12_ < i_6_; i_12_++) {
		for (int i_13_ = 0; i_13_ < i_5_; i_13_++) {
		    int i_14_ = is_7_[i_10_++];
		    int i_15_ = is_7_[i_10_++];
		    int i_16_ = is_7_[i_11_++];
		    int i_17_ = is_7_[i_11_++];
		    int i_18_ = i_14_ >> 24 & 0xff;
		    int i_19_ = i_14_ >> 16 & 0xff;
		    int i_20_ = i_14_ >> 8 & 0xff;
		    int i_21_ = i_14_ & 0xff;
		    i_18_ += i_15_ >> 24 & 0xff;
		    i_19_ += i_15_ >> 16 & 0xff;
		    i_20_ += i_15_ >> 8 & 0xff;
		    i_21_ += i_15_ & 0xff;
		    i_18_ += i_16_ >> 24 & 0xff;
		    i_19_ += i_16_ >> 16 & 0xff;
		    i_20_ += i_16_ >> 8 & 0xff;
		    i_21_ += i_16_ & 0xff;
		    i_18_ += i_17_ >> 24 & 0xff;
		    i_19_ += i_17_ >> 16 & 0xff;
		    i_20_ += i_17_ >> 8 & 0xff;
		    i_21_ += i_17_ & 0xff;
		    is_8_[i_9_++]
			= ((i_18_ & 0x3fc) << 22 | (i_19_ & 0x3fc) << 14
			   | (i_20_ & 0x3fc) << 6 | (i_21_ & 0x3fc) >> 2);
		}
		i_10_ += i_1_;
		i_11_ += i_1_;
	    }
	    int[] is_22_ = is_8_;
	    is_8_ = is_7_;
	    is_7_ = is_22_;
	    i_1_ = i_5_;
	    i_2_ = i_6_;
	    i_5_ >>= 1;
	    i_6_ >>= 1;
	    i_4_ >>= 1;
	    i_3_++;
	}
    }
    
    void method5681() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class461) this).aClass313_5274 == Class313.aClass313_3468) {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9987 : 9729);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9729);
	} else {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9984 : 9728);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9728);
	}
    }
    
    boolean method172() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = method5686();
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
	    .aBool11197)
	    OpenGL.glEnable(((Class461) this).anInt5273);
	OpenGL.glGenerateMipmapEXT(((Class461) this).anInt5273);
	if (((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
	    .aBool11197)
	    OpenGL.glDisable(((Class461) this).anInt5273);
	((Class461) this).aBool5276 = true;
	method5681();
	method5685(i);
	return true;
    }
    
    int method5682() {
	int i = (((Class461) this).aClass116_5269.anInt1453 * -1152771135
		 * (((Class461) this).aClass155_5275.anInt1895 * -822141047)
		 * ((Class461) this).anInt5278);
	return ((Class461) this).aBool5276 ? i * 4 / 3 : i;
    }
    
    void method5683(int i, int i_23_, int i_24_, byte[] is) {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	if (i_23_ > 0 && !Class609.method7421(i_23_, 975903100))
	    throw new IllegalArgumentException("");
	if (i_24_ > 0 && !Class609.method7421(i_24_, -11044803))
	    throw new IllegalArgumentException("");
	int i_25_ = ((Class461) this).aClass116_5269.anInt1453 * -1152771135;
	int i_26_ = 0;
	int i_27_ = i_23_ < i_24_ ? i_23_ : i_24_;
	int i_28_ = i_23_ >> 1;
	int i_29_ = i_24_ >> 1;
	byte[] is_30_ = is;
	byte[] is_31_ = new byte[i_28_ * i_29_ * i_25_];
	for (;;) {
	    OpenGL.glTexImage2Dub
		(i, i_26_,
		 Class151_Sub2_Sub2.method10231((((Class461) this)
						 .aClass116_5269),
						(((Class461) this)
						 .aClass155_5275)),
		 i_23_, i_24_, 0,
		 Class151_Sub2_Sub2
		     .method10225(((Class461) this).aClass116_5269),
		 5121, is_30_, 0);
	    if (i_27_ <= 1)
		break;
	    int i_32_ = i_23_ * i_25_;
	    for (int i_33_ = 0; i_33_ < i_25_; i_33_++) {
		int i_34_ = i_33_;
		int i_35_ = i_33_;
		int i_36_ = i_35_ + i_32_;
		for (int i_37_ = 0; i_37_ < i_29_; i_37_++) {
		    for (int i_38_ = 0; i_38_ < i_28_; i_38_++) {
			int i_39_ = is_30_[i_35_];
			i_35_ += i_25_;
			i_39_ += is_30_[i_35_];
			i_35_ += i_25_;
			i_39_ += is_30_[i_36_];
			i_36_ += i_25_;
			i_39_ += is_30_[i_36_];
			i_36_ += i_25_;
			is_31_[i_34_] = (byte) (i_39_ >> 2);
			i_34_ += i_25_;
		    }
		    i_35_ += i_32_;
		    i_36_ += i_32_;
		}
	    }
	    byte[] is_40_ = is_31_;
	    is_31_ = is_30_;
	    is_30_ = is_40_;
	    i_23_ = i_28_;
	    i_24_ = i_29_;
	    i_28_ >>= 1;
	    i_29_ >>= 1;
	    i_27_ >>= 1;
	    i_26_++;
	}
    }
    
    void method5684(int i, int i_41_, int i_42_, float[] fs) {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	if (i_41_ > 0 && !Class609.method7421(i_41_, 131424429))
	    throw new IllegalArgumentException("");
	if (i_42_ > 0 && !Class609.method7421(i_42_, -1836047249))
	    throw new IllegalArgumentException("");
	int i_43_ = ((Class461) this).aClass116_5269.anInt1453 * -1152771135;
	int i_44_ = 0;
	int i_45_ = i_41_ < i_42_ ? i_41_ : i_42_;
	int i_46_ = i_41_ >> 1;
	int i_47_ = i_42_ >> 1;
	float[] fs_48_ = fs;
	float[] fs_49_ = new float[i_46_ * i_47_ * i_43_];
	for (;;) {
	    OpenGL.glTexImage2Df
		(i, i_44_,
		 Class151_Sub2_Sub2.method10231((((Class461) this)
						 .aClass116_5269),
						(((Class461) this)
						 .aClass155_5275)),
		 i_41_, i_42_, 0,
		 Class151_Sub2_Sub2
		     .method10225(((Class461) this).aClass116_5269),
		 5126, fs_48_, 0);
	    if (i_45_ <= 1)
		break;
	    int i_50_ = i_41_ * i_43_;
	    for (int i_51_ = 0; i_51_ < i_43_; i_51_++) {
		int i_52_ = i_51_;
		int i_53_ = i_51_;
		int i_54_ = i_53_ + i_50_;
		for (int i_55_ = 0; i_55_ < i_47_; i_55_++) {
		    for (int i_56_ = 0; i_56_ < i_46_; i_56_++) {
			float f = fs_48_[i_53_];
			i_53_ += i_43_;
			f += fs_48_[i_53_];
			i_53_ += i_43_;
			f += fs_48_[i_54_];
			i_54_ += i_43_;
			f += fs_48_[i_54_];
			i_54_ += i_43_;
			fs_49_[i_52_] = f * 0.25F;
			i_52_ += i_43_;
		    }
		    i_53_ += i_50_;
		    i_54_ += i_50_;
		}
	    }
	    float[] fs_57_ = fs_49_;
	    fs_49_ = fs_48_;
	    fs_48_ = fs_57_;
	    i_41_ = i_46_;
	    i_42_ = i_47_;
	    i_46_ >>= 1;
	    i_47_ >>= 1;
	    i_45_ >>= 1;
	    i_44_++;
	}
    }
    
    void method5685(int i) {
	((Class461) this).aClass151_Sub2_Sub2_5271.anInt9055 -= i;
	((Class461) this).aClass151_Sub2_Sub2_5271.anInt9055 += method5686();
    }
    
    int method5686() {
	int i = (((Class461) this).aClass116_5269.anInt1453 * -1152771135
		 * (((Class461) this).aClass155_5275.anInt1895 * -822141047)
		 * ((Class461) this).anInt5278);
	return ((Class461) this).aBool5276 ? i * 4 / 3 : i;
    }
    
    Class461(Class151_Sub2_Sub2 class151_sub2_sub2, int i, Class116 class116,
	     Class155 class155, int i_58_, boolean bool) {
	((Class461) this).aClass151_Sub2_Sub2_5271 = class151_sub2_sub2;
	((Class461) this).anInt5273 = i;
	((Class461) this).aClass116_5269 = class116;
	((Class461) this).aClass155_5275 = class155;
	((Class461) this).aBool5276 = bool;
	((Class461) this).anInt5278 = i_58_;
	OpenGL.glGenTextures(1, anIntArray5279, 0);
	((Class461) this).anInt5272 = anIntArray5279[0];
	method5681();
	method5685(0);
    }
    
    void method5687() {
	if (((Class461) this).anInt5272 != 0) {
	    ((Class461) this).aClass151_Sub2_Sub2_5271
		.method10219(((Class461) this).anInt5272, method5686());
	    ((Class461) this).anInt5272 = 0;
	}
    }
    
    public void finalize() throws Throwable {
	method5687();
	super.finalize();
    }
    
    public void method81() {
	if (((Class461) this).anInt5272 != 0) {
	    ((Class461) this).aClass151_Sub2_Sub2_5271.anInt9055
		-= method5686();
	    int[] is = new int[1];
	    is[0] = ((Class461) this).anInt5272;
	    OpenGL.glDeleteTextures(1, is, 0);
	    ((Class461) this).anInt5272 = 0;
	}
    }
    
    public void method284() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = ((Class461) this).aClass151_Sub2_Sub2_5271.method8296();
	int i_59_ = (((Class151_Sub2_Sub2)
		      ((Class461) this).aClass151_Sub2_Sub2_5271)
		     .anIntArray11185[i]);
	if (i_59_ != ((Class461) this).anInt5273) {
	    if (i_59_ != 0) {
		OpenGL.glBindTexture(i_59_, 0);
		OpenGL.glDisable(i_59_);
	    }
	    OpenGL.glEnable(((Class461) this).anInt5273);
	    ((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
		.anIntArray11185[i]
		= ((Class461) this).anInt5273;
	}
	OpenGL.glBindTexture(((Class461) this).anInt5273,
			     ((Class461) this).anInt5272);
    }
    
    void method5688() throws Throwable {
	method5687();
	super.finalize();
    }
    
    public void method79() {
	if (((Class461) this).anInt5272 != 0) {
	    ((Class461) this).aClass151_Sub2_Sub2_5271.anInt9055
		-= method5686();
	    int[] is = new int[1];
	    is[0] = ((Class461) this).anInt5272;
	    OpenGL.glDeleteTextures(1, is, 0);
	    ((Class461) this).anInt5272 = 0;
	}
    }
    
    boolean method175() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = method5686();
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
	    .aBool11197)
	    OpenGL.glEnable(((Class461) this).anInt5273);
	OpenGL.glGenerateMipmapEXT(((Class461) this).anInt5273);
	if (((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
	    .aBool11197)
	    OpenGL.glDisable(((Class461) this).anInt5273);
	((Class461) this).aBool5276 = true;
	method5681();
	method5685(i);
	return true;
    }
    
    public void method288() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = ((Class461) this).aClass151_Sub2_Sub2_5271.method8296();
	int i_60_ = (((Class151_Sub2_Sub2)
		      ((Class461) this).aClass151_Sub2_Sub2_5271)
		     .anIntArray11185[i]);
	if (i_60_ != ((Class461) this).anInt5273) {
	    if (i_60_ != 0) {
		OpenGL.glBindTexture(i_60_, 0);
		OpenGL.glDisable(i_60_);
	    }
	    OpenGL.glEnable(((Class461) this).anInt5273);
	    ((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
		.anIntArray11185[i]
		= ((Class461) this).anInt5273;
	}
	OpenGL.glBindTexture(((Class461) this).anInt5273,
			     ((Class461) this).anInt5272);
    }
    
    void method5689() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class461) this).aClass313_5274 == Class313.aClass313_3468) {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9987 : 9729);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9729);
	} else {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9984 : 9728);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9728);
	}
    }
    
    public void method287(Class313 class313) {
	if (((Class461) this).aClass313_5274 != class313) {
	    ((Class461) this).aClass313_5274 = class313;
	    method5681();
	}
    }
    
    public void method286(Class313 class313) {
	if (((Class461) this).aClass313_5274 != class313) {
	    ((Class461) this).aClass313_5274 = class313;
	    method5681();
	}
    }
    
    public void method285() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	int i = ((Class461) this).aClass151_Sub2_Sub2_5271.method8296();
	int i_61_ = (((Class151_Sub2_Sub2)
		      ((Class461) this).aClass151_Sub2_Sub2_5271)
		     .anIntArray11185[i]);
	if (i_61_ != ((Class461) this).anInt5273) {
	    if (i_61_ != 0) {
		OpenGL.glBindTexture(i_61_, 0);
		OpenGL.glDisable(i_61_);
	    }
	    OpenGL.glEnable(((Class461) this).anInt5273);
	    ((Class151_Sub2_Sub2) ((Class461) this).aClass151_Sub2_Sub2_5271)
		.anIntArray11185[i]
		= ((Class461) this).anInt5273;
	}
	OpenGL.glBindTexture(((Class461) this).anInt5273,
			     ((Class461) this).anInt5272);
    }
    
    void method5690() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class461) this).aClass313_5274 == Class313.aClass313_3468) {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9987 : 9729);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9729);
	} else {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9984 : 9728);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9728);
	}
    }
    
    void method5691() {
	if (((Class461) this).anInt5272 == 0)
	    throw new IllegalStateException("");
	((Class461) this).aClass151_Sub2_Sub2_5271.method8314(this);
	if (((Class461) this).aClass313_5274 == Class313.aClass313_3468) {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9987 : 9729);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9729);
	} else {
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10241,
				   ((Class461) this).aBool5276 ? 9984 : 9728);
	    OpenGL.glTexParameteri(((Class461) this).anInt5273, 10240, 9728);
	}
    }
    
    void method5692() throws Throwable {
	method5687();
	super.finalize();
    }
    
    int method5693() {
	int i = (((Class461) this).aClass116_5269.anInt1453 * -1152771135
		 * (((Class461) this).aClass155_5275.anInt1895 * -822141047)
		 * ((Class461) this).anInt5278);
	return ((Class461) this).aBool5276 ? i * 4 / 3 : i;
    }
    
    public void method283(Class313 class313) {
	if (((Class461) this).aClass313_5274 != class313) {
	    ((Class461) this).aClass313_5274 = class313;
	    method5681();
	}
    }
}
