Port Injector to main layout
Adds deobfuscator Adds injected-client Adds injector-plugin Adds runescape-client Replaces RL's apis Small bug with sprites atm, will be resolved soon. tired af. Builds, probably
This commit is contained in:
334
runescape-client/src/main/java/Huffman.java
Normal file
334
runescape-client/src/main/java/Huffman.java
Normal file
@@ -0,0 +1,334 @@
|
||||
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("gd")
|
||||
@Implements("Huffman")
|
||||
public class Huffman {
|
||||
@ObfuscatedName("e")
|
||||
@Export("__gd_e")
|
||||
static int[][] __gd_e;
|
||||
@ObfuscatedName("p")
|
||||
@ObfuscatedGetter(
|
||||
intValue = -842662451
|
||||
)
|
||||
@Export("canvasHeight")
|
||||
public static int canvasHeight;
|
||||
@ObfuscatedName("m")
|
||||
@Export("__m")
|
||||
int[] __m;
|
||||
@ObfuscatedName("f")
|
||||
@Export("__f")
|
||||
byte[] __f;
|
||||
@ObfuscatedName("q")
|
||||
@Export("__q")
|
||||
int[] __q;
|
||||
|
||||
public Huffman(byte[] var1) {
|
||||
int var2 = var1.length;
|
||||
this.__m = new int[var2];
|
||||
this.__f = var1;
|
||||
int[] var3 = new int[33];
|
||||
this.__q = new int[8];
|
||||
int var4 = 0;
|
||||
|
||||
for(int var5 = 0; var5 < var2; ++var5) {
|
||||
byte var6 = var1[var5];
|
||||
if(var6 != 0) {
|
||||
int var7 = 1 << 32 - var6;
|
||||
int var8 = var3[var6];
|
||||
this.__m[var5] = var8;
|
||||
int var9;
|
||||
int var10;
|
||||
int var11;
|
||||
int var12;
|
||||
if((var8 & var7) != 0) {
|
||||
var9 = var3[var6 - 1];
|
||||
} else {
|
||||
var9 = var8 | var7;
|
||||
|
||||
for(var10 = var6 - 1; var10 >= 1; --var10) {
|
||||
var11 = var3[var10];
|
||||
if(var11 != var8) {
|
||||
break;
|
||||
}
|
||||
|
||||
var12 = 1 << 32 - var10;
|
||||
if((var11 & var12) != 0) {
|
||||
var3[var10] = var3[var10 - 1];
|
||||
break;
|
||||
}
|
||||
|
||||
var3[var10] = var11 | var12;
|
||||
}
|
||||
}
|
||||
|
||||
var3[var6] = var9;
|
||||
|
||||
for(var10 = var6 + 1; var10 <= 32; ++var10) {
|
||||
if(var8 == var3[var10]) {
|
||||
var3[var10] = var9;
|
||||
}
|
||||
}
|
||||
|
||||
var10 = 0;
|
||||
|
||||
for(var11 = 0; var11 < var6; ++var11) {
|
||||
var12 = Integer.MIN_VALUE >>> var11;
|
||||
if((var8 & var12) != 0) {
|
||||
if(this.__q[var10] == 0) {
|
||||
this.__q[var10] = var4;
|
||||
}
|
||||
|
||||
var10 = this.__q[var10];
|
||||
} else {
|
||||
++var10;
|
||||
}
|
||||
|
||||
if(var10 >= this.__q.length) {
|
||||
int[] var13 = new int[this.__q.length * 2];
|
||||
|
||||
for(int var14 = 0; var14 < this.__q.length; ++var14) {
|
||||
var13[var14] = this.__q[var14];
|
||||
}
|
||||
|
||||
this.__q = var13;
|
||||
}
|
||||
|
||||
var12 >>>= 1;
|
||||
}
|
||||
|
||||
this.__q[var10] = ~var5;
|
||||
if(var10 >= var4) {
|
||||
var4 = var10 + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ObfuscatedName("m")
|
||||
@ObfuscatedSignature(
|
||||
signature = "([BII[BIB)I",
|
||||
garbageValue = "64"
|
||||
)
|
||||
@Export("__m_293")
|
||||
public int __m_293(byte[] var1, int var2, int var3, byte[] var4, int var5) {
|
||||
int var6 = 0;
|
||||
int var7 = var5 << 3;
|
||||
|
||||
for(var3 += var2; var2 < var3; ++var2) {
|
||||
int var8 = var1[var2] & 255;
|
||||
int var9 = this.__m[var8];
|
||||
byte var10 = this.__f[var8];
|
||||
if(var10 == 0) {
|
||||
throw new RuntimeException("");
|
||||
}
|
||||
|
||||
int var11 = var7 >> 3;
|
||||
int var12 = var7 & 7;
|
||||
var6 &= -var12 >> 31;
|
||||
int var13 = (var10 + var12 - 1 >> 3) + var11;
|
||||
var12 += 24;
|
||||
var4[var11] = (byte)(var6 |= var9 >>> var12);
|
||||
if(var11 < var13) {
|
||||
++var11;
|
||||
var12 -= 8;
|
||||
var4[var11] = (byte)(var6 = var9 >>> var12);
|
||||
if(var11 < var13) {
|
||||
++var11;
|
||||
var12 -= 8;
|
||||
var4[var11] = (byte)(var6 = var9 >>> var12);
|
||||
if(var11 < var13) {
|
||||
++var11;
|
||||
var12 -= 8;
|
||||
var4[var11] = (byte)(var6 = var9 >>> var12);
|
||||
if(var11 < var13) {
|
||||
++var11;
|
||||
var12 -= 8;
|
||||
var4[var11] = (byte)(var6 = var9 << -var12);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var7 += var10;
|
||||
}
|
||||
|
||||
return (var7 + 7 >> 3) - var5;
|
||||
}
|
||||
|
||||
@ObfuscatedName("f")
|
||||
@ObfuscatedSignature(
|
||||
signature = "([BI[BIII)I",
|
||||
garbageValue = "-2094399899"
|
||||
)
|
||||
@Export("__f_294")
|
||||
public int __f_294(byte[] var1, int var2, byte[] var3, int var4, int var5) {
|
||||
if(var5 == 0) {
|
||||
return 0;
|
||||
} else {
|
||||
int var6 = 0;
|
||||
var5 += var4;
|
||||
int var7 = var2;
|
||||
|
||||
while(true) {
|
||||
byte var8 = var1[var7];
|
||||
if(var8 < 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
int var9;
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 64) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 32) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 16) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 8) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 4) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 2) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
if((var8 & 1) != 0) {
|
||||
var6 = this.__q[var6];
|
||||
} else {
|
||||
++var6;
|
||||
}
|
||||
|
||||
if((var9 = this.__q[var6]) < 0) {
|
||||
var3[var4++] = (byte)(~var9);
|
||||
if(var4 >= var5) {
|
||||
break;
|
||||
}
|
||||
|
||||
var6 = 0;
|
||||
}
|
||||
|
||||
++var7;
|
||||
}
|
||||
|
||||
return var7 + 1 - var2;
|
||||
}
|
||||
}
|
||||
|
||||
@ObfuscatedName("m")
|
||||
@ObfuscatedSignature(
|
||||
signature = "(IB)Lho;",
|
||||
garbageValue = "60"
|
||||
)
|
||||
@Export("getWidget")
|
||||
public static Widget getWidget(int var0) {
|
||||
int var1 = var0 >> 16;
|
||||
int var2 = var0 & 65535;
|
||||
if(Widget.widgets[var1] == null || Widget.widgets[var1][var2] == null) {
|
||||
boolean var3 = GroundItemPile.loadWidgetGroup(var1);
|
||||
if(!var3) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return Widget.widgets[var1][var2];
|
||||
}
|
||||
|
||||
@ObfuscatedName("m")
|
||||
@ObfuscatedSignature(
|
||||
signature = "([Ljava/lang/String;[SB)V",
|
||||
garbageValue = "-20"
|
||||
)
|
||||
public static void method3695(String[] var0, short[] var1) {
|
||||
DynamicObject.method2218(var0, var1, 0, var0.length - 1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user