243 lines
6.8 KiB
Java
243 lines
6.8 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;
|
|
import net.runelite.rs.ScriptOpcodes;
|
|
|
|
@ObfuscatedName("kf")
|
|
@Implements("PacketBuffer")
|
|
public class PacketBuffer extends Buffer {
|
|
@ObfuscatedName("n")
|
|
static final int[] field3695;
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedSignature(
|
|
signature = "Llg;"
|
|
)
|
|
@Export("isaacCipher")
|
|
IsaacCipher isaacCipher;
|
|
@ObfuscatedName("v")
|
|
@ObfuscatedGetter(
|
|
intValue = -1801396377
|
|
)
|
|
@Export("bitIndex")
|
|
int bitIndex;
|
|
|
|
static {
|
|
field3695 = new int[]{0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, Integer.MAX_VALUE, -1};
|
|
}
|
|
|
|
public PacketBuffer(int var1) {
|
|
super(var1);
|
|
}
|
|
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedSignature(
|
|
signature = "([II)V",
|
|
garbageValue = "2116683841"
|
|
)
|
|
@Export("newIsaacCipher")
|
|
public void newIsaacCipher(int[] var1) {
|
|
this.isaacCipher = new IsaacCipher(var1);
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
signature = "(Llg;B)V",
|
|
garbageValue = "100"
|
|
)
|
|
@Export("setIsaacCipher")
|
|
public void setIsaacCipher(IsaacCipher var1) {
|
|
this.isaacCipher = var1;
|
|
}
|
|
|
|
@ObfuscatedName("v")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)V",
|
|
garbageValue = "1358666817"
|
|
)
|
|
@Export("writeByteIsaac")
|
|
public void writeByteIsaac(int var1) {
|
|
super.array[++super.offset - 1] = (byte)(var1 + this.isaacCipher.nextInt());
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)I",
|
|
garbageValue = "-2099772642"
|
|
)
|
|
@Export("readByteIsaac")
|
|
public int readByteIsaac() {
|
|
return super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255;
|
|
}
|
|
|
|
@ObfuscatedName("r")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)Z",
|
|
garbageValue = "-1080759401"
|
|
)
|
|
public boolean method5380() {
|
|
int var1 = super.array[super.offset] - this.isaacCipher.method6191() & 255;
|
|
return var1 >= 128;
|
|
}
|
|
|
|
@ObfuscatedName("p")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)I",
|
|
garbageValue = "427431431"
|
|
)
|
|
@Export("readSmartByteShortIsaac")
|
|
public int readSmartByteShortIsaac() {
|
|
int var1 = super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255;
|
|
return var1 < 128 ? var1 : (var1 - 128 << 8) + (super.array[++super.offset - 1] - this.isaacCipher.nextInt() & 255);
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "([BIII)V",
|
|
garbageValue = "1740365961"
|
|
)
|
|
public void method5385(byte[] var1, int var2, int var3) {
|
|
for (int var4 = 0; var4 < var3; ++var4) {
|
|
var1[var4 + var2] = (byte)(super.array[++super.offset - 1] - this.isaacCipher.nextInt());
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "1647095141"
|
|
)
|
|
@Export("importIndex")
|
|
public void importIndex() {
|
|
this.bitIndex = super.offset * 8;
|
|
}
|
|
|
|
@ObfuscatedName("y")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)I",
|
|
garbageValue = "1367970229"
|
|
)
|
|
@Export("readBits")
|
|
public int readBits(int var1) {
|
|
int var2 = this.bitIndex >> 3;
|
|
int var3 = 8 - (this.bitIndex & 7);
|
|
int var4 = 0;
|
|
|
|
for (this.bitIndex += var1; var1 > var3; var3 = 8) {
|
|
var4 += (super.array[var2++] & field3695[var3]) << var1 - var3;
|
|
var1 -= var3;
|
|
}
|
|
|
|
if (var3 == var1) {
|
|
var4 += super.array[var2] & field3695[var3];
|
|
} else {
|
|
var4 += super.array[var2] >> var3 - var1 & field3695[var1];
|
|
}
|
|
|
|
return var4;
|
|
}
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
signature = "(B)V",
|
|
garbageValue = "4"
|
|
)
|
|
@Export("exportIndex")
|
|
public void exportIndex() {
|
|
super.offset = (this.bitIndex + 7) / 8;
|
|
}
|
|
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)I",
|
|
garbageValue = "586994412"
|
|
)
|
|
@Export("bitsRemaining")
|
|
public int bitsRemaining(int var1) {
|
|
return var1 * 8 - this.bitIndex;
|
|
}
|
|
|
|
@ObfuscatedName("aa")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILcu;ZB)I",
|
|
garbageValue = "82"
|
|
)
|
|
static int method5408(int var0, Script var1, boolean var2) {
|
|
int var3;
|
|
int var4;
|
|
int var6;
|
|
if (var0 == ScriptOpcodes.ENUM_STRING) {
|
|
Interpreter.Interpreter_intStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
|
|
EnumDefinition var5 = UserComparator10.getEnum(var3);
|
|
if (var5.outputType != 's') {
|
|
}
|
|
|
|
for (var6 = 0; var6 < var5.outputCount; ++var6) {
|
|
if (var4 == var5.keys[var6]) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var5.strVals[var6];
|
|
var5 = null;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (var5 != null) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var5.defaultStr;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 != ScriptOpcodes.ENUM) {
|
|
if (var0 == ScriptOpcodes.ENUM_GETOUTPUTCOUNT) {
|
|
var3 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
EnumDefinition var10 = UserComparator10.getEnum(var3);
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var10.size();
|
|
return 1;
|
|
} else {
|
|
return 2;
|
|
}
|
|
} else {
|
|
Interpreter.Interpreter_intStackSize -= 4;
|
|
var3 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
|
|
int var9 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 2];
|
|
var6 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 3];
|
|
EnumDefinition var7 = UserComparator10.getEnum(var9);
|
|
if (var3 == var7.inputType && var4 == var7.outputType) {
|
|
for (int var8 = 0; var8 < var7.outputCount; ++var8) {
|
|
if (var6 == var7.keys[var8]) {
|
|
if (var4 == 115) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var7.strVals[var8];
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var7.intVals[var8];
|
|
}
|
|
|
|
var7 = null;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (var7 != null) {
|
|
if (var4 == 115) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var7.defaultStr;
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var7.defaultInt;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
} else {
|
|
if (var4 == 115) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = "null";
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|