package org.runite.client; abstract class Model extends GameObject { boolean aBoolean2699 = false; private static int method1878(int[][] var0, int var1, int var2) { int var3 = var1 >> 7; int var4 = var2 >> 7; if (var3 >= 0 && var4 >= 0 && var3 < var0.length && var4 < var0[0].length) { int var5 = var1 & 127; int var6 = var2 & 127; int var7 = var0[var3][var4] * (128 - var5) + var0[var3 + 1][var4] * var5 >> 7; int var8 = var0[var3][var4 + 1] * (128 - var5) + var0[var3 + 1][var4 + 1] * var5 >> 7; return var7 * (128 - var6) + var8 * var6 >> 7; } else { return 0; } } abstract int method1872(); abstract int method1871(); abstract boolean method1873(); abstract void method1874(); private void method1875(Class3_Sub17 var1, AnimationHeader var2, AnimationHeader var3, int var4, int var5, boolean[] var6, boolean var7, boolean var8, int var9, int[] var10) { int var11; if (var3 == null || var4 == 0) { for (var11 = 0; var11 < var2.anInt1383; ++var11) { short var12 = var2.aShortArray1385[var11]; if (var6 == null || var6[var12] == var7 || var1.anIntArray2466[var12] == 0) { short var13 = var2.aShortArray1387[var11]; int var14; if (var13 != -1) { var14 = var9 & var1.anIntArray2455[var13]; if (var14 == 65535) { this.method1891(0, var1.anIntArrayArray2460[var13], 0, 0, 0, var8); } else { this.method1899(0, var1.anIntArrayArray2460[var13], 0, 0, 0, var8, var14, var10); } } var14 = var9 & var1.anIntArray2455[var12]; if (var14 == 65535) { this.method1891(var1.anIntArray2466[var12], var1.anIntArrayArray2460[var12], var2.aShortArray1388[var11], var2.aShortArray1396[var11], var2.aShortArray1395[var11], var8); } else { this.method1899(var1.anIntArray2466[var12], var1.anIntArrayArray2460[var12], var2.aShortArray1388[var11], var2.aShortArray1396[var11], var2.aShortArray1395[var11], var8, var14, var10); } } } } else { var11 = 0; int var34 = 0; for (int var35 = 0; var35 < var1.anInt2462; ++var35) { boolean var36 = false; if (var11 < var2.anInt1383 && var2.aShortArray1385[var11] == var35) { var36 = true; } boolean var15 = false; if (var34 < var3.anInt1383 && var3.aShortArray1385[var34] == var35) { var15 = true; } if (var36 || var15) { if (var6 != null && var6[var35] != var7 && var1.anIntArray2466[var35] != 0) { if (var36) { ++var11; } if (var15) { ++var34; } } else { short var16 = 0; int var17 = var1.anIntArray2466[var35]; if (var17 == 3) { var16 = 128; } short var19; short var18; short var21; short var20; byte var22; if (var36) { var18 = var2.aShortArray1388[var11]; var19 = var2.aShortArray1396[var11]; var20 = var2.aShortArray1395[var11]; var21 = var2.aShortArray1387[var11]; var22 = var2.aByteArray1393[var11]; ++var11; } else { var18 = var16; var19 = var16; var20 = var16; var21 = -1; var22 = 0; } short var23; short var25; short var24; byte var27; short var26; if (var15) { var23 = var3.aShortArray1388[var34]; var24 = var3.aShortArray1396[var34]; var25 = var3.aShortArray1395[var34]; var26 = var3.aShortArray1387[var34]; var27 = var3.aByteArray1393[var34]; ++var34; } else { var23 = var16; var24 = var16; var25 = var16; var26 = -1; var27 = 0; } int var29; int var28; int var31; int var30; if ((var22 & 2) == 0 && (var27 & 1) == 0) { if (var17 == 2) { var31 = var23 - var18 & 0x7FF; int var32 = var24 - var19 & 0x7FF; int var33 = var25 - var20 & 0x7FF; if (var31 >= 1024) { var31 -= 2048; } if (var32 >= 1024) { var32 -= 2048; } if (var33 >= 1024) { var33 -= 2048; } var28 = var18 + var31 * var4 / var5 & 0x7FF; var29 = var19 + var32 * var4 / var5 & 0x7FF; var30 = var20 + var33 * var4 / var5 & 0x7FF; } else if (var17 == 7) { var31 = var23 - var18 & 63; if (var31 >= 32) { var31 -= 64; } var28 = var18 + var31 * var4 / var5 & 63; var29 = var19 + (var24 - var19) * var4 / var5; var30 = var20 + (var25 - var20) * var4 / var5; } else { var28 = var18 + (var23 - var18) * var4 / var5; var29 = var19 + (var24 - var19) * var4 / var5; var30 = var20 + (var25 - var20) * var4 / var5; } } else { var28 = var18; var29 = var19; var30 = var20; } if (var21 != -1) { var31 = var9 & var1.anIntArray2455[var21]; if (var31 == 65535) { this.method1891(0, var1.anIntArrayArray2460[var21], 0, 0, 0, var8); } else { this.method1899(0, var1.anIntArrayArray2460[var21], 0, 0, 0, var8, var31, var10); } } else if (var26 != -1) { var31 = var9 & var1.anIntArray2455[var26]; if (var31 == 65535) { this.method1891(0, var1.anIntArrayArray2460[var26], 0, 0, 0, var8); } else { this.method1899(0, var1.anIntArrayArray2460[var26], 0, 0, 0, var8, var31, var10); } } var31 = var9 & var1.anIntArray2455[var35]; if (var31 == 65535) { this.method1891(var17, var1.anIntArrayArray2460[var35], var28, var29, var30, var8); } else { this.method1899(var17, var1.anIntArrayArray2460[var35], var28, var29, var30, var8, var31, var10); } } } } } } abstract void method1876(int var1); final void method1877(Class3_Sub28_Sub5 var1, int var2) { if (var2 != -1) { if (this.method1873()) { AnimationHeader var3 = var1.animations[var2]; Class3_Sub17 var4 = var3.skins; for (int var5 = 0; var5 < var3.anInt1383; ++var5) { short var6 = var3.aShortArray1385[var5]; if (var4.aBooleanArray2463[var6]) { if (var3.aShortArray1387[var5] != -1) { this.method1889(0, 0, 0, 0); } this.method1889(var4.anIntArray2466[var6], var3.aShortArray1388[var5], var3.aShortArray1396[var5], var3.aShortArray1395[var5]); } } this.method1879(); } } } abstract void method1879(); final void method1880(Class3_Sub28_Sub5 var1, int var2, Class3_Sub28_Sub5 var3, int var4, int var5, int var6, boolean var7) { if (var2 != -1) { if (this.method1873()) { AnimationHeader var8 = var1.animations[var2]; Class3_Sub17 var9 = var8.skins; AnimationHeader var10 = null; if (var3 != null) { var10 = var3.animations[var4]; if (var10.skins != var9) { var10 = null; } } this.method1875(var9, var8, var10, var5, var6, null, false, var7, 65535, null); this.method1879(); } } } abstract void resize(int var1, int var2, int var3); abstract Model method1882(boolean var1, boolean var2, boolean var3); abstract int method1883(); abstract int method1884(); abstract void method1885(); abstract void method1886(int var1); final void method1887(Class3_Sub28_Sub5 var1, int var2, Class3_Sub28_Sub5 var3, int var4, int var5, int var6, int var7, boolean var8, int[] var9) { if (var2 != -1) { if (this.method1873()) { AnimationHeader var10 = var1.animations[var2]; Class3_Sub17 var11 = var10.skins; AnimationHeader var12 = null; if (var3 != null) { var12 = var3.animations[var4]; if (var12.skins != var11) { var12 = null; } } this.method1875(var11, var10, var12, var5, var6, null, false, var8, var7, var9); this.method1879(); } } } abstract int method1888(); abstract void method1889(int var1, int var2, int var3, int var4); abstract Model method1890(boolean var1, boolean var2, boolean var3); abstract void method1891(int var1, int[] var2, int var3, int var4, int var5, boolean var6); final void method1892(Class3_Sub28_Sub5 var1, int var2, Class3_Sub28_Sub5 var3, int var4, int var5, int var6, Class3_Sub28_Sub5 var7, int var8, Class3_Sub28_Sub5 var9, int var10, int var11, int var12, boolean[] debugArray530, boolean var14) { if (var2 != -1) { if (debugArray530 == null || var8 == -1) { this.method1880(var1, var2, var3, var4, var5, var6, var14); } else if (this.method1873()) { AnimationHeader var15 = var1.animations[var2]; Class3_Sub17 var16 = var15.skins; AnimationHeader var17 = null; if (var3 != null) { var17 = var3.animations[var4]; if (var17.skins != var16) { var17 = null; } } AnimationHeader var18 = var7.animations[var8]; AnimationHeader var19 = null; if (var9 != null) { var19 = var9.animations[var10]; if (var19.skins != var16) { var19 = null; } } this.method1875(var16, var15, var17, var5, var6, debugArray530, false, var14, 65535, null); this.method1891(0, new int[0], 0, 0, 0, var14); this.method1875(var16, var18, var19, var11, var12, debugArray530, true, var14, 65535, null); this.method1879(); } } } abstract void method1893(int var2, int var3, int var4, int var5, int var6, int var7); abstract Model method1894(boolean var1, boolean var2, boolean var3); final void method1895(int[][] var1, int var2, int var3, int var4, int var5, int var6) { int var10 = -var5 / 2; int var11 = -var6 / 2; int var12 = method1878(var1, var2 + var10, var4 + var11); int var13 = var5 / 2; int var14 = -var6 / 2; int var15 = method1878(var1, var2 + var13, var4 + var14); int var16 = -var5 / 2; int var17 = var6 / 2; int var18 = method1878(var1, var2 + var16, var4 + var17); int var19 = var5 / 2; int var20 = var6 / 2; int var21 = method1878(var1, var2 + var19, var4 + var20); int var22 = var12 < var15 ? var12 : var15; int var23 = var18 < var21 ? var18 : var21; int var24 = var15 < var21 ? var15 : var21; int var25 = var12 < var18 ? var12 : var18; if (var6 != 0) { int var26 = (int) (Math.atan2(var22 - var23, var6) * 325.95D) & 0x7FF; if (var26 != 0) { this.method1896(var26); } } if (var5 != 0) { int var27 = (int) (Math.atan2(var25 - var24, var5) * 325.95D) & 0x7FF; if (var27 != 0) { this.method1886(var27); } } int var28 = var12 + var21; if (var15 + var18 < var28) { var28 = var15 + var18; } var28 = (var28 >> 1) - var3; if (var28 != 0) { this.method1897(0, var28, 0); } } abstract void method1896(int var1); final void method1867(int var1, int var2, int var3, int var4, int var5) { } abstract void method1897(int var1, int var2, int var3); abstract int method1898(); abstract void animate(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, long var9, int var11, Class127_Sub1 var12); abstract void method1899(int var1, int[] var2, int var3, int var4, int var5, boolean var6, int var7, int[] var8); abstract void method1900(); }