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
489 lines
19 KiB
Java
489 lines
19 KiB
Java
import java.io.EOFException;
|
|
import java.io.IOException;
|
|
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("ff")
|
|
@Implements("IndexStore")
|
|
public final class IndexStore {
|
|
@ObfuscatedName("m")
|
|
@Export("IndexStore_buffer")
|
|
static byte[] IndexStore_buffer;
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedSignature(
|
|
signature = "Ldy;"
|
|
)
|
|
@Export("dataFile")
|
|
BufferedFile dataFile;
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "Ldy;"
|
|
)
|
|
@Export("indexFile")
|
|
BufferedFile indexFile;
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedGetter(
|
|
intValue = -1982523283
|
|
)
|
|
@Export("index")
|
|
int index;
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedGetter(
|
|
intValue = -748616567
|
|
)
|
|
@Export("maxEntrySize")
|
|
int maxEntrySize;
|
|
|
|
static {
|
|
IndexStore_buffer = new byte[520];
|
|
}
|
|
|
|
@ObfuscatedSignature(
|
|
signature = "(ILdy;Ldy;I)V"
|
|
)
|
|
public IndexStore(int var1, BufferedFile var2, BufferedFile var3, int var4) {
|
|
this.dataFile = null;
|
|
this.indexFile = null;
|
|
this.maxEntrySize = 65000;
|
|
this.index = var1;
|
|
this.dataFile = var2;
|
|
this.indexFile = var3;
|
|
this.maxEntrySize = var4;
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)[B",
|
|
garbageValue = "-294587791"
|
|
)
|
|
@Export("read")
|
|
public byte[] read(int var1) {
|
|
BufferedFile var2 = this.dataFile;
|
|
synchronized(this.dataFile) {
|
|
try {
|
|
Object var10000;
|
|
if(this.indexFile.length() < (long)(var1 * 6 + 6)) {
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
} else {
|
|
this.indexFile.seek((long)(var1 * 6));
|
|
this.indexFile.read(IndexStore_buffer, 0, 6);
|
|
int var3 = ((IndexStore_buffer[0] & 255) << 16) + (IndexStore_buffer[2] & 255) + ((IndexStore_buffer[1] & 255) << 8);
|
|
int var4 = (IndexStore_buffer[5] & 255) + ((IndexStore_buffer[3] & 255) << 16) + ((IndexStore_buffer[4] & 255) << 8);
|
|
if(var3 < 0 || var3 > this.maxEntrySize) {
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
} else if(var4 <= 0 || (long)var4 > this.dataFile.length() / 520L) {
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
} else {
|
|
byte[] var5 = new byte[var3];
|
|
int var6 = 0;
|
|
int var7 = 0;
|
|
|
|
while(var6 < var3) {
|
|
if(var4 == 0) {
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
}
|
|
|
|
this.dataFile.seek((long)(var4 * 520));
|
|
int var8 = var3 - var6;
|
|
if(var8 > 512) {
|
|
var8 = 512;
|
|
}
|
|
|
|
this.dataFile.read(IndexStore_buffer, 0, var8 + 8);
|
|
int var9 = (IndexStore_buffer[1] & 255) + ((IndexStore_buffer[0] & 255) << 8);
|
|
int var10 = (IndexStore_buffer[3] & 255) + ((IndexStore_buffer[2] & 255) << 8);
|
|
int var11 = ((IndexStore_buffer[5] & 255) << 8) + ((IndexStore_buffer[4] & 255) << 16) + (IndexStore_buffer[6] & 255);
|
|
int var12 = IndexStore_buffer[7] & 255;
|
|
if(var9 == var1 && var7 == var10 && var12 == this.index) {
|
|
if(var11 >= 0 && (long)var11 <= this.dataFile.length() / 520L) {
|
|
for(int var13 = 0; var13 < var8; ++var13) {
|
|
var5[var6++] = IndexStore_buffer[var13 + 8];
|
|
}
|
|
|
|
var4 = var11;
|
|
++var7;
|
|
continue;
|
|
}
|
|
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
}
|
|
|
|
var10000 = null;
|
|
return (byte[])var10000;
|
|
}
|
|
|
|
byte[] var18 = var5;
|
|
return var18;
|
|
}
|
|
}
|
|
} catch (IOException var16) {
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedSignature(
|
|
signature = "(I[BII)Z",
|
|
garbageValue = "-1750864122"
|
|
)
|
|
@Export("write")
|
|
public boolean write(int var1, byte[] var2, int var3) {
|
|
BufferedFile var4 = this.dataFile;
|
|
synchronized(this.dataFile) {
|
|
if(var3 >= 0 && var3 <= this.maxEntrySize) {
|
|
boolean var5 = this.write0(var1, var2, var3, true);
|
|
if(!var5) {
|
|
var5 = this.write0(var1, var2, var3, false);
|
|
}
|
|
|
|
return var5;
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(I[BIZI)Z",
|
|
garbageValue = "-944588642"
|
|
)
|
|
@Export("write0")
|
|
boolean write0(int var1, byte[] var2, int var3, boolean var4) {
|
|
BufferedFile var5 = this.dataFile;
|
|
synchronized(this.dataFile) {
|
|
try {
|
|
int var6;
|
|
boolean var10000;
|
|
if(var4) {
|
|
if(this.indexFile.length() < (long)(var1 * 6 + 6)) {
|
|
var10000 = false;
|
|
return var10000;
|
|
}
|
|
|
|
this.indexFile.seek((long)(var1 * 6));
|
|
this.indexFile.read(IndexStore_buffer, 0, 6);
|
|
var6 = (IndexStore_buffer[5] & 255) + ((IndexStore_buffer[3] & 255) << 16) + ((IndexStore_buffer[4] & 255) << 8);
|
|
if(var6 <= 0 || (long)var6 > this.dataFile.length() / 520L) {
|
|
var10000 = false;
|
|
return var10000;
|
|
}
|
|
} else {
|
|
var6 = (int)((this.dataFile.length() + 519L) / 520L);
|
|
if(var6 == 0) {
|
|
var6 = 1;
|
|
}
|
|
}
|
|
|
|
IndexStore_buffer[0] = (byte)(var3 >> 16);
|
|
IndexStore_buffer[1] = (byte)(var3 >> 8);
|
|
IndexStore_buffer[2] = (byte)var3;
|
|
IndexStore_buffer[3] = (byte)(var6 >> 16);
|
|
IndexStore_buffer[4] = (byte)(var6 >> 8);
|
|
IndexStore_buffer[5] = (byte)var6;
|
|
this.indexFile.seek((long)(var1 * 6));
|
|
this.indexFile.write(IndexStore_buffer, 0, 6);
|
|
int var7 = 0;
|
|
int var8 = 0;
|
|
|
|
while(true) {
|
|
if(var7 < var3) {
|
|
label142: {
|
|
int var9 = 0;
|
|
int var14;
|
|
if(var4) {
|
|
this.dataFile.seek((long)(var6 * 520));
|
|
|
|
try {
|
|
this.dataFile.read(IndexStore_buffer, 0, 8);
|
|
} catch (EOFException var16) {
|
|
break label142;
|
|
}
|
|
|
|
var14 = (IndexStore_buffer[1] & 255) + ((IndexStore_buffer[0] & 255) << 8);
|
|
int var11 = (IndexStore_buffer[3] & 255) + ((IndexStore_buffer[2] & 255) << 8);
|
|
var9 = ((IndexStore_buffer[5] & 255) << 8) + ((IndexStore_buffer[4] & 255) << 16) + (IndexStore_buffer[6] & 255);
|
|
int var12 = IndexStore_buffer[7] & 255;
|
|
if(var14 != var1 || var11 != var8 || var12 != this.index) {
|
|
var10000 = false;
|
|
return var10000;
|
|
}
|
|
|
|
if(var9 < 0 || (long)var9 > this.dataFile.length() / 520L) {
|
|
var10000 = false;
|
|
return var10000;
|
|
}
|
|
}
|
|
|
|
if(var9 == 0) {
|
|
var4 = false;
|
|
var9 = (int)((this.dataFile.length() + 519L) / 520L);
|
|
if(var9 == 0) {
|
|
++var9;
|
|
}
|
|
|
|
if(var6 == var9) {
|
|
++var9;
|
|
}
|
|
}
|
|
|
|
if(var3 - var7 <= 512) {
|
|
var9 = 0;
|
|
}
|
|
|
|
IndexStore_buffer[0] = (byte)(var1 >> 8);
|
|
IndexStore_buffer[1] = (byte)var1;
|
|
IndexStore_buffer[2] = (byte)(var8 >> 8);
|
|
IndexStore_buffer[3] = (byte)var8;
|
|
IndexStore_buffer[4] = (byte)(var9 >> 16);
|
|
IndexStore_buffer[5] = (byte)(var9 >> 8);
|
|
IndexStore_buffer[6] = (byte)var9;
|
|
IndexStore_buffer[7] = (byte)this.index;
|
|
this.dataFile.seek((long)(var6 * 520));
|
|
this.dataFile.write(IndexStore_buffer, 0, 8);
|
|
var14 = var3 - var7;
|
|
if(var14 > 512) {
|
|
var14 = 512;
|
|
}
|
|
|
|
this.dataFile.write(var2, var7, var14);
|
|
var7 += var14;
|
|
var6 = var9;
|
|
++var8;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var10000 = true;
|
|
return var10000;
|
|
}
|
|
} catch (IOException var17) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(IIILfe;Lfy;B)Z",
|
|
garbageValue = "1"
|
|
)
|
|
static final boolean method3585(int var0, int var1, int var2, class179 var3, CollisionMap var4) {
|
|
int var5 = var0;
|
|
int var6 = var1;
|
|
byte var7 = 64;
|
|
byte var8 = 64;
|
|
int var9 = var0 - var7;
|
|
int var10 = var1 - var8;
|
|
class178.__fi_q[var7][var8] = 99;
|
|
class178.__fi_w[var7][var8] = 0;
|
|
byte var11 = 0;
|
|
int var12 = 0;
|
|
class178.__fi_l[var11] = var0;
|
|
int var20 = var11 + 1;
|
|
class178.__fi_e[var11] = var1;
|
|
int[][] var13 = var4.flags;
|
|
|
|
while(true) {
|
|
label300:
|
|
while(true) {
|
|
int var14;
|
|
int var15;
|
|
int var16;
|
|
int var17;
|
|
int var18;
|
|
int var19;
|
|
do {
|
|
do {
|
|
do {
|
|
label277:
|
|
do {
|
|
if(var20 == var12) {
|
|
WidgetGroupParent.__bx_o = var5;
|
|
UrlRequester.__eo_u = var6;
|
|
return false;
|
|
}
|
|
|
|
var5 = class178.__fi_l[var12];
|
|
var6 = class178.__fi_e[var12];
|
|
var12 = var12 + 1 & 4095;
|
|
var18 = var5 - var9;
|
|
var19 = var6 - var10;
|
|
var14 = var5 - var4.xInset;
|
|
var15 = var6 - var4.yInset;
|
|
if(var3.vmethod3644(var2, var5, var6, var4)) {
|
|
WidgetGroupParent.__bx_o = var5;
|
|
UrlRequester.__eo_u = var6;
|
|
return true;
|
|
}
|
|
|
|
var16 = class178.__fi_w[var18][var19] + 1;
|
|
if(var18 > 0 && class178.__fi_q[var18 - 1][var19] == 0 && (var13[var14 - 1][var15] & 19136782) == 0 && (var13[var14 - 1][var15 + var2 - 1] & 19136824) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2 - 1) {
|
|
class178.__fi_l[var20] = var5 - 1;
|
|
class178.__fi_e[var20] = var6;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 - 1][var19] = 2;
|
|
class178.__fi_w[var18 - 1][var19] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var14 - 1][var17 + var15] & 19136830) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var18 < 128 - var2 && class178.__fi_q[var18 + 1][var19] == 0 && (var13[var14 + var2][var15] & 19136899) == 0 && (var13[var14 + var2][var15 + var2 - 1] & 19136992) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2 - 1) {
|
|
class178.__fi_l[var20] = var5 + 1;
|
|
class178.__fi_e[var20] = var6;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 + 1][var19] = 8;
|
|
class178.__fi_w[var18 + 1][var19] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var14 + var2][var15 + var17] & 19136995) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var19 > 0 && class178.__fi_q[var18][var19 - 1] == 0 && (var13[var14][var15 - 1] & 19136782) == 0 && (var13[var14 + var2 - 1][var15 - 1] & 19136899) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2 - 1) {
|
|
class178.__fi_l[var20] = var5;
|
|
class178.__fi_e[var20] = var6 - 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18][var19 - 1] = 1;
|
|
class178.__fi_w[var18][var19 - 1] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var17 + var14][var15 - 1] & 19136911) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var19 < 128 - var2 && class178.__fi_q[var18][var19 + 1] == 0 && (var13[var14][var15 + var2] & 19136824) == 0 && (var13[var14 + var2 - 1][var15 + var2] & 19136992) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2 - 1) {
|
|
class178.__fi_l[var20] = var5;
|
|
class178.__fi_e[var20] = var6 + 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18][var19 + 1] = 4;
|
|
class178.__fi_w[var18][var19 + 1] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var17 + var14][var15 + var2] & 19137016) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var18 > 0 && var19 > 0 && class178.__fi_q[var18 - 1][var19 - 1] == 0 && (var13[var14 - 1][var15 - 1] & 19136782) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2) {
|
|
class178.__fi_l[var20] = var5 - 1;
|
|
class178.__fi_e[var20] = var6 - 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 - 1][var19 - 1] = 3;
|
|
class178.__fi_w[var18 - 1][var19 - 1] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var14 - 1][var17 + (var15 - 1)] & 19136830) != 0 || (var13[var17 + (var14 - 1)][var15 - 1] & 19136911) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var18 < 128 - var2 && var19 > 0 && class178.__fi_q[var18 + 1][var19 - 1] == 0 && (var13[var14 + var2][var15 - 1] & 19136899) == 0) {
|
|
var17 = 1;
|
|
|
|
while(true) {
|
|
if(var17 >= var2) {
|
|
class178.__fi_l[var20] = var5 + 1;
|
|
class178.__fi_e[var20] = var6 - 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 + 1][var19 - 1] = 9;
|
|
class178.__fi_w[var18 + 1][var19 - 1] = var16;
|
|
break;
|
|
}
|
|
|
|
if((var13[var14 + var2][var17 + (var15 - 1)] & 19136995) != 0 || (var13[var17 + var14][var15 - 1] & 19136911) != 0) {
|
|
break;
|
|
}
|
|
|
|
++var17;
|
|
}
|
|
}
|
|
|
|
if(var18 > 0 && var19 < 128 - var2 && class178.__fi_q[var18 - 1][var19 + 1] == 0 && (var13[var14 - 1][var15 + var2] & 19136824) == 0) {
|
|
for(var17 = 1; var17 < var2; ++var17) {
|
|
if((var13[var14 - 1][var15 + var17] & 19136830) != 0 || (var13[var17 + (var14 - 1)][var15 + var2] & 19137016) != 0) {
|
|
continue label277;
|
|
}
|
|
}
|
|
|
|
class178.__fi_l[var20] = var5 - 1;
|
|
class178.__fi_e[var20] = var6 + 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 - 1][var19 + 1] = 6;
|
|
class178.__fi_w[var18 - 1][var19 + 1] = var16;
|
|
}
|
|
} while(var18 >= 128 - var2);
|
|
} while(var19 >= 128 - var2);
|
|
} while(class178.__fi_q[var18 + 1][var19 + 1] != 0);
|
|
} while((var13[var14 + var2][var15 + var2] & 19136992) != 0);
|
|
|
|
for(var17 = 1; var17 < var2; ++var17) {
|
|
if((var13[var14 + var17][var15 + var2] & 19137016) != 0 || (var13[var14 + var2][var17 + var15] & 19136995) != 0) {
|
|
continue label300;
|
|
}
|
|
}
|
|
|
|
class178.__fi_l[var20] = var5 + 1;
|
|
class178.__fi_e[var20] = var6 + 1;
|
|
var20 = var20 + 1 & 4095;
|
|
class178.__fi_q[var18 + 1][var19 + 1] = 12;
|
|
class178.__fi_w[var18 + 1][var19 + 1] = var16;
|
|
}
|
|
}
|
|
}
|
|
}
|