Files
runelite/runescape-client/src/main/java/Decimator.java
Owain van Brakel add4ca8005 chore: rev 188
2020-01-29 14:20:08 +01:00

287 lines
5.8 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("dj")
@Implements("Decimator")
public class Decimator {
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = 1591513513
)
@Export("inputRate")
int inputRate;
@ObfuscatedName("i")
@ObfuscatedGetter(
intValue = -1648120479
)
@Export("outputRate")
int outputRate;
@ObfuscatedName("g")
@Export("table")
int[][] table;
public Decimator(int var1, int var2) {
if (var2 != var1) {
int var3 = MouseHandler.method1111(var1, var2);
var1 /= var3;
var2 /= var3;
this.inputRate = var1;
this.outputRate = var2;
this.table = new int[var1][14];
for (int var4 = 0; var4 < var1; ++var4) {
int[] var5 = this.table[var4];
double var6 = 6.0D + (double)var4 / (double)var1;
int var8 = (int)Math.floor(var6 - 7.0D + 1.0D);
if (var8 < 0) {
var8 = 0;
}
int var9 = (int)Math.ceil(var6 + 7.0D);
if (var9 > 14) {
var9 = 14;
}
for (double var10 = (double)var2 / (double)var1; var8 < var9; ++var8) {
double var12 = ((double)var8 - var6) * 3.141592653589793D;
double var14 = var10;
if (var12 < -1.0E-4D || var12 > 1.0E-4D) {
var14 = var10 * (Math.sin(var12) / var12);
}
var14 *= 0.54D + 0.46D * Math.cos(0.2243994752564138D * ((double)var8 - var6));
var5[var8] = (int)Math.floor(0.5D + 65536.0D * var14);
}
}
}
}
@ObfuscatedName("c")
@ObfuscatedSignature(
signature = "([BI)[B",
garbageValue = "992629690"
)
@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[var9 + var4] += var7 * var8[var9];
}
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 = "(II)I",
garbageValue = "-356284580"
)
@Export("scaleRate")
int scaleRate(int var1) {
if (this.table != null) {
var1 = (int)((long)this.outputRate * (long)var1 / (long)this.inputRate);
}
return var1;
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(IB)I",
garbageValue = "5"
)
@Export("scalePosition")
int scalePosition(int var1) {
if (this.table != null) {
var1 = (int)((long)this.outputRate * (long)var1 / (long)this.inputRate) + 6;
}
return var1;
}
@ObfuscatedName("c")
public static final int method2600(double var0, double var2, double var4) {
double var6 = var4;
double var8 = var4;
double var10 = var4;
if (var2 != 0.0D) {
double var12;
if (var4 < 0.5D) {
var12 = var4 * (var2 + 1.0D);
} else {
var12 = var2 + var4 - var2 * var4;
}
double var14 = var4 * 2.0D - var12;
double var16 = 0.3333333333333333D + var0;
if (var16 > 1.0D) {
--var16;
}
double var20 = var0 - 0.3333333333333333D;
if (var20 < 0.0D) {
++var20;
}
if (var16 * 6.0D < 1.0D) {
var6 = var14 + 6.0D * (var12 - var14) * var16;
} else if (2.0D * var16 < 1.0D) {
var6 = var12;
} else if (3.0D * var16 < 2.0D) {
var6 = 6.0D * (var12 - var14) * (0.6666666666666666D - var16) + var14;
} else {
var6 = var14;
}
if (var0 * 6.0D < 1.0D) {
var8 = var14 + 6.0D * (var12 - var14) * var0;
} else if (2.0D * var0 < 1.0D) {
var8 = var12;
} else if (var0 * 3.0D < 2.0D) {
var8 = var14 + (var12 - var14) * (0.6666666666666666D - var0) * 6.0D;
} else {
var8 = var14;
}
if (var20 * 6.0D < 1.0D) {
var10 = 6.0D * (var12 - var14) * var20 + var14;
} else if (2.0D * var20 < 1.0D) {
var10 = var12;
} else if (var20 * 3.0D < 2.0D) {
var10 = (0.6666666666666666D - var20) * (var12 - var14) * 6.0D + var14;
} else {
var10 = var14;
}
}
int var22 = (int)(256.0D * var6);
int var13 = (int)(var8 * 256.0D);
int var23 = (int)(256.0D * var10);
int var15 = var23 + (var13 << 8) + (var22 << 16);
return var15;
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(CI)C",
garbageValue = "2008041614"
)
public static char method2597(char var0) {
switch(var0) {
case ' ':
case '-':
case '_':
case ' ':
return '_';
case '#':
case '[':
case ']':
return var0;
case 'À':
case 'Á':
case 'Â':
case 'Ã':
case 'Ä':
case 'à':
case 'á':
case 'â':
case 'ã':
case 'ä':
return 'a';
case 'Ç':
case 'ç':
return 'c';
case 'È':
case 'É':
case 'Ê':
case 'Ë':
case 'è':
case 'é':
case 'ê':
case 'ë':
return 'e';
case 'Í':
case 'Î':
case 'Ï':
case 'í':
case 'î':
case 'ï':
return 'i';
case 'Ñ':
case 'ñ':
return 'n';
case 'Ò':
case 'Ó':
case 'Ô':
case 'Õ':
case 'Ö':
case 'ò':
case 'ó':
case 'ô':
case 'õ':
case 'ö':
return 'o';
case 'Ù':
case 'Ú':
case 'Û':
case 'Ü':
case 'ù':
case 'ú':
case 'û':
case 'ü':
return 'u';
case 'ß':
return 'b';
case 'ÿ':
case 'Ÿ':
return 'y';
default:
return Character.toLowerCase(var0);
}
}
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "2087967382"
)
static final boolean method2601() {
return ViewportMouse.ViewportMouse_isInViewport;
}
}