434 lines
11 KiB
Java
434 lines
11 KiB
Java
import java.io.EOFException;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.Map;
|
|
import java.util.Map.Entry;
|
|
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("ch")
|
|
@Implements("Varcs")
|
|
public class Varcs {
|
|
@ObfuscatedName("q")
|
|
@Export("intsPersistence")
|
|
boolean[] intsPersistence;
|
|
@ObfuscatedName("w")
|
|
@Export("map")
|
|
Map map;
|
|
@ObfuscatedName("o")
|
|
@Export("strings")
|
|
String[] strings;
|
|
@ObfuscatedName("u")
|
|
@Export("unwrittenChanges")
|
|
boolean unwrittenChanges;
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedGetter(
|
|
longValue = 4836824701467349417L
|
|
)
|
|
@Export("lastWriteTimeMs")
|
|
long lastWriteTimeMs;
|
|
|
|
Varcs() {
|
|
this.unwrittenChanges = false;
|
|
int var1 = ObjectSound.indexCache2.__s_396(19);
|
|
this.map = new HashMap();
|
|
this.intsPersistence = new boolean[var1];
|
|
|
|
int var2;
|
|
for(var2 = 0; var2 < var1; ++var2) {
|
|
VarcInt var3 = AbstractByteArrayCopier.method4021(var2);
|
|
this.intsPersistence[var2] = var3.persist;
|
|
}
|
|
|
|
var2 = 0;
|
|
if(ObjectSound.indexCache2.__df_408(15)) {
|
|
var2 = ObjectSound.indexCache2.__s_396(15);
|
|
}
|
|
|
|
this.strings = new String[var2];
|
|
this.read();
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(III)V",
|
|
garbageValue = "920518911"
|
|
)
|
|
@Export("setInt")
|
|
void setInt(int var1, int var2) {
|
|
this.map.put(Integer.valueOf(var1), Integer.valueOf(var2));
|
|
if(this.intsPersistence[var1]) {
|
|
this.unwrittenChanges = true;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedSignature(
|
|
signature = "(IB)I",
|
|
garbageValue = "6"
|
|
)
|
|
@Export("getInt")
|
|
int getInt(int var1) {
|
|
Object var2 = this.map.get(Integer.valueOf(var1));
|
|
return var2 instanceof Integer?((Integer)var2).intValue():-1;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILjava/lang/String;I)V",
|
|
garbageValue = "12847051"
|
|
)
|
|
@Export("setString")
|
|
void setString(int var1, String var2) {
|
|
this.map.put(Integer.valueOf(var1), var2);
|
|
}
|
|
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)Ljava/lang/String;",
|
|
garbageValue = "897961099"
|
|
)
|
|
@Export("getString")
|
|
String getString(int var1) {
|
|
Object var2 = this.map.get(Integer.valueOf(var1));
|
|
return var2 instanceof String?(String)var2:"";
|
|
}
|
|
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILjava/lang/String;B)V",
|
|
garbageValue = "15"
|
|
)
|
|
@Export("setStringOld")
|
|
void setStringOld(int var1, String var2) {
|
|
this.strings[var1] = var2;
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(IB)Ljava/lang/String;",
|
|
garbageValue = "0"
|
|
)
|
|
@Export("getStringOld")
|
|
String getStringOld(int var1) {
|
|
return this.strings[var1];
|
|
}
|
|
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "-1668901140"
|
|
)
|
|
@Export("clearTransient")
|
|
void clearTransient() {
|
|
int var1;
|
|
for(var1 = 0; var1 < this.intsPersistence.length; ++var1) {
|
|
if(!this.intsPersistence[var1]) {
|
|
this.map.remove(Integer.valueOf(var1));
|
|
}
|
|
}
|
|
|
|
for(var1 = 0; var1 < this.strings.length; ++var1) {
|
|
this.strings[var1] = null;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("l")
|
|
@ObfuscatedSignature(
|
|
signature = "(ZB)Ldk;",
|
|
garbageValue = "8"
|
|
)
|
|
@Export("getPreferencesFile")
|
|
AccessFile getPreferencesFile(boolean var1) {
|
|
return LoginPacket.getPreferencesFile("2", class22.studioGame.name, var1);
|
|
}
|
|
|
|
@ObfuscatedName("e")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "370223063"
|
|
)
|
|
@Export("write")
|
|
void write() {
|
|
AccessFile var1 = this.getPreferencesFile(true);
|
|
|
|
try {
|
|
int var2 = 3;
|
|
int var3 = 0;
|
|
Iterator var4 = this.map.entrySet().iterator();
|
|
|
|
while(var4.hasNext()) {
|
|
Entry var5 = (Entry)var4.next();
|
|
int var6 = ((Integer)var5.getKey()).intValue();
|
|
if(this.intsPersistence[var6]) {
|
|
Object var7 = var5.getValue();
|
|
var2 += 3;
|
|
if(var7 instanceof Integer) {
|
|
var2 += 4;
|
|
} else if(var7 instanceof String) {
|
|
var2 += WorldMapRegion.method550((String)var7);
|
|
}
|
|
|
|
++var3;
|
|
}
|
|
}
|
|
|
|
Buffer var32 = new Buffer(var2);
|
|
var32.writeByte(2);
|
|
var32.writeShort(var3);
|
|
Iterator var33 = this.map.entrySet().iterator();
|
|
|
|
label185:
|
|
while(true) {
|
|
Entry var20;
|
|
int var21;
|
|
do {
|
|
if(!var33.hasNext()) {
|
|
var1.write(var32.array, 0, var32.index);
|
|
break label185;
|
|
}
|
|
|
|
var20 = (Entry)var33.next();
|
|
var21 = ((Integer)var20.getKey()).intValue();
|
|
} while(!this.intsPersistence[var21]);
|
|
|
|
var32.writeShort(var21);
|
|
Object var8 = var20.getValue();
|
|
Class var10 = var8.getClass();
|
|
class3[] var11 = class3.method34();
|
|
int var12 = 0;
|
|
|
|
class3 var9;
|
|
while(true) {
|
|
if(var12 >= var11.length) {
|
|
var9 = null;
|
|
break;
|
|
}
|
|
|
|
class3 var13 = var11[var12];
|
|
if(var10 == var13.field18) {
|
|
var9 = var13;
|
|
break;
|
|
}
|
|
|
|
++var12;
|
|
}
|
|
|
|
var32.writeByte(var9.field17);
|
|
Class var34 = var8.getClass();
|
|
class3[] var15 = class3.method34();
|
|
int var16 = 0;
|
|
|
|
class3 var14;
|
|
while(true) {
|
|
if(var16 >= var15.length) {
|
|
var14 = null;
|
|
break;
|
|
}
|
|
|
|
class3 var17 = var15[var16];
|
|
if(var34 == var17.field18) {
|
|
var14 = var17;
|
|
break;
|
|
}
|
|
|
|
++var16;
|
|
}
|
|
|
|
if(var14 == null) {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
|
|
class0 var22 = var14.field19;
|
|
var22.vmethod44(var8, var32);
|
|
}
|
|
} catch (Exception var30) {
|
|
;
|
|
} finally {
|
|
try {
|
|
var1.close();
|
|
} catch (Exception var29) {
|
|
;
|
|
}
|
|
|
|
}
|
|
|
|
this.unwrittenChanges = false;
|
|
this.lastWriteTimeMs = class203.currentTimeMs();
|
|
}
|
|
|
|
@ObfuscatedName("x")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "1824591047"
|
|
)
|
|
@Export("read")
|
|
void read() {
|
|
AccessFile var1 = this.getPreferencesFile(false);
|
|
|
|
label215: {
|
|
try {
|
|
byte[] var2 = new byte[(int)var1.length()];
|
|
|
|
int var4;
|
|
for(int var3 = 0; var3 < var2.length; var3 += var4) {
|
|
var4 = var1.read(var2, var3, var2.length - var3);
|
|
if(var4 == -1) {
|
|
throw new EOFException();
|
|
}
|
|
}
|
|
|
|
Buffer var14 = new Buffer(var2);
|
|
if(var14.array.length - var14.index >= 1) {
|
|
int var15 = var14.readUnsignedByte();
|
|
if(var15 < 0 || var15 > 2) {
|
|
return;
|
|
}
|
|
|
|
int var7;
|
|
int var8;
|
|
int var9;
|
|
int var16;
|
|
if(var15 >= 2) {
|
|
var16 = var14.__ag_302();
|
|
var7 = 0;
|
|
|
|
while(true) {
|
|
if(var7 >= var16) {
|
|
break label215;
|
|
}
|
|
|
|
var8 = var14.__ag_302();
|
|
var9 = var14.readUnsignedByte();
|
|
class3 var10 = (class3)ScriptFrame.findEnumerated(class3.method34(), var9);
|
|
Object var11 = var10.method31(var14);
|
|
if(this.intsPersistence[var8]) {
|
|
this.map.put(Integer.valueOf(var8), var11);
|
|
}
|
|
|
|
++var7;
|
|
}
|
|
} else {
|
|
var16 = var14.__ag_302();
|
|
|
|
for(var7 = 0; var7 < var16; ++var7) {
|
|
var8 = var14.__ag_302();
|
|
var9 = var14.readInt();
|
|
if(this.intsPersistence[var8]) {
|
|
this.map.put(Integer.valueOf(var8), Integer.valueOf(var9));
|
|
}
|
|
}
|
|
|
|
var7 = var14.__ag_302();
|
|
var8 = 0;
|
|
|
|
while(true) {
|
|
if(var8 >= var7) {
|
|
break label215;
|
|
}
|
|
|
|
var14.__ag_302();
|
|
var14.readStringCp1252NullTerminated();
|
|
++var8;
|
|
}
|
|
}
|
|
}
|
|
} catch (Exception var25) {
|
|
break label215;
|
|
} finally {
|
|
try {
|
|
var1.close();
|
|
} catch (Exception var24) {
|
|
;
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
this.unwrittenChanges = false;
|
|
}
|
|
|
|
@ObfuscatedName("d")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "26563322"
|
|
)
|
|
@Export("tryWrite")
|
|
void tryWrite() {
|
|
if(this.unwrittenChanges && this.lastWriteTimeMs < class203.currentTimeMs() - 60000L) {
|
|
this.write();
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("a")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)Z",
|
|
garbageValue = "1171297883"
|
|
)
|
|
@Export("hasUnwrittenChanges")
|
|
boolean hasUnwrittenChanges() {
|
|
return this.unwrittenChanges;
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lir;I)V",
|
|
garbageValue = "321265868"
|
|
)
|
|
public static void method2160(AbstractIndexCache var0) {
|
|
OverlayDefinition.__jf_m = var0;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "([BIIII[Lfy;I)V",
|
|
garbageValue = "1119202993"
|
|
)
|
|
static final void method2166(byte[] var0, int var1, int var2, int var3, int var4, CollisionMap[] var5) {
|
|
int var7;
|
|
int var8;
|
|
for(int var6 = 0; var6 < 4; ++var6) {
|
|
for(var7 = 0; var7 < 64; ++var7) {
|
|
for(var8 = 0; var8 < 64; ++var8) {
|
|
if(var7 + var1 > 0 && var7 + var1 < 103 && var8 + var2 > 0 && var8 + var2 < 103) {
|
|
var5[var6].flags[var7 + var1][var8 + var2] &= -16777217;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Buffer var10 = new Buffer(var0);
|
|
|
|
for(var7 = 0; var7 < 4; ++var7) {
|
|
for(var8 = 0; var8 < 64; ++var8) {
|
|
for(int var9 = 0; var9 < 64; ++var9) {
|
|
TotalQuantityComparator.loadTerrain(var10, var7, var8 + var1, var9 + var2, var3, var4, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("x")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lho;IIII)V",
|
|
garbageValue = "1592367053"
|
|
)
|
|
static final void method2168(Widget var0, int var1, int var2, int var3) {
|
|
if(var0.__cc == null) {
|
|
throw new RuntimeException();
|
|
} else {
|
|
var0.__cc[var1] = var2;
|
|
var0.__ci[var1] = var3;
|
|
}
|
|
}
|
|
}
|