182 lines
4.6 KiB
Java
182 lines
4.6 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("aa")
|
|
@Implements("Decimator")
|
|
public class Decimator {
|
|
@ObfuscatedName("a")
|
|
@ObfuscatedGetter(
|
|
intValue = -1492470375
|
|
)
|
|
@Export("inputRate")
|
|
int inputRate;
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedGetter(
|
|
intValue = 1711646651
|
|
)
|
|
@Export("outputRate")
|
|
int outputRate;
|
|
@ObfuscatedName("g")
|
|
@Export("table")
|
|
int[][] table;
|
|
|
|
public Decimator(int var1, int var2) {
|
|
if (var2 != var1) { // L: 14
|
|
int var4 = var1; // L: 16
|
|
int var5 = var2; // L: 17
|
|
if (var2 > var1) { // L: 19
|
|
var4 = var2; // L: 21
|
|
var5 = var1; // L: 22
|
|
}
|
|
|
|
while (var5 != 0) { // L: 24
|
|
int var6 = var4 % var5; // L: 25
|
|
var4 = var5; // L: 26
|
|
var5 = var6; // L: 27
|
|
}
|
|
|
|
var1 /= var4; // L: 32
|
|
var2 /= var4; // L: 33
|
|
this.inputRate = var1; // L: 34
|
|
this.outputRate = var2; // L: 35
|
|
this.table = new int[var1][14]; // L: 36
|
|
|
|
for (int var7 = 0; var7 < var1; ++var7) { // L: 37
|
|
int[] var8 = this.table[var7]; // L: 38
|
|
double var9 = (double)var7 / (double)var1 + 6.0D; // L: 39
|
|
int var11 = (int)Math.floor(1.0D + (var9 - 7.0D)); // L: 40
|
|
if (var11 < 0) { // L: 41
|
|
var11 = 0;
|
|
}
|
|
|
|
int var12 = (int)Math.ceil(var9 + 7.0D); // L: 42
|
|
if (var12 > 14) { // L: 43
|
|
var12 = 14;
|
|
}
|
|
|
|
for (double var13 = (double)var2 / (double)var1; var11 < var12; ++var11) { // L: 44 45
|
|
double var15 = 3.141592653589793D * ((double)var11 - var9); // L: 46
|
|
double var17 = var13; // L: 47
|
|
if (var15 < -1.0E-4D || var15 > 1.0E-4D) { // L: 48
|
|
var17 = var13 * (Math.sin(var15) / var15);
|
|
}
|
|
|
|
var17 *= 0.54D + 0.46D * Math.cos(((double)var11 - var9) * 0.2243994752564138D); // L: 49
|
|
var8[var11] = (int)Math.floor(var17 * 65536.0D + 0.5D); // L: 50
|
|
}
|
|
}
|
|
|
|
}
|
|
} // L: 53
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
descriptor = "([BI)[B",
|
|
garbageValue = "-951677214"
|
|
)
|
|
@Export("resample")
|
|
byte[] resample(byte[] var1) {
|
|
if (this.table != null) { // L: 56
|
|
int var2 = (int)((long)this.outputRate * (long)var1.length / (long)this.inputRate) + 14; // L: 57
|
|
int[] var3 = new int[var2]; // L: 58
|
|
int var4 = 0; // L: 59
|
|
int var5 = 0; // L: 60
|
|
|
|
int var6;
|
|
for (var6 = 0; var6 < var1.length; ++var6) { // L: 61
|
|
byte var7 = var1[var6]; // L: 62
|
|
int[] var8 = this.table[var5]; // L: 63
|
|
|
|
int var9;
|
|
for (var9 = 0; var9 < 14; ++var9) { // L: 64
|
|
var3[var9 + var4] += var8[var9] * var7;
|
|
}
|
|
|
|
var5 += this.outputRate; // L: 65
|
|
var9 = var5 / this.inputRate; // L: 66
|
|
var4 += var9; // L: 67
|
|
var5 -= var9 * this.inputRate; // L: 68
|
|
}
|
|
|
|
var1 = new byte[var2]; // L: 70
|
|
|
|
for (var6 = 0; var6 < var2; ++var6) { // L: 71
|
|
int var10 = var3[var6] + 32768 >> 16; // L: 72
|
|
if (var10 < -128) { // L: 73
|
|
var1[var6] = -128;
|
|
} else if (var10 > 127) { // L: 74
|
|
var1[var6] = 127;
|
|
} else {
|
|
var1[var6] = (byte)var10; // L: 75
|
|
}
|
|
}
|
|
}
|
|
|
|
return var1; // L: 78
|
|
}
|
|
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(II)I",
|
|
garbageValue = "-441900901"
|
|
)
|
|
@Export("scaleRate")
|
|
int scaleRate(int var1) {
|
|
if (this.table != null) { // L: 82
|
|
var1 = (int)((long)var1 * (long)this.outputRate / (long)this.inputRate);
|
|
}
|
|
|
|
return var1; // L: 83
|
|
}
|
|
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(II)I",
|
|
garbageValue = "841868680"
|
|
)
|
|
@Export("scalePosition")
|
|
int scalePosition(int var1) {
|
|
if (this.table != null) { // L: 87
|
|
var1 = (int)((long)var1 * (long)this.outputRate / (long)this.inputRate) + 6;
|
|
}
|
|
|
|
return var1; // L: 88
|
|
}
|
|
|
|
@ObfuscatedName("ip")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIIII)V",
|
|
garbageValue = "-2093832763"
|
|
)
|
|
@Export("selectSpell")
|
|
static void selectSpell(int var0, int var1, int var2, int var3) {
|
|
Widget var4 = ItemContainer.getWidgetChild(var0, var1); // L: 9118
|
|
if (var4 != null && var4.onTargetEnter != null) { // L: 9119
|
|
ScriptEvent var5 = new ScriptEvent(); // L: 9120
|
|
var5.widget = var4; // L: 9121
|
|
var5.args = var4.onTargetEnter; // L: 9122
|
|
Tile.runScriptEvent(var5); // L: 9123
|
|
}
|
|
|
|
Client.field627 = var3; // L: 9125
|
|
Client.isSpellSelected = true; // L: 9126
|
|
FontName.selectedSpellWidget = var0; // L: 9127
|
|
Client.selectedSpellChildIndex = var1; // L: 9128
|
|
class116.selectedSpellFlags = var2; // L: 9129
|
|
class184.invalidateWidget(var4); // L: 9130
|
|
} // L: 9131
|
|
|
|
@ObfuscatedName("jv")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)Z",
|
|
garbageValue = "1138685196"
|
|
)
|
|
@Export("getTapToDrop")
|
|
static boolean getTapToDrop() {
|
|
return Client.tapToDrop; // L: 10614
|
|
}
|
|
}
|