252 lines
5.5 KiB
Java
252 lines
5.5 KiB
Java
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;
|
|
}
|
|
}
|