/* Class360_Sub2 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */

public abstract class Class360_Sub2 extends Class360 {
	float[] aFloatArray10118;
	float aFloat10119;
	int anInt10120 = 0;
	int[] anIntArray10121;
	Class278[] aClass278Array10122;
	float aFloat10123;

	public void method6886(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_0_ = 0; i_0_ < i; i_0_++) {
			((Class360_Sub2) this).aClass278Array10122[i_0_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_0_] = class587_sub4.method14207(-1925963269);
		}
		method16355(class587_sub4, i, -532554429);
	}

	public void method16350(Class278 class278, int i, float f, int i_1_) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	public Class277 method6878() {
		Class277 class277 = Class277.method5433();
		double[] ds = ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5547(((Class360_Sub2) this).aFloat10119);
		class277.aFloat4209 = (float) ds[0];
		class277.aFloat4211 = (float) ds[1];
		class277.aFloat4213 = (float) ds[2];
		return class277;
	}

	void method16351(float f, float f_2_, int i) {
		((Class360_Sub2) this).aFloat10119 += f;
		if (((Class360_Sub2) this).aFloat10119 > f_2_)
			((Class360_Sub2) this).aFloat10119 = f_2_;
	}

	abstract float method16352(float f, float f_3_, float f_4_, byte i);

	abstract void method16353(byte i);

	public Class587_Sub30 method6870(byte i) {
		Class277 class277 = method6868(-531938667);
		return new Class587_Sub30(0, (int) class277.aFloat4209, (int) class277.aFloat4211, (int) class277.aFloat4213);
	}

	public void method6874(float f, int[][][] is, Class291 class291, int i, int i_5_) {
		Class278 class278 = (((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249]);
		if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) > 0.0F) {
			if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
				((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] -= f;
				return;
			}
			f -= (((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120]);
			((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] = 0.0F;
		}
		float f_6_ = 1.0F / (float) Class53.method1278(506410277);
		while (f > 0.0F) {
			float f_7_ = class278.method5560();
			if (((Class360_Sub2) this).aFloat10119 >= f_7_) {
				if (((Class360_Sub2) this).aClass278Array10122.length == 1 + ((Class360_Sub2) this).anInt10120 * -1328506249)
					break;
				if ((((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
					((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249] -= f;
					break;
				}
				((Class360_Sub2) this).anInt10120 += 1535467335;
				f -= (((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]);
				((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249] = 0.0F;
				method16353((byte) -24);
				((Class360_Sub2) this).aFloat10119 = 0.0F;
				((Class360_Sub2) this).aFloat10123 = 0.0F;
				class278 = (((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120]);
				f_7_ = class278.method5560();
			}
			while (f > 0.0F && ((Class360_Sub2) this).aFloat10119 < f_7_) {
				((Class360_Sub2) this).aFloat10123 = method16352(f_7_, ((Class360_Sub2) this).aFloat10123, Math.min(f, f_6_), (byte) 87);
				f -= f_6_;
				method16351(((Class360_Sub2) this).aFloat10123, f_7_, -1161789369);
			}
		}
	}

	public double[] method6867(byte i) {
		return ((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120].method5547(((Class360_Sub2) this).aFloat10119);
	}

	public Class277 method6868(int i) {
		Class277 class277 = Class277.method5433();
		double[] ds = ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5547(((Class360_Sub2) this).aFloat10119);
		class277.aFloat4209 = (float) ds[0];
		class277.aFloat4211 = (float) ds[1];
		class277.aFloat4213 = (float) ds[2];
		return class277;
	}

	public float method16354(byte i) {
		return ((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120].method5548(((Class360_Sub2) this).aFloat10119);
	}

	public float method6887(int i) {
		return ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5550(((Class360_Sub2) this).aFloat10119);
	}

	public void method6871(Class80 class80, int i, int i_8_, int i_9_) {
		Class277 class277 = method6868(769893403);
		class80.anInt1140 = -946869739 * ((int) class277.aFloat4209 - i);
		class80.anInt1141 = -2052250193 * (int) -class277.aFloat4211;
		class80.anInt1142 = 447017531 * ((int) class277.aFloat4213 - i_8_);
	}

	public void method6872(Class587_Sub4 class587_sub4, int i) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i_10_ = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i_10_];
		((Class360_Sub2) this).aFloatArray10118 = new float[i_10_];
		for (int i_11_ = 0; i_11_ < i_10_; i_11_++) {
			((Class360_Sub2) this).aClass278Array10122[i_11_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_11_] = class587_sub4.method14207(-2094556961);
		}
		method16355(class587_sub4, i_10_, 736908298);
	}

	abstract void method16355(Class587_Sub4 class587_sub4, int i, int i_12_);

	public void method6889(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_13_ = 0; i_13_ < i; i_13_++) {
			((Class360_Sub2) this).aClass278Array10122[i_13_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_13_] = class587_sub4.method14207(-1219476760);
		}
		method16355(class587_sub4, i, 1145534989);
	}

	public boolean method6865(int i) {
		return ((Class360_Sub2) this).aClass278Array10122 != null;
	}

	public void method6888(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_14_ = 0; i_14_ < i; i_14_++) {
			((Class360_Sub2) this).aClass278Array10122[i_14_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_14_] = class587_sub4.method14207(-1536073191);
		}
		method16355(class587_sub4, i, 192798472);
	}

	abstract void method16356(Class587_Sub4 class587_sub4, int i);

	Class360_Sub2(Class72 class72) {
		super(class72);
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
	}

	void method16357(float f, float f_15_) {
		((Class360_Sub2) this).aFloat10119 += f;
		if (((Class360_Sub2) this).aFloat10119 > f_15_)
			((Class360_Sub2) this).aFloat10119 = f_15_;
	}

	public void method6875(float f, int[][][] is, Class291 class291, int i, int i_16_) {
		Class278 class278 = (((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249]);
		if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) > 0.0F) {
			if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
				((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] -= f;
				return;
			}
			f -= (((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120]);
			((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] = 0.0F;
		}
		float f_17_ = 1.0F / (float) Class53.method1278(506410277);
		while (f > 0.0F) {
			float f_18_ = class278.method5560();
			if (((Class360_Sub2) this).aFloat10119 >= f_18_) {
				if (((Class360_Sub2) this).aClass278Array10122.length == 1 + ((Class360_Sub2) this).anInt10120 * -1328506249)
					break;
				if ((((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
					((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249] -= f;
					break;
				}
				((Class360_Sub2) this).anInt10120 += 1535467335;
				f -= (((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]);
				((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249] = 0.0F;
				method16353((byte) -58);
				((Class360_Sub2) this).aFloat10119 = 0.0F;
				((Class360_Sub2) this).aFloat10123 = 0.0F;
				class278 = (((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120]);
				f_18_ = class278.method5560();
			}
			while (f > 0.0F && ((Class360_Sub2) this).aFloat10119 < f_18_) {
				((Class360_Sub2) this).aFloat10123 = method16352(f_18_, ((Class360_Sub2) this).aFloat10123, Math.min(f, f_17_), (byte) -5);
				f -= f_17_;
				method16351(((Class360_Sub2) this).aFloat10123, f_18_, -2018035311);
			}
		}
	}

	public void method6876(float f, int[][][] is, Class291 class291, int i, int i_19_) {
		Class278 class278 = (((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249]);
		if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) > 0.0F) {
			if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
				((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] -= f;
				return;
			}
			f -= (((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120]);
			((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] = 0.0F;
		}
		float f_20_ = 1.0F / (float) Class53.method1278(506410277);
		while (f > 0.0F) {
			float f_21_ = class278.method5560();
			if (((Class360_Sub2) this).aFloat10119 >= f_21_) {
				if (((Class360_Sub2) this).aClass278Array10122.length == 1 + ((Class360_Sub2) this).anInt10120 * -1328506249)
					break;
				if ((((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
					((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249] -= f;
					break;
				}
				((Class360_Sub2) this).anInt10120 += 1535467335;
				f -= (((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]);
				((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249] = 0.0F;
				method16353((byte) -21);
				((Class360_Sub2) this).aFloat10119 = 0.0F;
				((Class360_Sub2) this).aFloat10123 = 0.0F;
				class278 = (((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120]);
				f_21_ = class278.method5560();
			}
			while (f > 0.0F && ((Class360_Sub2) this).aFloat10119 < f_21_) {
				((Class360_Sub2) this).aFloat10123 = method16352(f_21_, ((Class360_Sub2) this).aFloat10123, Math.min(f, f_20_), (byte) -28);
				f -= f_20_;
				method16351(((Class360_Sub2) this).aFloat10123, f_21_, -1328239346);
			}
		}
	}

	public void method16358(Class278 class278, int i, float f) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	public void method16359(Class278 class278, int i, float f) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	public Class277 method6879() {
		Class277 class277 = Class277.method5433();
		double[] ds = ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5547(((Class360_Sub2) this).aFloat10119);
		class277.aFloat4209 = (float) ds[0];
		class277.aFloat4211 = (float) ds[1];
		class277.aFloat4213 = (float) ds[2];
		return class277;
	}

	abstract float method16360(float f, float f_22_, float f_23_);

	public double[] method6881() {
		return ((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120].method5547(((Class360_Sub2) this).aFloat10119);
	}

	public float method6885() {
		return ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5550(((Class360_Sub2) this).aFloat10119);
	}

	public void method6883(Class80 class80, int i, int i_24_) {
		Class277 class277 = method6868(-408658031);
		class80.anInt1140 = -946869739 * ((int) class277.aFloat4209 - i);
		class80.anInt1141 = -2052250193 * (int) -class277.aFloat4211;
		class80.anInt1142 = 447017531 * ((int) class277.aFloat4213 - i_24_);
	}

	public void method6884(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_25_ = 0; i_25_ < i; i_25_++) {
			((Class360_Sub2) this).aClass278Array10122[i_25_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_25_] = class587_sub4.method14207(-2123029738);
		}
		method16355(class587_sub4, i, 1024726587);
	}

	public void method6869(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_26_ = 0; i_26_ < i; i_26_++) {
			((Class360_Sub2) this).aClass278Array10122[i_26_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_26_] = class587_sub4.method14207(-862476941);
		}
		method16355(class587_sub4, i, 1474932817);
	}

	public Class277 method6880() {
		Class277 class277 = Class277.method5433();
		double[] ds = ((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249].method5547(((Class360_Sub2) this).aFloat10119);
		class277.aFloat4209 = (float) ds[0];
		class277.aFloat4211 = (float) ds[1];
		class277.aFloat4213 = (float) ds[2];
		return class277;
	}

	abstract void method16361();

	public void method6866(float f, int[][][] is, Class291 class291, int i, int i_27_, int i_28_) {
		Class278 class278 = (((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249]);
		if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) > 0.0F) {
			if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
				((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] -= f;
				return;
			}
			f -= (((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120]);
			((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] = 0.0F;
		}
		float f_29_ = 1.0F / (float) Class53.method1278(506410277);
		while (f > 0.0F) {
			float f_30_ = class278.method5560();
			if (((Class360_Sub2) this).aFloat10119 >= f_30_) {
				if (((Class360_Sub2) this).aClass278Array10122.length == 1 + ((Class360_Sub2) this).anInt10120 * -1328506249)
					break;
				if ((((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
					((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249] -= f;
					break;
				}
				((Class360_Sub2) this).anInt10120 += 1535467335;
				f -= (((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]);
				((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249] = 0.0F;
				method16353((byte) 9);
				((Class360_Sub2) this).aFloat10119 = 0.0F;
				((Class360_Sub2) this).aFloat10123 = 0.0F;
				class278 = (((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120]);
				f_30_ = class278.method5560();
			}
			while (f > 0.0F && ((Class360_Sub2) this).aFloat10119 < f_30_) {
				((Class360_Sub2) this).aFloat10123 = method16352(f_30_, ((Class360_Sub2) this).aFloat10123, Math.min(f, f_29_), (byte) -5);
				f -= f_29_;
				method16351(((Class360_Sub2) this).aFloat10123, f_30_, -1979891864);
			}
		}
	}

	public boolean method6877() {
		return ((Class360_Sub2) this).aClass278Array10122 != null;
	}

	public void method6873(float f, int[][][] is, Class291 class291, int i, int i_31_) {
		Class278 class278 = (((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).anInt10120 * -1328506249]);
		if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) > 0.0F) {
			if ((((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
				((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] -= f;
				return;
			}
			f -= (((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120]);
			((Class360_Sub2) this).aFloatArray10118[-1328506249 * ((Class360_Sub2) this).anInt10120] = 0.0F;
		}
		float f_32_ = 1.0F / (float) Class53.method1278(506410277);
		while (f > 0.0F) {
			float f_33_ = class278.method5560();
			if (((Class360_Sub2) this).aFloat10119 >= f_33_) {
				if (((Class360_Sub2) this).aClass278Array10122.length == 1 + ((Class360_Sub2) this).anInt10120 * -1328506249)
					break;
				if ((((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249]) >= f) {
					((Class360_Sub2) this).aFloatArray10118[1 + ((Class360_Sub2) this).anInt10120 * -1328506249] -= f;
					break;
				}
				((Class360_Sub2) this).anInt10120 += 1535467335;
				f -= (((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249]);
				((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).anInt10120 * -1328506249] = 0.0F;
				method16353((byte) 29);
				((Class360_Sub2) this).aFloat10119 = 0.0F;
				((Class360_Sub2) this).aFloat10123 = 0.0F;
				class278 = (((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120]);
				f_33_ = class278.method5560();
			}
			while (f > 0.0F && ((Class360_Sub2) this).aFloat10119 < f_33_) {
				((Class360_Sub2) this).aFloat10123 = method16352(f_33_, ((Class360_Sub2) this).aFloat10123, Math.min(f, f_32_), (byte) 117);
				f -= f_32_;
				method16351(((Class360_Sub2) this).aFloat10123, f_33_, -1156570830);
			}
		}
	}

	public Class587_Sub30 method6891() {
		Class277 class277 = method6868(506700010);
		return new Class587_Sub30(0, (int) class277.aFloat4209, (int) class277.aFloat4211, (int) class277.aFloat4213);
	}

	public Class587_Sub30 method6882() {
		Class277 class277 = method6868(-1070278277);
		return new Class587_Sub30(0, (int) class277.aFloat4209, (int) class277.aFloat4211, (int) class277.aFloat4213);
	}

	public void method6890(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_34_ = 0; i_34_ < i; i_34_++) {
			((Class360_Sub2) this).aClass278Array10122[i_34_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_34_] = class587_sub4.method14207(-2111121155);
		}
		method16355(class587_sub4, i, -510955378);
	}

	void method16362(float f, float f_35_) {
		((Class360_Sub2) this).aFloat10119 += f;
		if (((Class360_Sub2) this).aFloat10119 > f_35_)
			((Class360_Sub2) this).aFloat10119 = f_35_;
	}

	public void method6892(Class587_Sub4 class587_sub4) {
		((Class360_Sub2) this).aFloat10119 = 0.0F;
		((Class360_Sub2) this).aFloat10123 = 0.0F;
		((Class360_Sub2) this).anInt10120 = 0;
		int i = class587_sub4.method14349(-1130636365);
		((Class360_Sub2) this).aClass278Array10122 = new Class278[i];
		((Class360_Sub2) this).aFloatArray10118 = new float[i];
		for (int i_36_ = 0; i_36_ < i; i_36_++) {
			((Class360_Sub2) this).aClass278Array10122[i_36_] = new Class278(class587_sub4);
			((Class360_Sub2) this).aFloatArray10118[i_36_] = class587_sub4.method14207(-934045454);
		}
		method16355(class587_sub4, i, 1650298464);
	}

	public float method16363() {
		return ((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120].method5548(((Class360_Sub2) this).aFloat10119);
	}

	public float method16364() {
		return ((Class360_Sub2) this).aClass278Array10122[-1328506249 * ((Class360_Sub2) this).anInt10120].method5548(((Class360_Sub2) this).aFloat10119);
	}

	public void method16365(Class278 class278, int i, float f) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	public void method16366(Class278 class278, int i, float f) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	abstract void method16367();

	public void method16368(Class278 class278, int i, float f) {
		if (((Class360_Sub2) this).aClass278Array10122 == null) {
			((Class360_Sub2) this).aClass278Array10122 = new Class278[] { class278 };
			((Class360_Sub2) this).aFloatArray10118 = new float[] { f };
			((Class360_Sub2) this).anIntArray10121 = new int[] { i };
		} else {
			Class278[] class278s = (new Class278[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			float[] fs = (new float[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			int[] is = (new int[1 + ((Class360_Sub2) this).aClass278Array10122.length]);
			System.arraycopy(((Class360_Sub2) this).aClass278Array10122, 0, class278s, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).aFloatArray10118, 0, fs, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			System.arraycopy(((Class360_Sub2) this).anIntArray10121, 0, is, 0, (((Class360_Sub2) this).aClass278Array10122).length);
			((Class360_Sub2) this).aClass278Array10122 = class278s;
			((Class360_Sub2) this).aFloatArray10118 = fs;
			((Class360_Sub2) this).anIntArray10121 = is;
			((Class360_Sub2) this).aClass278Array10122[((Class360_Sub2) this).aClass278Array10122.length - 1] = class278;
			((Class360_Sub2) this).aFloatArray10118[((Class360_Sub2) this).aFloatArray10118.length - 1] = f;
			((Class360_Sub2) this).anIntArray10121[((Class360_Sub2) this).anIntArray10121.length - 1] = i;
		}
	}

	static final void method16369(Class477 class477, short i) {
		String string = (String) (((Class477) class477).anObjectArray6499[(((Class477) class477).anInt6500 -= 1803340247) * -443336217]);
		if (client.aBool8023) {
			try {
				Class317.aClass317_4757.method6242(new Object[] { string }, (short) -11502);
			} catch (Throwable throwable) {
				/* empty */
			}
		}
	}

	static final void method16370(Class477 class477, int i) {
		if (Class331.aShortArray5268 == null || (-1288012531 * Class448.anInt6355 >= -969563119 * Class441.anInt6320))
			((Class477) class477).anIntArray6497[((((Class477) class477).anInt6498 += 1577301031) * 2028895127 - 1)] = -1;
		else
			((Class477) class477).anIntArray6497[((((Class477) class477).anInt6498 += 1577301031) * 2028895127 - 1)] = ((Class331.aShortArray5268[(Class448.anInt6355 += -435840571) * -1288012531 - 1]) & 0xffff);
	}

	static final void method16371(int i, int i_37_, int i_38_, int i_39_, int i_40_, int i_41_, int i_42_) {
		Class187[] class187s = client.aClass187Array8145;
		for (int i_43_ = 0; i_43_ < class187s.length; i_43_++) {
			Class187 class187 = class187s[i_43_];
			if (null != class187 && 2 == -441301535 * class187.anInt2229) {
				Class351.method6650((((Class187) class187).anInt2227 * 988649991), -968452405 * class187.anInt2224, -1809126059 * class187.anInt2226, 0, (((Class187) class187).anInt2230 * 2019972810), false, false, 550058798);
				if (client.aFloatArray8137[0] > -1.0F && client.anInt8021 * -2063394069 % 20 < 10) {
					Class135 class135 = (Class325.aClass135Array5087[((Class187) class187).anInt2225 * -2059073759]);
					int i_44_ = (int) ((float) i + client.aFloatArray8137[0] - 12.0F);
					int i_45_ = (int) (client.aFloatArray8137[1] + (float) i_37_ - 28.0F);
					class135.method3106(i_44_, i_45_);
				}
			}
		}
	}

	public static final void method16372(int i) {
		if (-1 != client.anInt8062 * -789917807 && 1646419899 * client.anInt8081 != -1) {
			int i_46_ = (((-2133186997 * client.anInt8066 * (client.anInt8101 * -216333877 - 48841273 * client.anInt8127)) >> 16) + client.anInt8127 * 48841273);
			client.anInt8066 += i_46_ * 94303075;
			if (client.anInt8066 * -2133186997 >= 65535) {
				client.anInt8066 = -305918819;
				if (!client.aBool8130)
					client.aBool8129 = true;
				else
					client.aBool8129 = false;
				client.aBool8130 = true;
			} else {
				client.aBool8129 = false;
				client.aBool8130 = false;
			}
			float f = (float) (-2133186997 * client.anInt8066) / 65535.0F;
			float[] fs = new float[3];
			int i_47_ = 1362420738 * client.anInt8124;
			for (int i_48_ = 0; i_48_ < 3; i_48_++) {
				int i_49_ = 3 * (client.anIntArrayArrayArray8121[client.anInt8062 * -789917807][i_47_][i_48_]);
				int i_50_ = 3 * (client.anIntArrayArrayArray8121[client.anInt8062 * -789917807][1 + i_47_][i_48_]);
				int i_51_ = 3 * ((client.anIntArrayArrayArray8121[-789917807 * client.anInt8062][i_47_ + 2][i_48_]) - ((client.anIntArrayArrayArray8121[-789917807 * client.anInt8062][i_47_ + 3][i_48_]) - (client.anIntArrayArrayArray8121[-789917807 * client.anInt8062][2 + i_47_][i_48_])));
				int i_52_ = (client.anIntArrayArrayArray8121[client.anInt8062 * -789917807][i_47_][i_48_]);
				int i_53_ = i_50_ - i_49_;
				int i_54_ = i_49_ - i_50_ * 2 + i_51_;
				int i_55_ = ((client.anIntArrayArrayArray8121[client.anInt8062 * -789917807][i_47_ + 2][i_48_]) - i_52_ + i_50_ - i_51_);
				fs[i_48_] = (((float) i_53_ + f * ((float) i_54_ + f * (float) i_55_)) * f + (float) i_52_);
			}
			Class538 class538 = client.aClass237_8070.method4789((byte) -81);
			Class92_Sub14.anInt8754 = (((int) fs[0] - -1268981248 * class538.anInt7085) * 1382689505);
			Class193.anInt2310 = (int) fs[1] * 542685085;
			Class348_Sub3.anInt10169 = ((int) fs[2] - -1275818496 * class538.anInt7083) * 266608239;
			float[] fs_56_ = new float[3];
			int i_57_ = client.anInt8116 * 1558347990;
			for (int i_58_ = 0; i_58_ < 3; i_58_++) {
				int i_59_ = 3 * (client.anIntArrayArrayArray8121[client.anInt8081 * 1646419899][i_57_][i_58_]);
				int i_60_ = ((client.anIntArrayArrayArray8121[client.anInt8081 * 1646419899][i_57_ + 1][i_58_]) * 3);
				int i_61_ = 3 * ((client.anIntArrayArrayArray8121[1646419899 * client.anInt8081][2 + i_57_][i_58_]) - ((client.anIntArrayArrayArray8121[1646419899 * client.anInt8081][3 + i_57_][i_58_]) - (client.anIntArrayArrayArray8121[client.anInt8081 * 1646419899][2 + i_57_][i_58_])));
				int i_62_ = (client.anIntArrayArrayArray8121[client.anInt8081 * 1646419899][i_57_][i_58_]);
				int i_63_ = i_60_ - i_59_;
				int i_64_ = i_61_ + (i_59_ - 2 * i_60_);
				int i_65_ = i_60_ + ((client.anIntArrayArrayArray8121[1646419899 * client.anInt8081][i_57_ + 2][i_58_]) - i_62_) - i_61_;
				fs_56_[i_58_] = (float) i_62_ + f * (f * ((float) i_64_ + (float) i_65_ * f) + (float) i_63_);
			}
			float f_66_ = fs_56_[0] - fs[0];
			float f_67_ = -1.0F * (fs_56_[1] - fs[1]);
			float f_68_ = fs_56_[2] - fs[2];
			double d = Math.sqrt((double) (f_66_ * f_66_ + f_68_ * f_68_));
			Class244.anInt3965 = ((int) (Math.atan2((double) f_67_, d) * 2607.5945876176133) & 0x3fff) * -2000712423;
			Class596.anInt7730 = ((int) (-Math.atan2((double) f_66_, (double) f_68_) * 2607.5945876176133) & 0x3fff) * -1537205343;
			Class236.anInt2736 = (-590265975 * ((client.anIntArrayArrayArray8121[-789917807 * client.anInt8062][i_47_][3]) + ((client.anInt8066 * -2133186997 * ((client.anIntArrayArrayArray8121[client.anInt8062 * -789917807][i_47_ + 2][3]) - (client.anIntArrayArrayArray8121[-789917807 * client.anInt8062][i_47_][3]))) >> 16)));
		}
	}
}
