package org.runite.client; import javax.media.opengl.GL; final class Class141 { static LDIndexedSprite aClass109_Sub1_1840; static Class169[][] aClass169ArrayArray1841; static LDIndexedSprite[] aClass109_Sub1Array1843; private static int anInt1842; private static int anInt1844; private static void method2034(LDIndexedSprite var0, LDIndexedSprite var1, int var2, int var3) { var2 += var0.anInt1470; var3 += var0.anInt1464; int var4 = var2 + var3 * var1.width; int var5 = 0; int var6 = var0.height; int var7 = var0.width; int var8 = var1.width - var7; int var9 = 0; int var10; if (var3 <= 0) { var10 = 1 - var3; var6 -= var10; var5 += var10 * var7; var4 += var10 * var1.width; var3 = 1; } if (var3 + var6 >= var1.height) { var10 = var3 + var6 + 1 - var1.height; var6 -= var10; } if (var2 <= 0) { var10 = 1 - var2; var7 -= var10; var5 += var10; var4 += var10; var9 += var10; var8 += var10; var2 = 1; } if (var2 + var7 >= var1.width) { var10 = var2 + var7 + 1 - var1.width; var7 -= var10; var9 += var10; var8 += var10; } if (var7 > 0 && var6 > 0) { method2044(var1.raster, var0.raster, var5, var4, var7, var6, var8, var9); method2036(var2, var3, var7, var6); } } private static void method2035(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7) { int var8 = -(var4 >> 2); var4 = -(var4 & 3); for (int var9 = -var5; var9 < 0; ++var9) { int var10; int var10001; for (var10 = var8; var10 < 0; ++var10) { var10001 = var3++; var0[var10001] -= var1[var2++]; var10001 = var3++; var0[var10001] -= var1[var2++]; var10001 = var3++; var0[var10001] -= var1[var2++]; var10001 = var3++; var0[var10001] -= var1[var2++]; } for (var10 = var4; var10 < 0; ++var10) { var10001 = var3++; var0[var10001] -= var1[var2++]; } var3 += var6; var2 += var7; } } private static void method2036(int var0, int var1, int var2, int var3) { int var4 = var0 - 1 >> 7; int var5 = var0 - 1 + var2 - 1 >> 7; int var6 = var1 - 1 >> 7; int var7 = var1 - 1 + var3 - 1 >> 7; for (int var8 = var4; var8 <= var5; ++var8) { for (int var9 = var6; var9 <= var7; ++var9) { aClass169ArrayArray1841[var8][var9].aBoolean2106 = true; } } } static void method2037(int var0, int var1, boolean var2, boolean var3, int var4, int var5, int var6, int var7, int var8, int var9) { if (!var2 || !var3) { if (!var2 || var0 != 1) { if (!var3 || var0 != 0) { int var10 = var4 << 7; int var11 = var6 + var7 + var8 + var9 >> 2; int var12 = var5 << 7; int var13 = var10 - (var11 * Class92.lightX >> 8) >> 3; int var14 = var12 - (var11 * Class92.lightY >> 8) >> 3; if (var0 != 0 && var0 != 1 && (var2 || var3)) { method2050(aClass109_Sub1Array1843[var0], aClass109_Sub1_1840, var13 + 1, var14 + 1, var1, var2); } else { method2034(aClass109_Sub1Array1843[1], aClass109_Sub1_1840, var13 + 1, var14 + 1); } } } } } static void method2038(int var0, int var1, int var2, boolean[][] var4) { GL var6 = HDToolKit.gl; HDToolKit.method1856(1); HDToolKit.method1847(1); HDToolKit.method1823(); HDToolKit.method1837(false); Class3_Sub28_Sub4.method551(0, 0); var6.glDepthMask(false); for (int var7 = 0; var7 < anInt1844; ++var7) { int var8 = 0; while (var8 < anInt1842) { int var9 = var7 * 8; while (true) { if (var9 < var7 * 8 + 8) { label42: { if (var9 - var0 >= -var2 && var9 - var0 <= var2) { for (int var10 = var8 * 8; var10 < var8 * 8 + 8; ++var10) { if (var10 - var1 >= -var2 && var10 - var1 <= var2 && var4[var9 - var0 + var2][var10 - var1 + var2]) { Class169 var11 = aClass169ArrayArray1841[var7][var8]; if (var11.aBoolean2106) { var11.method2282(aClass109_Sub1_1840, var7, var8); var11.aBoolean2106 = false; } var6.glPushMatrix(); var6.glTranslatef((float) (var7 * 1024), 0.0F, (float) (var8 * 1024)); var11.method2284(); var6.glPopMatrix(); break label42; } } } ++var9; continue; } } ++var8; break; } } } var6.glEnableClientState('\u8076'); var6.glDepthMask(true); HDToolKit.method1846(); } private static boolean method2039(byte[] var0, int var1, int var2, int var3, int var4, int var5) { int var6 = var2 % var5; int var7; if (var6 == 0) { var7 = 0; } else { var7 = var5 - var6; } int var8 = -((var3 + var5 - 1) / var5); int var9 = -((var2 + var5 - 1) / var5); for (int var10 = var8; var10 < 0; ++var10) { for (int var11 = var9; var11 < 0; ++var11) { if (var0[var1] == 0) { return true; } var1 += var5; } var1 -= var7; if (var0[var1 - 1] == 0) { return true; } var1 += var4; } return false; } private static boolean method2040(LDIndexedSprite var0, LDIndexedSprite var1, int var2, int var3) { var2 += var0.anInt1470; var3 += var0.anInt1464; int var4 = var2 + var3 * var1.width; int var5 = var0.height; int var6 = var0.width; int var7 = var1.width - var6; int var8; if (var3 <= 0) { var8 = 1 - var3; var5 -= var8; var4 += var8 * var1.width; var3 = 1; } if (var3 + var5 >= var1.height) { var8 = var3 + var5 + 1 - var1.height; var5 -= var8; } if (var2 <= 0) { var8 = 1 - var2; var6 -= var8; var4 += var8; var7 += var8; var2 = 1; } if (var2 + var6 >= var1.width) { var8 = var2 + var6 + 1 - var1.width; var6 -= var8; var7 += var8; } if (var6 > 0 && var5 > 0) { byte var9 = 8; var7 += (var9 - 1) * var1.width; method2036(var2, var3, var6, var5); return method2039(var1.raster, var4, var6, var5, var7, var9); } else { return false; } } static void method2041() { anInt1844 = 104 + 7 >> 3; anInt1842 = 104 + 7 >> 3; aClass109_Sub1_1840 = new LDIndexedSprite(anInt1844 * 128 + 2, anInt1842 * 128 + 2); aClass169ArrayArray1841 = new Class169[anInt1844][anInt1842]; for (int var2 = 0; var2 < anInt1844; ++var2) { for (int var3 = 0; var3 < anInt1842; ++var3) { aClass169ArrayArray1841[var2][var3] = new Class169(); } } } private static void method2042(LDIndexedSprite var0, LDIndexedSprite var1, int var2, int var3) { var2 += var0.anInt1470; var3 += var0.anInt1464; int var4 = var2 + var3 * var1.width; int var5 = 0; int var6 = var0.height; int var7 = var0.width; int var8 = var1.width - var7; int var9 = 0; int var10; if (var3 <= 0) { var10 = 1 - var3; var6 -= var10; var5 += var10 * var7; var4 += var10 * var1.width; var3 = 1; } if (var3 + var6 >= var1.height) { var10 = var3 + var6 + 1 - var1.height; var6 -= var10; } if (var2 <= 0) { var10 = 1 - var2; var7 -= var10; var5 += var10; var4 += var10; var9 += var10; var8 += var10; var2 = 1; } if (var2 + var7 >= var1.width) { var10 = var2 + var7 + 1 - var1.width; var7 -= var10; var9 += var10; var8 += var10; } if (var7 > 0 && var6 > 0) { method2035(var1.raster, var0.raster, var5, var4, var7, var6, var8, var9); method2036(var2, var3, var7, var6); } } static void method2043() { aClass109_Sub1_1840 = null; aClass109_Sub1Array1843 = null; aClass169ArrayArray1841 = null; } private static void method2044(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7) { int var8 = -(var4 >> 2); var4 = -(var4 & 3); for (int var9 = -var5; var9 < 0; ++var9) { int var10; int var10001; for (var10 = var8; var10 < 0; ++var10) { var10001 = var3++; var0[var10001] += var1[var2++]; var10001 = var3++; var0[var10001] += var1[var2++]; var10001 = var3++; var0[var10001] += var1[var2++]; var10001 = var3++; var0[var10001] += var1[var2++]; } for (var10 = var4; var10 < 0; ++var10) { var10001 = var3++; var0[var10001] += var1[var2++]; } var3 += var6; var2 += var7; } } private static void method2046(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6) { for (int var7 = -16; var7 < 0; ++var7) { for (int var8 = -4; var8 < 0; ++var8) { int var10001 = var3++; var0[var10001] = (byte) (var0[var10001] + (1 - var1[var2])); var2 += var5; var10001 = var3++; var0[var10001] = (byte) (var0[var10001] + (1 - var1[var2])); var2 += var5; var10001 = var3++; var0[var10001] = (byte) (var0[var10001] + (1 - var1[var2])); var2 += var5; var10001 = var3++; var0[var10001] = (byte) (var0[var10001] + (1 - var1[var2])); var2 += var5; } var3 += var4; var2 += var6; } } static void method2047(LDIndexedSprite var0, int var1, int var2, int var3) { if (var0 != null) { int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3; int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3; method2042(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1); } } private static void method2048(byte[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6) { for (int var7 = -16; var7 < 0; ++var7) { for (int var8 = -4; var8 < 0; ++var8) { int var10001 = var3++; var0[var10001] += var1[var2]; var2 += var5; var10001 = var3++; var0[var10001] += var1[var2]; var2 += var5; var10001 = var3++; var0[var10001] += var1[var2]; var2 += var5; var10001 = var3++; var0[var10001] += var1[var2]; var2 += var5; } var3 += var4; var2 += var6; } } static boolean method2049(LDIndexedSprite var0, int var1, int var2, int var3) { if (var0 == null) { return false; } else { int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3; int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3; return method2040(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1); } } private static void method2050(LDIndexedSprite var0, LDIndexedSprite var1, int var2, int var3, int var4, boolean var5) { if (var2 > 0 && var3 > 0 && var2 + 16 < var1.width && var3 + 16 < var1.height) { int var6 = var2 + var3 * var1.width; int var7 = var1.width - 16; short var8; byte var9; int var10; if (var4 == 0) { var8 = 240; var9 = 1; var10 = -var9 * 16 - 16; } else if (var4 == 1) { var8 = 255; var9 = -16; var10 = -var9 * 16 - 1; } else if (var4 == 2) { var8 = 15; var9 = -1; var10 = -var9 * 16 + 16; } else { var8 = 0; var9 = 16; var10 = -var9 * 16 + 1; } if (var5) { method2046(var1.raster, var0.raster, var8, var6, var7, var9, var10); } else { method2048(var1.raster, var0.raster, var8, var6, var7, var9, var10); } method2036(var2, var3, 16, 16); } } static void method2051(LDIndexedSprite var0, int var1, int var2, int var3) { if (var0 != null) { int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3; int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3; method2034(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1); } } }