import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("do") @Implements("Decimator") public class Decimator { @ObfuscatedName("d") @ObfuscatedSignature( signature = "[Llw;" ) @Export("title_muteSprite") static IndexedSprite[] title_muteSprite; @ObfuscatedName("dx") @ObfuscatedSignature( signature = "Lij;" ) @Export("archive11") static Archive archive11; @ObfuscatedName("ei") @ObfuscatedGetter( intValue = -1888445625 ) @Export("port2") static int port2; @ObfuscatedName("q") @ObfuscatedGetter( intValue = -885023939 ) @Export("inputRate") int inputRate; @ObfuscatedName("v") @ObfuscatedGetter( intValue = 929482819 ) @Export("outputRate") int outputRate; @ObfuscatedName("l") @Export("table") int[][] table; public Decimator(int var1, int var2) { if (var2 != var1) { int var4 = var1; int var5 = var2; if (var2 > var1) { var4 = var2; var5 = var1; } while (var5 != 0) { int var6 = var4 % var5; var4 = var5; var5 = var6; } var1 /= var4; var2 /= var4; this.inputRate = var1; this.outputRate = var2; this.table = new int[var1][14]; for (int var7 = 0; var7 < var1; ++var7) { int[] var8 = this.table[var7]; double var9 = (double)var7 / (double)var1 + 6.0D; int var11 = (int)Math.floor(1.0D + (var9 - 7.0D)); if (var11 < 0) { var11 = 0; } int var12 = (int)Math.ceil(var9 + 7.0D); if (var12 > 14) { var12 = 14; } for (double var13 = (double)var2 / (double)var1; var11 < var12; ++var11) { double var15 = ((double)var11 - var9) * 3.141592653589793D; double var17 = var13; if (var15 < -1.0E-4D || var15 > 1.0E-4D) { var17 = var13 * (Math.sin(var15) / var15); } var17 *= 0.54D + 0.46D * Math.cos(0.2243994752564138D * ((double)var11 - var9)); var8[var11] = (int)Math.floor(0.5D + 65536.0D * var17); } } } } @ObfuscatedName("a") @ObfuscatedSignature( signature = "([BI)[B", garbageValue = "73782280" ) @Export("resample") byte[] resample(byte[] var1) { if (this.table != null) { int var2 = (int)((long)var1.length * (long)this.outputRate / (long)this.inputRate) + 14; int[] var3 = new int[var2]; int var4 = 0; int var5 = 0; int var6; for (var6 = 0; var6 < var1.length; ++var6) { byte var7 = var1[var6]; int[] var8 = this.table[var5]; int var9; for (var9 = 0; var9 < 14; ++var9) { var3[var4 + var9] += var8[var9] * var7; } var5 += this.outputRate; var9 = var5 / this.inputRate; var4 += var9; var5 -= var9 * this.inputRate; } var1 = new byte[var2]; for (var6 = 0; var6 < var2; ++var6) { int var10 = var3[var6] + 32768 >> 16; if (var10 < -128) { var1[var6] = -128; } else if (var10 > 127) { var1[var6] = 127; } else { var1[var6] = (byte)var10; } } } return var1; } @ObfuscatedName("t") @ObfuscatedSignature( signature = "(IB)I", garbageValue = "30" ) @Export("scaleRate") int scaleRate(int var1) { if (this.table != null) { var1 = (int)((long)var1 * (long)this.outputRate / (long)this.inputRate); } return var1; } @ObfuscatedName("n") @ObfuscatedSignature( signature = "(IB)I", garbageValue = "13" ) @Export("scalePosition") int scalePosition(int var1) { if (this.table != null) { var1 = (int)((long)this.outputRate * (long)var1 / (long)this.inputRate) + 6; } return var1; } @ObfuscatedName("a") @ObfuscatedSignature( signature = "(II)Liz;", garbageValue = "1437628659" ) public static VarcInt method2694(int var0) { VarcInt var1 = (VarcInt)VarcInt.VarcInt_cached.get((long)var0); if (var1 != null) { return var1; } else { byte[] var2 = VarcInt.VarcInt_archive.takeFile(19, var0); var1 = new VarcInt(); if (var2 != null) { var1.method4549(new Buffer(var2)); } VarcInt.VarcInt_cached.put(var1, (long)var0); return var1; } } @ObfuscatedName("t") @ObfuscatedSignature( signature = "(Ljava/lang/Object;ZI)[B", garbageValue = "1813906686" ) @Export("serialize") public static byte[] serialize(Object var0, boolean var1) { if (var0 == null) { return null; } else if (var0 instanceof byte[]) { byte[] var3 = (byte[])((byte[])var0); return var1 ? Message.method1312(var3) : var3; } else if (var0 instanceof AbstractByteArrayCopier) { AbstractByteArrayCopier var2 = (AbstractByteArrayCopier)var0; return var2.get(); } else { throw new IllegalArgumentException(); } } @ObfuscatedName("im") @ObfuscatedSignature( signature = "(III)V", garbageValue = "-962309215" ) @Export("calculateMenuBounds") static void calculateMenuBounds(int var0, int var1) { int var2 = class43.fontBold12.stringWidth("Choose Option"); int var3; int var4; for (var3 = 0; var3 < Client.menuOptionsCount; ++var3) { var4 = class43.fontBold12.stringWidth(class65.method1316(var3)); if (var4 > var2) { var2 = var4; } } var2 += 8; var3 = Client.menuOptionsCount * 15 + 22; var4 = var0 - var2 / 2; if (var2 + var4 > class286.canvasWidth) { var4 = class286.canvasWidth - var2; } if (var4 < 0) { var4 = 0; } int var5 = var1; if (var1 + var3 > FloorUnderlayDefinition.canvasHeight) { var5 = FloorUnderlayDefinition.canvasHeight - var3; } if (var5 < 0) { var5 = 0; } MusicPatchNode.menuX = var4; TextureProvider.menuY = var5; KeyHandler.menuWidth = var2; WorldMapData_1.menuHeight = Client.menuOptionsCount * 15 + 22; } }