Renamed JS5 fields/methods

This commit is contained in:
Pazaz 2022-06-27 14:51:45 -04:00
parent 7ffd30e31c
commit bd10ece252
21 changed files with 539 additions and 542 deletions

View file

@ -155,14 +155,14 @@ public final class DelayedStateChange extends SecondaryNode {
@OriginalMember(owner = "client!k", name = "a", descriptor = "(B)Lclient!da;") @OriginalMember(owner = "client!k", name = "a", descriptor = "(B)Lclient!da;")
public static DelayedStateChange poll() { public static DelayedStateChange poll() {
@Pc(10) DelayedStateChange local10 = (DelayedStateChange) serverQueue.method795(); @Pc(10) DelayedStateChange local10 = (DelayedStateChange) serverQueue.head();
if (local10 != null) { if (local10 != null) {
local10.unlink(); local10.unlink();
local10.method4365(); local10.unlinkSecondary();
return local10; return local10;
} }
do { do {
local10 = (DelayedStateChange) clientQueue.method795(); local10 = (DelayedStateChange) clientQueue.head();
if (local10 == null) { if (local10 == null) {
return null; return null;
} }
@ -170,7 +170,7 @@ public final class DelayedStateChange extends SecondaryNode {
return null; return null;
} }
local10.unlink(); local10.unlink();
local10.method4365(); local10.unlinkSecondary();
} while ((Long.MIN_VALUE & local10.secondaryKey) == 0L); } while ((Long.MIN_VALUE & local10.secondaryKey) == 0L);
return local10; return local10;
} }

View file

@ -44,8 +44,8 @@ public final class Js5 {
return false; return false;
} }
@Pc(20) boolean success = true; @Pc(20) boolean success = true;
for (@Pc(22) int i = 0; i < this.index.anIntArray269.length; i++) { for (@Pc(22) int i = 0; i < this.index.groupIds.length; i++) {
@Pc(38) int groupId = this.index.anIntArray269[i]; @Pc(38) int groupId = this.index.groupIds[i];
if (this.packed[groupId] == null) { if (this.packed[groupId] == null) {
this.fetchGroup(groupId); this.fetchGroup(groupId);
if (this.packed[groupId] == null) { if (this.packed[groupId] == null) {

View file

@ -9,123 +9,119 @@ import org.openrs2.deob.annotation.Pc;
public final class Js5CacheQueue implements Runnable { public final class Js5CacheQueue implements Runnable {
@OriginalMember(owner = "client!k", name = "q", descriptor = "Lclient!ce;") @OriginalMember(owner = "client!k", name = "q", descriptor = "Lclient!ce;")
private final SecondaryLinkedList aClass16_6 = new SecondaryLinkedList(); private final SecondaryLinkedList queue = new SecondaryLinkedList();
@OriginalMember(owner = "client!k", name = "s", descriptor = "I") @OriginalMember(owner = "client!k", name = "s", descriptor = "I")
public int anInt3131 = 0; public int size = 0;
@OriginalMember(owner = "client!k", name = "w", descriptor = "Z") @OriginalMember(owner = "client!k", name = "w", descriptor = "Z")
private boolean aBoolean161 = false; private boolean stop = false;
@OriginalMember(owner = "client!k", name = "v", descriptor = "Ljava/lang/Thread;") @OriginalMember(owner = "client!k", name = "v", descriptor = "Ljava/lang/Thread;")
private Thread aThread2; private Thread thread;
@OriginalMember(owner = "client!k", name = "<init>", descriptor = "()V") @OriginalMember(owner = "client!k", name = "<init>", descriptor = "()V")
public Js5CacheQueue() { public Js5CacheQueue() {
@Pc(20) PrivilegedRequest local20 = GameShell.signLink.startThread(5, this); @Pc(20) PrivilegedRequest request = GameShell.signLink.startThread(5, this);
while (local20.status == 0) { while (request.status == 0) {
ThreadUtils.sleep(10L); ThreadUtils.sleep(10L);
} }
if (local20.status == 2) { if (request.status == 2) {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aThread2 = (Thread) local20.result; this.thread = (Thread) request.result;
} }
@OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!c;I)V") @OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!c;I)V")
private void method2461(@OriginalArg(0) Js5CacheRequest arg0) { private void enqueue(@OriginalArg(0) Js5CacheRequest arg0) {
@Pc(7) SecondaryLinkedList local7 = this.aClass16_6; synchronized (this.queue) {
synchronized (this.aClass16_6) { this.queue.addTail(arg0);
this.aClass16_6.addTail(arg0); this.size++;
this.anInt3131++; this.queue.notifyAll();
this.aClass16_6.notifyAll();
} }
} }
@OriginalMember(owner = "client!k", name = "a", descriptor = "(I)V") @OriginalMember(owner = "client!k", name = "a", descriptor = "(I)V")
public final void quit() { public final void quit() {
this.aBoolean161 = true; this.stop = true;
@Pc(6) SecondaryLinkedList local6 = this.aClass16_6; synchronized (this.queue) {
synchronized (this.aClass16_6) { this.queue.notifyAll();
this.aClass16_6.notifyAll();
} }
try { try {
this.aThread2.join(); this.thread.join();
} catch (@Pc(23) InterruptedException local23) { } catch (@Pc(23) InterruptedException ignored) {
} }
this.aThread2 = null; this.thread = null;
} }
@OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!ge;I[BI)Lclient!c;") @OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!ge;I[BI)Lclient!c;")
public final Js5CacheRequest method2467(@OriginalArg(0) Cache arg0, @OriginalArg(2) byte[] arg1, @OriginalArg(3) int arg2) { public final Js5CacheRequest write(@OriginalArg(0) Cache arg0, @OriginalArg(2) byte[] arg1, @OriginalArg(3) int arg2) {
@Pc(7) Js5CacheRequest local7 = new Js5CacheRequest(); @Pc(7) Js5CacheRequest request = new Js5CacheRequest();
local7.aByteArray11 = arg1; request.data = arg1;
local7.aBoolean225 = false; request.urgent = false;
local7.secondaryKey = arg2; request.secondaryKey = arg2;
local7.aClass49_3 = arg0; request.cache = arg0;
local7.anInt824 = 2; request.type = 2;
this.method2461(local7); this.enqueue(request);
return local7; return request;
} }
@OriginalMember(owner = "client!k", name = "a", descriptor = "(IILclient!ge;)Lclient!c;") @OriginalMember(owner = "client!k", name = "a", descriptor = "(IILclient!ge;)Lclient!c;")
public final Js5CacheRequest method2469(@OriginalArg(0) int arg0, @OriginalArg(2) Cache arg1) { public final Js5CacheRequest read(@OriginalArg(0) int arg0, @OriginalArg(2) Cache arg1) {
@Pc(7) Js5CacheRequest local7 = new Js5CacheRequest(); @Pc(7) Js5CacheRequest local7 = new Js5CacheRequest();
local7.aClass49_3 = arg1; local7.cache = arg1;
local7.anInt824 = 3; local7.type = 3;
local7.aBoolean225 = false; local7.urgent = false;
local7.secondaryKey = arg0; local7.secondaryKey = arg0;
this.method2461(local7); this.enqueue(local7);
return local7; return local7;
} }
@OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!ge;BI)Lclient!c;") @OriginalMember(owner = "client!k", name = "a", descriptor = "(Lclient!ge;BI)Lclient!c;")
public final Js5CacheRequest method2471(@OriginalArg(0) Cache arg0, @OriginalArg(2) int arg1) { public final Js5CacheRequest readSynchronous(@OriginalArg(0) Cache arg0, @OriginalArg(2) int arg1) {
@Pc(9) Js5CacheRequest local9 = new Js5CacheRequest(); @Pc(9) Js5CacheRequest local9 = new Js5CacheRequest();
local9.anInt824 = 1; local9.type = 1;
@Pc(16) SecondaryLinkedList local16 = this.aClass16_6; synchronized (this.queue) {
synchronized (this.aClass16_6) { @Pc(31) Js5CacheRequest local31 = (Js5CacheRequest) this.queue.head();
@Pc(31) Js5CacheRequest local31 = (Js5CacheRequest) this.aClass16_6.method795();
while (true) { while (true) {
if (local31 == null) { if (local31 == null) {
break; break;
} }
if (local31.secondaryKey == (long) arg1 && local31.aClass49_3 == arg0 && local31.anInt824 == 2) { if (local31.secondaryKey == (long) arg1 && local31.cache == arg0 && local31.type == 2) {
local9.aByteArray11 = local31.aByteArray11; local9.data = local31.data;
local9.incomplete = false; local9.incomplete = false;
return local9; return local9;
} }
local31 = (Js5CacheRequest) this.aClass16_6.method797(); local31 = (Js5CacheRequest) this.queue.next();
} }
} }
local9.aByteArray11 = arg0.read(arg1); local9.data = arg0.read(arg1);
local9.incomplete = false; local9.incomplete = false;
local9.aBoolean225 = true; local9.urgent = true;
return local9; return local9;
} }
@OriginalMember(owner = "client!k", name = "run", descriptor = "()V") @OriginalMember(owner = "client!k", name = "run", descriptor = "()V")
@Override @Override
public final void run() { public final void run() {
while (!this.aBoolean161) { while (!this.stop) {
@Pc(12) SecondaryLinkedList local12 = this.aClass16_6;
@Pc(19) Js5CacheRequest local19; @Pc(19) Js5CacheRequest local19;
synchronized (this.aClass16_6) { synchronized (this.queue) {
local19 = (Js5CacheRequest) this.aClass16_6.method796(); local19 = (Js5CacheRequest) this.queue.removeHead();
if (local19 == null) { if (local19 == null) {
try { try {
this.aClass16_6.wait(); this.queue.wait();
} catch (@Pc(35) InterruptedException local35) { } catch (@Pc(35) InterruptedException ignored) {
} }
continue; continue;
} }
this.anInt3131--; this.size--;
} }
try { try {
if (local19.anInt824 == 2) { if (local19.type == 2) {
local19.aClass49_3.write((int) local19.secondaryKey, local19.aByteArray11.length, local19.aByteArray11); local19.cache.write((int) local19.secondaryKey, local19.data.length, local19.data);
} else if (local19.anInt824 == 3) { } else if (local19.type == 3) {
local19.aByteArray11 = local19.aClass49_3.read((int) local19.secondaryKey); local19.data = local19.cache.read((int) local19.secondaryKey);
} }
} catch (@Pc(83) Exception local83) { } catch (@Pc(83) Exception local83) {
TracingException.report(null, local83); TracingException.report(null, local83);

View file

@ -7,13 +7,13 @@ import org.openrs2.deob.annotation.OriginalMember;
public final class Js5CacheRequest extends Js5Request { public final class Js5CacheRequest extends Js5Request {
@OriginalMember(owner = "client!c", name = "X", descriptor = "Lclient!ge;") @OriginalMember(owner = "client!c", name = "X", descriptor = "Lclient!ge;")
public Cache aClass49_3; public Cache cache;
@OriginalMember(owner = "client!c", name = "ab", descriptor = "[B") @OriginalMember(owner = "client!c", name = "ab", descriptor = "[B")
public byte[] aByteArray11; public byte[] data;
@OriginalMember(owner = "client!c", name = "cb", descriptor = "I") @OriginalMember(owner = "client!c", name = "cb", descriptor = "I")
public int anInt824; public int type;
@OriginalMember(owner = "client!c", name = "b", descriptor = "(Z)[B") @OriginalMember(owner = "client!c", name = "b", descriptor = "(Z)[B")
@Override @Override
@ -21,12 +21,12 @@ public final class Js5CacheRequest extends Js5Request {
if (this.incomplete) { if (this.incomplete) {
throw new RuntimeException(); throw new RuntimeException();
} }
return this.aByteArray11; return this.data;
} }
@OriginalMember(owner = "client!c", name = "a", descriptor = "(Z)I") @OriginalMember(owner = "client!c", name = "a", descriptor = "(Z)I")
@Override @Override
public final int method3553() { public final int getPercentageComplete() {
return this.incomplete ? 0 : 100; return this.incomplete ? 0 : 100;
} }
} }

View file

@ -11,134 +11,134 @@ import java.util.zip.CRC32;
public final class Js5CachedResourceProvider extends Js5ResourceProvider { public final class Js5CachedResourceProvider extends Js5ResourceProvider {
@OriginalMember(owner = "client!fn", name = "X", descriptor = "Ljava/util/zip/CRC32;") @OriginalMember(owner = "client!fn", name = "X", descriptor = "Ljava/util/zip/CRC32;")
public static final CRC32 aCRC32_1 = new CRC32(); public static final CRC32 crc32 = new CRC32();
@OriginalMember(owner = "client!bg", name = "m", descriptor = "Lclient!ii;") @OriginalMember(owner = "client!bg", name = "m", descriptor = "Lclient!ii;")
private Js5Index aClass70_1; private Js5Index index;
@OriginalMember(owner = "client!bg", name = "w", descriptor = "[B") @OriginalMember(owner = "client!bg", name = "w", descriptor = "[B")
private byte[] aByteArray9; private byte[] groupStatus;
@OriginalMember(owner = "client!bg", name = "T", descriptor = "Z") @OriginalMember(owner = "client!bg", name = "T", descriptor = "Z")
private boolean aBoolean36; private boolean prefetchAll;
@OriginalMember(owner = "client!bg", name = "u", descriptor = "I") @OriginalMember(owner = "client!bg", name = "u", descriptor = "I")
private int anInt567 = 0; private int verifiedGroups = 0;
@OriginalMember(owner = "client!bg", name = "p", descriptor = "Lclient!sc;") @OriginalMember(owner = "client!bg", name = "p", descriptor = "Lclient!sc;")
private final HashTable aClass133_1 = new HashTable(16); private final HashTable requests = new HashTable(16);
@OriginalMember(owner = "client!bg", name = "S", descriptor = "I") @OriginalMember(owner = "client!bg", name = "S", descriptor = "I")
private int anInt578 = 0; private int group = 0;
@OriginalMember(owner = "client!bg", name = "R", descriptor = "Lclient!ih;") @OriginalMember(owner = "client!bg", name = "R", descriptor = "Lclient!ih;")
private final LinkedList aClass69_16 = new LinkedList(); private final LinkedList prefetchQueue = new LinkedList();
@OriginalMember(owner = "client!bg", name = "V", descriptor = "J") @OriginalMember(owner = "client!bg", name = "V", descriptor = "J")
private long aLong20 = 0L; private long orphanCheckTime = 0L;
@OriginalMember(owner = "client!bg", name = "L", descriptor = "I") @OriginalMember(owner = "client!bg", name = "L", descriptor = "I")
private final int anInt576; private final int archive;
@OriginalMember(owner = "client!bg", name = "F", descriptor = "Lclient!ge;") @OriginalMember(owner = "client!bg", name = "F", descriptor = "Lclient!ge;")
private final Cache aClass49_2; private final Cache cache;
@OriginalMember(owner = "client!bg", name = "Q", descriptor = "Z") @OriginalMember(owner = "client!bg", name = "Q", descriptor = "Z")
private boolean aBoolean35; private boolean verifyAll;
@OriginalMember(owner = "client!bg", name = "U", descriptor = "Lclient!ih;") @OriginalMember(owner = "client!bg", name = "U", descriptor = "Lclient!ih;")
private LinkedList aClass69_17; private LinkedList groupQueue;
@OriginalMember(owner = "client!bg", name = "J", descriptor = "Lclient!k;") @OriginalMember(owner = "client!bg", name = "J", descriptor = "Lclient!k;")
private final Js5CacheQueue aClass80_2; private final Js5CacheQueue cacheQueue;
@OriginalMember(owner = "client!bg", name = "H", descriptor = "I") @OriginalMember(owner = "client!bg", name = "H", descriptor = "I")
private final int anInt573; private final int expectedChecksum;
@OriginalMember(owner = "client!bg", name = "W", descriptor = "Z") @OriginalMember(owner = "client!bg", name = "W", descriptor = "Z")
private final boolean aBoolean37; private final boolean discardOrphans;
@OriginalMember(owner = "client!bg", name = "k", descriptor = "Lclient!ge;") @OriginalMember(owner = "client!bg", name = "k", descriptor = "Lclient!ge;")
private final Cache aClass49_1; private final Cache masterCache;
@OriginalMember(owner = "client!bg", name = "D", descriptor = "Lclient!jb;") @OriginalMember(owner = "client!bg", name = "D", descriptor = "Lclient!jb;")
private final Js5NetQueue aClass73_2; private final Js5NetQueue netQueue;
@OriginalMember(owner = "client!bg", name = "t", descriptor = "I") @OriginalMember(owner = "client!bg", name = "t", descriptor = "I")
private final int anInt566; private final int expectedVersion;
@OriginalMember(owner = "client!bg", name = "x", descriptor = "Lclient!il;") @OriginalMember(owner = "client!bg", name = "x", descriptor = "Lclient!il;")
private Js5Request aClass3_Sub2_Sub5_1; private Js5Request indexRequest;
@OriginalMember(owner = "client!bg", name = "<init>", descriptor = "(ILclient!ge;Lclient!ge;Lclient!jb;Lclient!k;IIZ)V") @OriginalMember(owner = "client!bg", name = "<init>", descriptor = "(ILclient!ge;Lclient!ge;Lclient!jb;Lclient!k;IIZ)V")
public Js5CachedResourceProvider(@OriginalArg(0) int arg0, @OriginalArg(1) Cache arg1, @OriginalArg(2) Cache arg2, @OriginalArg(3) Js5NetQueue arg3, @OriginalArg(4) Js5CacheQueue arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) boolean arg7) { public Js5CachedResourceProvider(@OriginalArg(0) int archive, @OriginalArg(1) Cache cache, @OriginalArg(2) Cache masterCache, @OriginalArg(3) Js5NetQueue netQueue, @OriginalArg(4) Js5CacheQueue cacheQueue, @OriginalArg(5) int expectedChecksum, @OriginalArg(6) int expectedVersion, @OriginalArg(7) boolean discardOrphans) {
this.anInt576 = arg0; this.archive = archive;
this.aClass49_2 = arg1; this.cache = cache;
if (this.aClass49_2 == null) { if (this.cache == null) {
this.aBoolean35 = false; this.verifyAll = false;
} else { } else {
this.aBoolean35 = true; this.verifyAll = true;
this.aClass69_17 = new LinkedList(); this.groupQueue = new LinkedList();
} }
this.aClass80_2 = arg4; this.cacheQueue = cacheQueue;
this.anInt573 = arg5; this.expectedChecksum = expectedChecksum;
this.aBoolean37 = arg7; this.discardOrphans = discardOrphans;
this.aClass49_1 = arg2; this.masterCache = masterCache;
this.aClass73_2 = arg3; this.netQueue = netQueue;
this.anInt566 = arg6; this.expectedVersion = expectedVersion;
if (this.aClass49_1 != null) { if (this.masterCache != null) {
this.aClass3_Sub2_Sub5_1 = this.aClass80_2.method2471(this.aClass49_1, this.anInt576); this.indexRequest = this.cacheQueue.readSynchronous(this.masterCache, this.archive);
} }
} }
@OriginalMember(owner = "client!bg", name = "a", descriptor = "(II)V") @OriginalMember(owner = "client!bg", name = "a", descriptor = "(II)V")
@Override @Override
public final void prefetchGroup(@OriginalArg(0) int arg0) { public final void prefetchGroup(@OriginalArg(0) int arg0) {
if (this.aClass49_2 == null) { if (this.cache == null) {
return; return;
} }
@Pc(15) Node local15; @Pc(15) Node node;
for (local15 = this.aClass69_16.head(); local15 != null; local15 = this.aClass69_16.next()) { for (node = this.prefetchQueue.head(); node != null; node = this.prefetchQueue.next()) {
if (local15.key == (long) arg0) { if (node.key == (long) arg0) {
return; return;
} }
} }
local15 = new Node(); node = new Node();
local15.key = arg0; node.key = arg0;
this.aClass69_16.addTail(local15); this.prefetchQueue.addTail(node);
} }
@OriginalMember(owner = "client!bg", name = "b", descriptor = "(I)Lclient!ii;") @OriginalMember(owner = "client!bg", name = "b", descriptor = "(I)Lclient!ii;")
@Override @Override
public final Js5Index fetchIndex() { public final Js5Index fetchIndex() {
if (this.aClass70_1 != null) { if (this.index != null) {
return this.aClass70_1; return this.index;
} }
if (this.aClass3_Sub2_Sub5_1 == null) { if (this.indexRequest == null) {
if (this.aClass73_2.isUrgentRequestQueueFull()) { if (this.netQueue.isUrgentRequestQueueFull()) {
return null; return null;
} }
this.aClass3_Sub2_Sub5_1 = this.aClass73_2.read(255, (byte) 0, this.anInt576, true); this.indexRequest = this.netQueue.read(255, (byte) 0, this.archive, true);
} }
if (this.aClass3_Sub2_Sub5_1.incomplete) { if (this.indexRequest.incomplete) {
return null; return null;
} }
@Pc(52) byte[] local52 = this.aClass3_Sub2_Sub5_1.getData(); @Pc(52) byte[] local52 = this.indexRequest.getData();
if (this.aClass3_Sub2_Sub5_1 instanceof Js5CacheRequest) { if (this.indexRequest instanceof Js5CacheRequest) {
try { try {
if (local52 == null) { if (local52 == null) {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aClass70_1 = new Js5Index(local52, this.anInt573); this.index = new Js5Index(local52, this.expectedChecksum);
if (this.anInt566 != this.aClass70_1.anInt2908) { if (this.expectedVersion != this.index.version) {
throw new RuntimeException(); throw new RuntimeException();
} }
} catch (@Pc(88) RuntimeException local88) { } catch (@Pc(88) RuntimeException local88) {
this.aClass70_1 = null; this.index = null;
if (this.aClass73_2.isUrgentRequestQueueFull()) { if (this.netQueue.isUrgentRequestQueueFull()) {
this.aClass3_Sub2_Sub5_1 = null; this.indexRequest = null;
} else { } else {
this.aClass3_Sub2_Sub5_1 = this.aClass73_2.read(255, (byte) 0, this.anInt576, true); this.indexRequest = this.netQueue.read(255, (byte) 0, this.archive, true);
} }
return null; return null;
} }
@ -147,210 +147,210 @@ public final class Js5CachedResourceProvider extends Js5ResourceProvider {
if (local52 == null) { if (local52 == null) {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aClass70_1 = new Js5Index(local52, this.anInt573); this.index = new Js5Index(local52, this.expectedChecksum);
} catch (@Pc(131) RuntimeException local131) { } catch (@Pc(131) RuntimeException ignored) {
this.aClass73_2.method2327(); this.netQueue.rekey();
this.aClass70_1 = null; this.index = null;
if (this.aClass73_2.isUrgentRequestQueueFull()) { if (this.netQueue.isUrgentRequestQueueFull()) {
this.aClass3_Sub2_Sub5_1 = null; this.indexRequest = null;
} else { } else {
this.aClass3_Sub2_Sub5_1 = this.aClass73_2.read(255, (byte) 0, this.anInt576, true); this.indexRequest = this.netQueue.read(255, (byte) 0, this.archive, true);
} }
return null; return null;
} }
if (this.aClass49_1 != null) { if (this.masterCache != null) {
this.aClass80_2.method2467(this.aClass49_1, local52, this.anInt576); this.cacheQueue.write(this.masterCache, local52, this.archive);
} }
} }
if (this.aClass49_2 != null) { if (this.cache != null) {
this.aByteArray9 = new byte[this.aClass70_1.capacity]; this.groupStatus = new byte[this.index.capacity];
this.anInt567 = 0; this.verifiedGroups = 0;
} }
this.aClass3_Sub2_Sub5_1 = null; this.indexRequest = null;
return this.aClass70_1; return this.index;
} }
@OriginalMember(owner = "client!bg", name = "a", descriptor = "(Z)V") @OriginalMember(owner = "client!bg", name = "a", descriptor = "(Z)V")
public final void prefetchAll() { public final void prefetchAll() {
if (this.aClass49_2 != null) { if (this.cache != null) {
this.aBoolean36 = true; this.prefetchAll = true;
if (this.aClass69_17 == null) { if (this.groupQueue == null) {
this.aClass69_17 = new LinkedList(); this.groupQueue = new LinkedList();
} }
} }
} }
@OriginalMember(owner = "client!bg", name = "c", descriptor = "(I)I") @OriginalMember(owner = "client!bg", name = "c", descriptor = "(I)I")
public final int method529() { public final int getVerifiedGroups() {
return this.anInt567; return this.verifiedGroups;
} }
@OriginalMember(owner = "client!bg", name = "d", descriptor = "(I)I") @OriginalMember(owner = "client!bg", name = "d", descriptor = "(I)I")
public final int method533() { public final int getTotalVerifiedGroups() {
if (this.aClass70_1 == null) { if (this.index == null) {
return 0; return 0;
} else if (this.aBoolean35) { } else if (this.verifyAll) {
@Pc(25) Node local25 = this.aClass69_17.head(); @Pc(25) Node node = this.groupQueue.head();
return local25 == null ? 0 : (int) local25.key; return node == null ? 0 : (int) node.key;
} else { } else {
return this.aClass70_1.anInt2902; return this.index.size;
} }
} }
@OriginalMember(owner = "client!bg", name = "c", descriptor = "(Z)V") @OriginalMember(owner = "client!bg", name = "c", descriptor = "(Z)V")
public final void method534() { public final void loop() {
if (this.aClass69_17 != null) { if (this.groupQueue != null) {
if (this.fetchIndex() == null) { if (this.fetchIndex() == null) {
return; return;
} }
@Pc(32) boolean local32; @Pc(32) boolean local32;
@Pc(37) Node local37; @Pc(37) Node local37;
@Pc(43) int local43; @Pc(43) int local43;
if (this.aBoolean35) { if (this.verifyAll) {
local32 = true; local32 = true;
for (local37 = this.aClass69_17.head(); local37 != null; local37 = this.aClass69_17.next()) { for (local37 = this.groupQueue.head(); local37 != null; local37 = this.groupQueue.next()) {
local43 = (int) local37.key; local43 = (int) local37.key;
if (this.aByteArray9[local43] == 0) { if (this.groupStatus[local43] == 0) {
this.method536(1, local43); this.fetchGroupInner(1, local43);
} }
if (this.aByteArray9[local43] == 0) { if (this.groupStatus[local43] == 0) {
local32 = false; local32 = false;
} else { } else {
local37.unlink(); local37.unlink();
} }
} }
while (this.aClass70_1.groupSizes.length > this.anInt578) { while (this.index.groupSizes.length > this.group) {
if (this.aClass70_1.groupSizes[this.anInt578] == 0) { if (this.index.groupSizes[this.group] == 0) {
this.anInt578++; this.group++;
} else { } else {
if (this.aClass80_2.anInt3131 >= 250) { if (this.cacheQueue.size >= 250) {
local32 = false; local32 = false;
break; break;
} }
if (this.aByteArray9[this.anInt578] == 0) { if (this.groupStatus[this.group] == 0) {
this.method536(1, this.anInt578); this.fetchGroupInner(1, this.group);
} }
if (this.aByteArray9[this.anInt578] == 0) { if (this.groupStatus[this.group] == 0) {
local32 = false; local32 = false;
local37 = new Node(); local37 = new Node();
local37.key = this.anInt578; local37.key = this.group;
this.aClass69_17.addTail(local37); this.groupQueue.addTail(local37);
} }
this.anInt578++; this.group++;
} }
} }
if (local32) { if (local32) {
this.aBoolean35 = false; this.verifyAll = false;
this.anInt578 = 0; this.group = 0;
} }
} else if (this.aBoolean36) { } else if (this.prefetchAll) {
local32 = true; local32 = true;
for (local37 = this.aClass69_17.head(); local37 != null; local37 = this.aClass69_17.next()) { for (local37 = this.groupQueue.head(); local37 != null; local37 = this.groupQueue.next()) {
local43 = (int) local37.key; local43 = (int) local37.key;
if (this.aByteArray9[local43] != 1) { if (this.groupStatus[local43] != 1) {
this.method536(2, local43); this.fetchGroupInner(2, local43);
} }
if (this.aByteArray9[local43] == 1) { if (this.groupStatus[local43] == 1) {
local37.unlink(); local37.unlink();
} else { } else {
local32 = false; local32 = false;
} }
} }
while (this.aClass70_1.groupSizes.length > this.anInt578) { while (this.index.groupSizes.length > this.group) {
if (this.aClass70_1.groupSizes[this.anInt578] == 0) { if (this.index.groupSizes[this.group] == 0) {
this.anInt578++; this.group++;
} else { } else {
if (this.aClass73_2.method2316()) { if (this.netQueue.isPrefetchRequestQueueFull()) {
local32 = false; local32 = false;
break; break;
} }
if (this.aByteArray9[this.anInt578] != 1) { if (this.groupStatus[this.group] != 1) {
this.method536(2, this.anInt578); this.fetchGroupInner(2, this.group);
} }
if (this.aByteArray9[this.anInt578] != 1) { if (this.groupStatus[this.group] != 1) {
local37 = new Node(); local37 = new Node();
local37.key = this.anInt578; local37.key = this.group;
this.aClass69_17.addTail(local37); this.groupQueue.addTail(local37);
local32 = false; local32 = false;
} }
this.anInt578++; this.group++;
} }
} }
if (local32) { if (local32) {
this.anInt578 = 0; this.group = 0;
this.aBoolean36 = false; this.prefetchAll = false;
} }
} else { } else {
this.aClass69_17 = null; this.groupQueue = null;
} }
} }
if (!this.aBoolean37 || this.aLong20 > MonotonicClock.currentTimeMillis()) { if (!this.discardOrphans || this.orphanCheckTime > MonotonicClock.currentTimeMillis()) {
return; return;
} }
for (@Pc(331) Js5Request local331 = (Js5Request) this.aClass133_1.head(); local331 != null; local331 = (Js5Request) this.aClass133_1.next()) { for (@Pc(331) Js5Request request = (Js5Request) this.requests.head(); request != null; request = (Js5Request) this.requests.next()) {
if (!local331.incomplete) { if (!request.incomplete) {
if (local331.aBoolean227) { if (request.orphan) {
if (!local331.aBoolean225) { if (!request.urgent) {
throw new RuntimeException(); throw new RuntimeException();
} }
local331.unlink(); request.unlink();
} else { } else {
local331.aBoolean227 = true; request.orphan = true;
} }
} }
} }
this.aLong20 = MonotonicClock.currentTimeMillis() + 1000L; this.orphanCheckTime = MonotonicClock.currentTimeMillis() + 1000L;
} }
@OriginalMember(owner = "client!bg", name = "b", descriptor = "(II)I") @OriginalMember(owner = "client!bg", name = "b", descriptor = "(II)I")
@Override @Override
public final int getPercentageComplete(@OriginalArg(0) int arg0) { public final int getPercentageComplete(@OriginalArg(0) int arg0) {
@Pc(15) Js5Request local15 = (Js5Request) this.aClass133_1.get((long) arg0); @Pc(15) Js5Request request = (Js5Request) this.requests.get((long) arg0);
return local15 == null ? 0 : local15.method3553(); return request == null ? 0 : request.getPercentageComplete();
} }
@OriginalMember(owner = "client!bg", name = "b", descriptor = "(B)I") @OriginalMember(owner = "client!bg", name = "b", descriptor = "(B)I")
public final int method535() { public final int getIndexSize() {
return this.aClass70_1 == null ? 0 : this.aClass70_1.anInt2902; return this.index == null ? 0 : this.index.size;
} }
@OriginalMember(owner = "client!bg", name = "a", descriptor = "(III)Lclient!il;") @OriginalMember(owner = "client!bg", name = "a", descriptor = "(III)Lclient!il;")
private Js5Request method536(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { private Js5Request fetchGroupInner(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) {
@Pc(13) Js5Request local13 = (Js5Request) this.aClass133_1.get((long) arg1); @Pc(13) Js5Request local13 = (Js5Request) this.requests.get((long) arg1);
if (local13 != null && arg0 == 0 && !local13.aBoolean225 && local13.incomplete) { if (local13 != null && arg0 == 0 && !local13.urgent && local13.incomplete) {
local13.unlink(); local13.unlink();
local13 = null; local13 = null;
} }
if (local13 == null) { if (local13 == null) {
if (arg0 == 0) { if (arg0 == 0) {
if (this.aClass49_2 == null || this.aByteArray9[arg1] == -1) { if (this.cache == null || this.groupStatus[arg1] == -1) {
if (this.aClass73_2.isUrgentRequestQueueFull()) { if (this.netQueue.isUrgentRequestQueueFull()) {
return null; return null;
} }
local13 = this.aClass73_2.read(this.anInt576, (byte) 2, arg1, true); local13 = this.netQueue.read(this.archive, (byte) 2, arg1, true);
} else { } else {
local13 = this.aClass80_2.method2471(this.aClass49_2, arg1); local13 = this.cacheQueue.readSynchronous(this.cache, arg1);
} }
} else if (arg0 == 1) { } else if (arg0 == 1) {
if (this.aClass49_2 == null) { if (this.cache == null) {
throw new RuntimeException(); throw new RuntimeException();
} }
local13 = this.aClass80_2.method2469(arg1, this.aClass49_2); local13 = this.cacheQueue.read(arg1, this.cache);
} else if (arg0 == 2) { } else if (arg0 == 2) {
if (this.aClass49_2 == null) { if (this.cache == null) {
throw new RuntimeException(); throw new RuntimeException();
} }
if (this.aByteArray9[arg1] != -1) { if (this.groupStatus[arg1] != -1) {
throw new RuntimeException(); throw new RuntimeException();
} }
if (this.aClass73_2.method2316()) { if (this.netQueue.isPrefetchRequestQueueFull()) {
return null; return null;
} }
local13 = this.aClass73_2.read(this.anInt576, (byte) 2, arg1, false); local13 = this.netQueue.read(this.archive, (byte) 2, arg1, false);
} else { } else {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aClass133_1.put(local13, (long) arg1); this.requests.put(local13, (long) arg1);
} }
if (local13.incomplete) { if (local13.incomplete) {
return null; return null;
@ -363,33 +363,33 @@ public final class Js5CachedResourceProvider extends Js5ResourceProvider {
if (local161 == null || local161.length <= 2) { if (local161 == null || local161.length <= 2) {
throw new RuntimeException(); throw new RuntimeException();
} }
aCRC32_1.reset(); crc32.reset();
aCRC32_1.update(local161, 0, local161.length - 2); crc32.update(local161, 0, local161.length - 2);
local199 = (int) aCRC32_1.getValue(); local199 = (int) crc32.getValue();
if (this.aClass70_1.groupChecksums[arg1] != local199) { if (this.index.groupChecksums[arg1] != local199) {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aClass73_2.errors = 0; this.netQueue.errors = 0;
this.aClass73_2.response = 0; this.netQueue.response = 0;
} catch (@Pc(225) RuntimeException local225) { } catch (@Pc(225) RuntimeException local225) {
this.aClass73_2.method2327(); this.netQueue.rekey();
local13.unlink(); local13.unlink();
if (local13.aBoolean225 && !this.aClass73_2.isUrgentRequestQueueFull()) { if (local13.urgent && !this.netQueue.isUrgentRequestQueueFull()) {
local252 = this.aClass73_2.read(this.anInt576, (byte) 2, arg1, true); local252 = this.netQueue.read(this.archive, (byte) 2, arg1, true);
this.aClass133_1.put(local252, (long) arg1); this.requests.put(local252, (long) arg1);
} }
return null; return null;
} }
local161[local161.length - 2] = (byte) (this.aClass70_1.anIntArray273[arg1] >>> 8); local161[local161.length - 2] = (byte) (this.index.groupVersions[arg1] >>> 8);
local161[local161.length - 1] = (byte) this.aClass70_1.anIntArray273[arg1]; local161[local161.length - 1] = (byte) this.index.groupVersions[arg1];
if (this.aClass49_2 != null) { if (this.cache != null) {
this.aClass80_2.method2467(this.aClass49_2, local161, arg1); this.cacheQueue.write(this.cache, local161, arg1);
if (this.aByteArray9[arg1] != 1) { if (this.groupStatus[arg1] != 1) {
this.anInt567++; this.verifiedGroups++;
this.aByteArray9[arg1] = 1; this.groupStatus[arg1] = 1;
} }
} }
if (!local13.aBoolean225) { if (!local13.urgent) {
local13.unlink(); local13.unlink();
} }
return local13; return local13;
@ -398,54 +398,54 @@ public final class Js5CachedResourceProvider extends Js5ResourceProvider {
if (local161 == null || local161.length <= 2) { if (local161 == null || local161.length <= 2) {
throw new RuntimeException(); throw new RuntimeException();
} }
aCRC32_1.reset(); crc32.reset();
aCRC32_1.update(local161, 0, local161.length - 2); crc32.update(local161, 0, local161.length - 2);
local199 = (int) aCRC32_1.getValue(); local199 = (int) crc32.getValue();
if (this.aClass70_1.groupChecksums[arg1] != local199) { if (this.index.groupChecksums[arg1] != local199) {
throw new RuntimeException(); throw new RuntimeException();
} }
@Pc(385) int local385 = ((local161[local161.length - 2] & 0xFF) << 8) + (local161[local161.length - 1] & 0xFF); @Pc(385) int local385 = ((local161[local161.length - 2] & 0xFF) << 8) + (local161[local161.length - 1] & 0xFF);
if (local385 != (this.aClass70_1.anIntArray273[arg1] & 0xFFFF)) { if (local385 != (this.index.groupVersions[arg1] & 0xFFFF)) {
throw new RuntimeException(); throw new RuntimeException();
} }
if (this.aByteArray9[arg1] != 1) { if (this.groupStatus[arg1] != 1) {
if (this.aByteArray9[arg1] != 0) { if (this.groupStatus[arg1] != 0) {
} }
this.anInt567++; this.verifiedGroups++;
this.aByteArray9[arg1] = 1; this.groupStatus[arg1] = 1;
} }
if (!local13.aBoolean225) { if (!local13.urgent) {
local13.unlink(); local13.unlink();
} }
return local13; return local13;
} catch (@Pc(437) Exception local437) { } catch (@Pc(437) Exception local437) {
this.aByteArray9[arg1] = -1; this.groupStatus[arg1] = -1;
local13.unlink(); local13.unlink();
if (local13.aBoolean225 && !this.aClass73_2.isUrgentRequestQueueFull()) { if (local13.urgent && !this.netQueue.isUrgentRequestQueueFull()) {
local252 = this.aClass73_2.read(this.anInt576, (byte) 2, arg1, true); local252 = this.netQueue.read(this.archive, (byte) 2, arg1, true);
this.aClass133_1.put(local252, (long) arg1); this.requests.put(local252, (long) arg1);
} }
return null; return null;
} }
} }
@OriginalMember(owner = "client!bg", name = "e", descriptor = "(I)V") @OriginalMember(owner = "client!bg", name = "e", descriptor = "(I)V")
public final void method537() { public final void processPrefetchQueue() {
if (this.aClass69_17 == null || this.fetchIndex() == null) { if (this.groupQueue == null || this.fetchIndex() == null) {
return; return;
} }
for (@Pc(21) Node local21 = this.aClass69_16.head(); local21 != null; local21 = this.aClass69_16.next()) { for (@Pc(21) Node local21 = this.prefetchQueue.head(); local21 != null; local21 = this.prefetchQueue.next()) {
@Pc(28) int local28 = (int) local21.key; @Pc(28) int local28 = (int) local21.key;
if (local28 < 0 || this.aClass70_1.capacity <= local28 || this.aClass70_1.groupSizes[local28] == 0) { if (local28 < 0 || this.index.capacity <= local28 || this.index.groupSizes[local28] == 0) {
local21.unlink(); local21.unlink();
} else { } else {
if (this.aByteArray9[local28] == 0) { if (this.groupStatus[local28] == 0) {
this.method536(1, local28); this.fetchGroupInner(1, local28);
} }
if (this.aByteArray9[local28] == -1) { if (this.groupStatus[local28] == -1) {
this.method536(2, local28); this.fetchGroupInner(2, local28);
} }
if (this.aByteArray9[local28] == 1) { if (this.groupStatus[local28] == 1) {
local21.unlink(); local21.unlink();
} }
} }
@ -455,7 +455,7 @@ public final class Js5CachedResourceProvider extends Js5ResourceProvider {
@OriginalMember(owner = "client!bg", name = "f", descriptor = "(I)I") @OriginalMember(owner = "client!bg", name = "f", descriptor = "(I)I")
public final int getIndexPercentageComplete() { public final int getIndexPercentageComplete() {
if (this.fetchIndex() == null) { if (this.fetchIndex() == null) {
return this.aClass3_Sub2_Sub5_1 == null ? 0 : this.aClass3_Sub2_Sub5_1.method3553(); return this.indexRequest == null ? 0 : this.indexRequest.getPercentageComplete();
} else { } else {
return 100; return 100;
} }
@ -464,7 +464,7 @@ public final class Js5CachedResourceProvider extends Js5ResourceProvider {
@OriginalMember(owner = "client!bg", name = "c", descriptor = "(II)[B") @OriginalMember(owner = "client!bg", name = "c", descriptor = "(II)[B")
@Override @Override
public final byte[] fetchGroup(@OriginalArg(0) int arg0) { public final byte[] fetchGroup(@OriginalArg(0) int arg0) {
@Pc(9) Js5Request local9 = this.method536(0, arg0); @Pc(9) Js5Request local9 = this.fetchGroupInner(0, arg0);
if (local9 == null) { if (local9 == null) {
return null; return null;
} else { } else {

View file

@ -9,10 +9,10 @@ import org.openrs2.deob.annotation.Pc;
public final class Js5GlTextureProvider implements TextureProvider { public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "z", descriptor = "Z") @OriginalMember(owner = "client!nk", name = "z", descriptor = "Z")
private boolean aBoolean200 = false; private boolean lowDetail = false;
@OriginalMember(owner = "client!nk", name = "J", descriptor = "I") @OriginalMember(owner = "client!nk", name = "J", descriptor = "I")
private int anInt4186 = 50; private int capacity = 50;
@OriginalMember(owner = "client!nk", name = "b", descriptor = "Lclient!ve;") @OriginalMember(owner = "client!nk", name = "b", descriptor = "Lclient!ve;")
private final Js5 aClass153_72; private final Js5 aClass153_72;
@ -21,10 +21,10 @@ public final class Js5GlTextureProvider implements TextureProvider {
private final Js5 aClass153_73; private final Js5 aClass153_73;
@OriginalMember(owner = "client!nk", name = "P", descriptor = "Lclient!gn;") @OriginalMember(owner = "client!nk", name = "P", descriptor = "Lclient!gn;")
private LruHashTable aClass54_12; private LruHashTable glTextures;
@OriginalMember(owner = "client!nk", name = "G", descriptor = "Lclient!gn;") @OriginalMember(owner = "client!nk", name = "G", descriptor = "Lclient!gn;")
private LruHashTable aClass54_11; private LruHashTable solidColorSprites;
@OriginalMember(owner = "client!nk", name = "Q", descriptor = "[B") @OriginalMember(owner = "client!nk", name = "Q", descriptor = "[B")
private final byte[] aByteArray61; private final byte[] aByteArray61;
@ -59,15 +59,16 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "<init>", descriptor = "(Lclient!ve;Lclient!ve;Lclient!ve;IZ)V") @OriginalMember(owner = "client!nk", name = "<init>", descriptor = "(Lclient!ve;Lclient!ve;Lclient!ve;IZ)V")
public Js5GlTextureProvider(@OriginalArg(0) Js5 arg0, @OriginalArg(1) Js5 arg1, @OriginalArg(2) Js5 arg2, @OriginalArg(3) int arg3, @OriginalArg(4) boolean arg4) { public Js5GlTextureProvider(@OriginalArg(0) Js5 arg0, @OriginalArg(1) Js5 arg1, @OriginalArg(2) Js5 arg2, @OriginalArg(3) int arg3, @OriginalArg(4) boolean arg4) {
this.aClass153_72 = arg2; this.aClass153_72 = arg2;
this.aBoolean200 = arg4; this.lowDetail = arg4;
this.anInt4186 = arg3; this.capacity = arg3;
this.aClass153_73 = arg0; this.aClass153_73 = arg0;
this.aClass54_12 = new LruHashTable(this.anInt4186); this.glTextures = new LruHashTable(this.capacity);
if (GlRenderer.enabled) { if (GlRenderer.enabled) {
this.aClass54_11 = new LruHashTable(this.anInt4186); this.solidColorSprites = new LruHashTable(this.capacity);
} else { } else {
this.aClass54_11 = null; this.solidColorSprites = null;
} }
@Pc(51) Buffer local51 = new Buffer(arg1.fetchFile(0, 0)); @Pc(51) Buffer local51 = new Buffer(arg1.fetchFile(0, 0));
@Pc(55) int local55 = local51.g2(); @Pc(55) int local55 = local51.g2();
this.aByteArray61 = new byte[local55]; this.aByteArray61 = new byte[local55];
@ -133,7 +134,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "a", descriptor = "(ZI)V") @OriginalMember(owner = "client!nk", name = "a", descriptor = "(ZI)V")
public final void method3239(@OriginalArg(1) int arg0) { public final void method3239(@OriginalArg(1) int arg0) {
for (@Pc(19) GlTexture local19 = (GlTexture) this.aClass54_12.method1808(); local19 != null; local19 = (GlTexture) this.aClass54_12.method1813()) { for (@Pc(19) GlTexture local19 = (GlTexture) this.glTextures.method1808(); local19 != null; local19 = (GlTexture) this.glTextures.method1813()) {
if (local19.aBoolean287) { if (local19.aBoolean287) {
local19.method4300(arg0); local19.method4300(arg0);
local19.aBoolean287 = false; local19.aBoolean287 = false;
@ -145,7 +146,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
@Override @Override
public final int[] method3235(@OriginalArg(1) int arg0) { public final int[] method3235(@OriginalArg(1) int arg0) {
@Pc(16) GlTexture local16 = this.method3242(arg0); @Pc(16) GlTexture local16 = this.method3242(arg0);
return local16 == null ? null : local16.method4297(this.aBoolean200 || this.aBooleanArray89[arg0], this, this.aClass153_72); return local16 == null ? null : local16.method4297(this.lowDetail || this.aBooleanArray89[arg0], this, this.aClass153_72);
} }
@OriginalMember(owner = "client!nk", name = "a", descriptor = "(IZ)V") @OriginalMember(owner = "client!nk", name = "a", descriptor = "(IZ)V")
@ -155,7 +156,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
@Pc(23) boolean local23 = false; @Pc(23) boolean local23 = false;
@Pc(28) GlTexture local28 = this.method3242(arg0); @Pc(28) GlTexture local28 = this.method3242(arg0);
if (local28 != null) { if (local28 != null) {
local23 = local28.method4296(this.aClass153_72, this, this.aBoolean200 || this.aBooleanArray89[arg0]); local23 = local28.method4296(this.aClass153_72, this, this.lowDetail || this.aBooleanArray89[arg0]);
} }
if (!local23) { if (!local23) {
@Pc(56) GlSolidColorTexture local56 = this.method3244(arg0); @Pc(56) GlSolidColorTexture local56 = this.method3244(arg0);
@ -165,7 +166,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "i", descriptor = "(II)Lclient!uh;") @OriginalMember(owner = "client!nk", name = "i", descriptor = "(II)Lclient!uh;")
private GlTexture method3242(@OriginalArg(0) int arg0) { private GlTexture method3242(@OriginalArg(0) int arg0) {
@Pc(14) GlTexture local14 = (GlTexture) this.aClass54_12.get((long) arg0); @Pc(14) GlTexture local14 = (GlTexture) this.glTextures.get((long) arg0);
if (local14 != null) { if (local14 != null) {
return local14; return local14;
} }
@ -175,7 +176,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
} else { } else {
@Pc(41) Buffer local41 = new Buffer(local30); @Pc(41) Buffer local41 = new Buffer(local30);
local14 = new GlTexture(local41); local14 = new GlTexture(local41);
this.aClass54_12.put(local14, (long) arg0); this.glTextures.put(local14, (long) arg0);
return local14; return local14;
} }
} }
@ -206,10 +207,10 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "j", descriptor = "(II)Lclient!sd;") @OriginalMember(owner = "client!nk", name = "j", descriptor = "(II)Lclient!sd;")
private GlSolidColorTexture method3244(@OriginalArg(1) int arg0) { private GlSolidColorTexture method3244(@OriginalArg(1) int arg0) {
@Pc(19) GlSolidColorTexture local19 = (GlSolidColorTexture) this.aClass54_11.get((long) arg0); @Pc(19) GlSolidColorTexture local19 = (GlSolidColorTexture) this.solidColorSprites.get((long) arg0);
if (local19 == null) { if (local19 == null) {
local19 = new GlSolidColorTexture(this.aShortArray59[arg0] & 0xFFFF); local19 = new GlSolidColorTexture(this.aShortArray59[arg0] & 0xFFFF);
this.aClass54_11.put(local19, (long) arg0); this.solidColorSprites.put(local19, (long) arg0);
return local19; return local19;
} else { } else {
return local19; return local19;
@ -225,7 +226,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "b", descriptor = "(ZI)V") @OriginalMember(owner = "client!nk", name = "b", descriptor = "(ZI)V")
public final void method3245(@OriginalArg(0) boolean arg0) { public final void method3245(@OriginalArg(0) boolean arg0) {
this.aBoolean200 = arg0; this.lowDetail = arg0;
this.clear(); this.clear();
} }
@ -243,9 +244,9 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "b", descriptor = "(I)V") @OriginalMember(owner = "client!nk", name = "b", descriptor = "(I)V")
public final void clear() { public final void clear() {
this.aClass54_12.clear(); this.glTextures.clear();
if (this.aClass54_11 != null) { if (this.solidColorSprites != null) {
this.aClass54_11.clear(); this.solidColorSprites.clear();
} }
} }
@ -258,17 +259,17 @@ public final class Js5GlTextureProvider implements TextureProvider {
@OriginalMember(owner = "client!nk", name = "b", descriptor = "(BI)Z") @OriginalMember(owner = "client!nk", name = "b", descriptor = "(BI)Z")
@Override @Override
public final boolean isLowDetail(@OriginalArg(1) int arg0) { public final boolean isLowDetail(@OriginalArg(1) int arg0) {
return this.aBoolean200 || this.aBooleanArray89[arg0]; return this.lowDetail || this.aBooleanArray89[arg0];
} }
@OriginalMember(owner = "client!nk", name = "k", descriptor = "(II)V") @OriginalMember(owner = "client!nk", name = "k", descriptor = "(II)V")
public final void method3248(@OriginalArg(0) int arg0) { public final void method3248(@OriginalArg(0) int arg0) {
this.anInt4186 = arg0; this.capacity = arg0;
this.aClass54_12 = new LruHashTable(this.anInt4186); this.glTextures = new LruHashTable(this.capacity);
if (GlRenderer.enabled) { if (GlRenderer.enabled) {
this.aClass54_11 = new LruHashTable(this.anInt4186); this.solidColorSprites = new LruHashTable(this.capacity);
} else { } else {
this.aClass54_11 = null; this.solidColorSprites = null;
} }
} }
@ -286,7 +287,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
return null; return null;
} else { } else {
local8.aBoolean287 = true; local8.aBoolean287 = true;
return local8.method4295(this, arg1, this.aClass153_72, this.aBoolean200 || this.aBooleanArray89[arg0]); return local8.method4295(this, arg1, this.aClass153_72, this.lowDetail || this.aBooleanArray89[arg0]);
} }
} }
} }

View file

@ -15,13 +15,13 @@ public final class Js5Index {
public int[] groupChecksums; public int[] groupChecksums;
@OriginalMember(owner = "client!ii", name = "f", descriptor = "I") @OriginalMember(owner = "client!ii", name = "f", descriptor = "I")
public int anInt2902; public int size;
@OriginalMember(owner = "client!ii", name = "h", descriptor = "Lclient!jg;") @OriginalMember(owner = "client!ii", name = "h", descriptor = "Lclient!jg;")
public IntHashTable groupNameHashTable; public IntHashTable groupNameHashTable;
@OriginalMember(owner = "client!ii", name = "m", descriptor = "[I") @OriginalMember(owner = "client!ii", name = "m", descriptor = "[I")
public int[] anIntArray269; public int[] groupIds;
@OriginalMember(owner = "client!ii", name = "n", descriptor = "[I") @OriginalMember(owner = "client!ii", name = "n", descriptor = "[I")
public int[] groupCapacities; public int[] groupCapacities;
@ -33,7 +33,7 @@ public final class Js5Index {
public int[] groupSizes; public int[] groupSizes;
@OriginalMember(owner = "client!ii", name = "r", descriptor = "[I") @OriginalMember(owner = "client!ii", name = "r", descriptor = "[I")
public int[] anIntArray273; public int[] groupVersions;
@OriginalMember(owner = "client!ii", name = "s", descriptor = "[[I") @OriginalMember(owner = "client!ii", name = "s", descriptor = "[[I")
public int[][] fileIds; public int[][] fileIds;
@ -42,7 +42,7 @@ public final class Js5Index {
public int capacity; public int capacity;
@OriginalMember(owner = "client!ii", name = "v", descriptor = "I") @OriginalMember(owner = "client!ii", name = "v", descriptor = "I")
public int anInt2908; public int version;
@OriginalMember(owner = "client!ii", name = "x", descriptor = "[Lclient!jg;") @OriginalMember(owner = "client!ii", name = "x", descriptor = "[Lclient!jg;")
public IntHashTable[] fileNameHashTables; public IntHashTable[] fileNameHashTables;
@ -67,24 +67,24 @@ public final class Js5Index {
throw new RuntimeException(); throw new RuntimeException();
} }
if (local16 >= 6) { if (local16 >= 6) {
this.anInt2908 = local12.g4(); this.version = local12.g4();
} else { } else {
this.anInt2908 = 0; this.version = 0;
} }
@Pc(48) int local48 = local12.g1(); @Pc(48) int local48 = local12.g1();
@Pc(50) int local50 = 0; @Pc(50) int local50 = 0;
this.anInt2902 = local12.g2(); this.size = local12.g2();
@Pc(59) int local59 = -1; @Pc(59) int local59 = -1;
this.anIntArray269 = new int[this.anInt2902]; this.groupIds = new int[this.size];
@Pc(66) int local66; @Pc(66) int local66;
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
this.anIntArray269[local66] = local50 += local12.g2(); this.groupIds[local66] = local50 += local12.g2();
if (this.anIntArray269[local66] > local59) { if (this.groupIds[local66] > local59) {
local59 = this.anIntArray269[local66]; local59 = this.groupIds[local66];
} }
} }
this.capacity = local59 + 1; this.capacity = local59 + 1;
this.anIntArray273 = new int[this.capacity]; this.groupVersions = new int[this.capacity];
this.fileIds = new int[this.capacity][]; this.fileIds = new int[this.capacity][];
this.groupChecksums = new int[this.capacity]; this.groupChecksums = new int[this.capacity];
this.groupCapacities = new int[this.capacity]; this.groupCapacities = new int[this.capacity];
@ -94,27 +94,27 @@ public final class Js5Index {
for (local66 = 0; local66 < this.capacity; local66++) { for (local66 = 0; local66 < this.capacity; local66++) {
this.groupNameHashes[local66] = -1; this.groupNameHashes[local66] = -1;
} }
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
this.groupNameHashes[this.anIntArray269[local66]] = local12.g4(); this.groupNameHashes[this.groupIds[local66]] = local12.g4();
} }
this.groupNameHashTable = new IntHashTable(this.groupNameHashes); this.groupNameHashTable = new IntHashTable(this.groupNameHashes);
} }
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
this.groupChecksums[this.anIntArray269[local66]] = local12.g4(); this.groupChecksums[this.groupIds[local66]] = local12.g4();
} }
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
this.anIntArray273[this.anIntArray269[local66]] = local12.g4(); this.groupVersions[this.groupIds[local66]] = local12.g4();
} }
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
this.groupSizes[this.anIntArray269[local66]] = local12.g2(); this.groupSizes[this.groupIds[local66]] = local12.g2();
} }
@Pc(273) int local273; @Pc(273) int local273;
@Pc(278) int local278; @Pc(278) int local278;
@Pc(280) int local280; @Pc(280) int local280;
@Pc(288) int local288; @Pc(288) int local288;
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
local50 = 0; local50 = 0;
local273 = this.anIntArray269[local66]; local273 = this.groupIds[local66];
local278 = this.groupSizes[local273]; local278 = this.groupSizes[local273];
local280 = -1; local280 = -1;
this.fileIds[local273] = new int[local278]; this.fileIds[local273] = new int[local278];
@ -134,8 +134,8 @@ public final class Js5Index {
} }
this.fileNameHashTables = new IntHashTable[local59 + 1]; this.fileNameHashTables = new IntHashTable[local59 + 1];
this.fileNameHashes = new int[local59 + 1][]; this.fileNameHashes = new int[local59 + 1][];
for (local66 = 0; local66 < this.anInt2902; local66++) { for (local66 = 0; local66 < this.size; local66++) {
local273 = this.anIntArray269[local66]; local273 = this.groupIds[local66];
local278 = this.groupSizes[local273]; local278 = this.groupSizes[local273];
this.fileNameHashes[local273] = new int[this.groupCapacities[local273]]; this.fileNameHashes[local273] = new int[this.groupCapacities[local273]];
for (local280 = 0; local280 < this.groupCapacities[local273]; local280++) { for (local280 = 0; local280 < this.groupCapacities[local273]; local280++) {

View file

@ -60,12 +60,12 @@ public final class Js5MasterIndex {
@Pc(13) int local13; @Pc(13) int local13;
for (local13 = 0; local13 < this.resourceProviders.length; local13++) { for (local13 = 0; local13 < this.resourceProviders.length; local13++) {
if (this.resourceProviders[local13] != null) { if (this.resourceProviders[local13] != null) {
this.resourceProviders[local13].method537(); this.resourceProviders[local13].processPrefetchQueue();
} }
} }
for (local13 = 0; local13 < this.resourceProviders.length; local13++) { for (local13 = 0; local13 < this.resourceProviders.length; local13++) {
if (this.resourceProviders[local13] != null) { if (this.resourceProviders[local13] != null) {
this.resourceProviders[local13].method534(); this.resourceProviders[local13].loop();
} }
} }
} }

View file

@ -10,34 +10,34 @@ import org.openrs2.deob.annotation.Pc;
public final class Js5NetQueue { public final class Js5NetQueue {
@OriginalMember(owner = "client!jb", name = "A", descriptor = "J") @OriginalMember(owner = "client!jb", name = "A", descriptor = "J")
private long aLong104; private long previousLoop;
@OriginalMember(owner = "client!jb", name = "B", descriptor = "Lclient!ma;") @OriginalMember(owner = "client!jb", name = "B", descriptor = "Lclient!ma;")
private BufferedSocket aClass95_1; private BufferedSocket socket;
@OriginalMember(owner = "client!jb", name = "C", descriptor = "I") @OriginalMember(owner = "client!jb", name = "C", descriptor = "I")
private int anInt2962; private int latency;
@OriginalMember(owner = "client!jb", name = "J", descriptor = "Lclient!pm;") @OriginalMember(owner = "client!jb", name = "J", descriptor = "Lclient!pm;")
private Js5NetRequest aClass3_Sub2_Sub5_Sub2_2; private Js5NetRequest current;
@OriginalMember(owner = "client!jb", name = "a", descriptor = "Lclient!ce;") @OriginalMember(owner = "client!jb", name = "a", descriptor = "Lclient!ce;")
private final SecondaryLinkedList aClass16_2 = new SecondaryLinkedList(); private final SecondaryLinkedList pendingUrgentRequests = new SecondaryLinkedList();
@OriginalMember(owner = "client!jb", name = "q", descriptor = "Lclient!ce;") @OriginalMember(owner = "client!jb", name = "q", descriptor = "Lclient!ce;")
private final SecondaryLinkedList aClass16_3 = new SecondaryLinkedList(); private final SecondaryLinkedList inFlightUrgentRequests = new SecondaryLinkedList();
@OriginalMember(owner = "client!jb", name = "v", descriptor = "Lclient!ce;") @OriginalMember(owner = "client!jb", name = "v", descriptor = "Lclient!ce;")
private final SecondaryLinkedList aClass16_4 = new SecondaryLinkedList(); private final SecondaryLinkedList pendingPrefetchRequests = new SecondaryLinkedList();
@OriginalMember(owner = "client!jb", name = "z", descriptor = "Lclient!ce;") @OriginalMember(owner = "client!jb", name = "z", descriptor = "Lclient!ce;")
private final SecondaryLinkedList aClass16_5 = new SecondaryLinkedList(); private final SecondaryLinkedList inFlightPrefetchRequests = new SecondaryLinkedList();
@OriginalMember(owner = "client!jb", name = "E", descriptor = "Lclient!wa;") @OriginalMember(owner = "client!jb", name = "E", descriptor = "Lclient!wa;")
private final Buffer aClass3_Sub15_4 = new Buffer(4); private final Buffer outBuffer = new Buffer(4);
@OriginalMember(owner = "client!jb", name = "G", descriptor = "B") @OriginalMember(owner = "client!jb", name = "G", descriptor = "B")
private byte aByte8 = 0; private byte encryptionKey = 0;
@OriginalMember(owner = "client!jb", name = "I", descriptor = "I") @OriginalMember(owner = "client!jb", name = "I", descriptor = "I")
public volatile int errors = 0; public volatile int errors = 0;
@ -46,141 +46,141 @@ public final class Js5NetQueue {
public volatile int response = 0; public volatile int response = 0;
@OriginalMember(owner = "client!jb", name = "F", descriptor = "Lclient!wa;") @OriginalMember(owner = "client!jb", name = "F", descriptor = "Lclient!wa;")
private final Buffer aClass3_Sub15_5 = new Buffer(8); private final Buffer inBuffer = new Buffer(8);
@OriginalMember(owner = "client!jb", name = "a", descriptor = "(I)Z") @OriginalMember(owner = "client!jb", name = "a", descriptor = "(I)Z")
public final boolean method2316() { public final boolean isPrefetchRequestQueueFull() {
return this.method2321() >= 20; return this.getPrefetchRequestCount() >= 20;
} }
@OriginalMember(owner = "client!jb", name = "b", descriptor = "(B)Z") @OriginalMember(owner = "client!jb", name = "b", descriptor = "(B)Z")
public final boolean loop() { public final boolean loop() {
@Pc(19) int local19; @Pc(19) int local19;
if (this.aClass95_1 != null) { if (this.socket != null) {
@Pc(12) long local12 = MonotonicClock.currentTimeMillis(); @Pc(12) long local12 = MonotonicClock.currentTimeMillis();
local19 = (int) (local12 - this.aLong104); local19 = (int) (local12 - this.previousLoop);
this.aLong104 = local12; this.previousLoop = local12;
if (local19 > 200) { if (local19 > 200) {
local19 = 200; local19 = 200;
} }
this.anInt2962 += local19; this.latency += local19;
if (this.anInt2962 > 30000) { if (this.latency > 30000) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(43) Exception local43) { } catch (@Pc(43) Exception local43) {
} }
this.aClass95_1 = null; this.socket = null;
} }
} }
if (this.aClass95_1 == null) { if (this.socket == null) {
return this.method2328() == 0 && this.method2321() == 0; return this.getUrgentRequestCount() == 0 && this.getPrefetchRequestCount() == 0;
} }
try { try {
this.aClass95_1.checkError(); this.socket.checkError();
@Pc(75) Js5NetRequest local75; @Pc(75) Js5NetRequest local75;
for (local75 = (Js5NetRequest) this.aClass16_2.method795(); local75 != null; local75 = (Js5NetRequest) this.aClass16_2.method797()) { for (local75 = (Js5NetRequest) this.pendingUrgentRequests.head(); local75 != null; local75 = (Js5NetRequest) this.pendingUrgentRequests.next()) {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(1); this.outBuffer.p1(1);
this.aClass3_Sub15_4.p3((int) local75.secondaryKey); this.outBuffer.p3((int) local75.secondaryKey);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
this.aClass16_3.addTail(local75); this.inFlightUrgentRequests.addTail(local75);
} }
for (local75 = (Js5NetRequest) this.aClass16_4.method795(); local75 != null; local75 = (Js5NetRequest) this.aClass16_4.method797()) { for (local75 = (Js5NetRequest) this.pendingPrefetchRequests.head(); local75 != null; local75 = (Js5NetRequest) this.pendingPrefetchRequests.next()) {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(0); this.outBuffer.p1(0);
this.aClass3_Sub15_4.p3((int) local75.secondaryKey); this.outBuffer.p3((int) local75.secondaryKey);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
this.aClass16_5.addTail(local75); this.inFlightPrefetchRequests.addTail(local75);
} }
for (@Pc(172) int local172 = 0; local172 < 100; local172++) { for (@Pc(172) int local172 = 0; local172 < 100; local172++) {
local19 = this.aClass95_1.available(); local19 = this.socket.available();
if (local19 < 0) { if (local19 < 0) {
throw new IOException(); throw new IOException();
} }
if (local19 == 0) { if (local19 == 0) {
break; break;
} }
this.anInt2962 = 0; this.latency = 0;
@Pc(196) byte local196 = 0; @Pc(196) byte local196 = 0;
if (this.aClass3_Sub2_Sub5_Sub2_2 == null) { if (this.current == null) {
local196 = 8; local196 = 8;
} else if (this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 == 0) { } else if (this.current.blockPosition == 0) {
local196 = 1; local196 = 1;
} }
@Pc(228) int local228; @Pc(228) int local228;
@Pc(235) int local235; @Pc(235) int local235;
@Pc(283) int local283; @Pc(283) int local283;
if (local196 <= 0) { if (local196 <= 0) {
local228 = this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.data.length - this.aClass3_Sub2_Sub5_Sub2_2.aByte16; local228 = this.current.buffer.data.length - this.current.trailerLen;
local235 = 512 - this.aClass3_Sub2_Sub5_Sub2_2.anInt4617; local235 = 512 - this.current.blockPosition;
if (local235 > local228 - this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset) { if (local235 > local228 - this.current.buffer.offset) {
local235 = local228 - this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset; local235 = local228 - this.current.buffer.offset;
} }
if (local235 > local19) { if (local235 > local19) {
local235 = local19; local235 = local19;
} }
this.aClass95_1.read(this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset, local235, this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.data); this.socket.read(this.current.buffer.offset, local235, this.current.buffer.data);
if (this.aByte8 != 0) { if (this.encryptionKey != 0) {
for (local283 = 0; local283 < local235; local283++) { for (local283 = 0; local283 < local235; local283++) {
this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.data[this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset + local283] = (byte) (this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.data[this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset + local283] ^ this.aByte8); this.current.buffer.data[this.current.buffer.offset + local283] = (byte) (this.current.buffer.data[this.current.buffer.offset + local283] ^ this.encryptionKey);
} }
} }
this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 += local235; this.current.blockPosition += local235;
this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset += local235; this.current.buffer.offset += local235;
if (this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.offset == local228) { if (this.current.buffer.offset == local228) {
this.aClass3_Sub2_Sub5_Sub2_2.method4365(); this.current.unlinkSecondary();
this.aClass3_Sub2_Sub5_Sub2_2.incomplete = false; this.current.incomplete = false;
this.aClass3_Sub2_Sub5_Sub2_2 = null; this.current = null;
} else if (this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 == 512) { } else if (this.current.blockPosition == 512) {
this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 = 0; this.current.blockPosition = 0;
} }
} else { } else {
local228 = local196 - this.aClass3_Sub15_5.offset; local228 = local196 - this.inBuffer.offset;
if (local19 < local228) { if (local19 < local228) {
local228 = local19; local228 = local19;
} }
this.aClass95_1.read(this.aClass3_Sub15_5.offset, local228, this.aClass3_Sub15_5.data); this.socket.read(this.inBuffer.offset, local228, this.inBuffer.data);
if (this.aByte8 != 0) { if (this.encryptionKey != 0) {
for (local235 = 0; local235 < local228; local235++) { for (local235 = 0; local235 < local228; local235++) {
this.aClass3_Sub15_5.data[local235 + this.aClass3_Sub15_5.offset] ^= this.aByte8; this.inBuffer.data[local235 + this.inBuffer.offset] ^= this.encryptionKey;
} }
} }
this.aClass3_Sub15_5.offset += local228; this.inBuffer.offset += local228;
if (this.aClass3_Sub15_5.offset >= local196) { if (this.inBuffer.offset >= local196) {
if (this.aClass3_Sub2_Sub5_Sub2_2 == null) { if (this.current == null) {
this.aClass3_Sub15_5.offset = 0; this.inBuffer.offset = 0;
local235 = this.aClass3_Sub15_5.g1(); local235 = this.inBuffer.g1();
local283 = this.aClass3_Sub15_5.g2(); local283 = this.inBuffer.g2();
@Pc(471) int local471 = this.aClass3_Sub15_5.g1(); @Pc(471) int local471 = this.inBuffer.g1();
@Pc(476) int local476 = this.aClass3_Sub15_5.g4(); @Pc(476) int local476 = this.inBuffer.g4();
@Pc(480) int local480 = local471 & 0x7F; @Pc(480) int local480 = local471 & 0x7F;
@Pc(491) boolean local491 = (local471 & 0x80) != 0; @Pc(491) boolean local491 = (local471 & 0x80) != 0;
@Pc(501) long local501 = (long) ((local235 << 16) + local283); @Pc(501) long local501 = (long) ((local235 << 16) + local283);
@Pc(509) Js5NetRequest local509; @Pc(509) Js5NetRequest local509;
if (local491) { if (local491) {
for (local509 = (Js5NetRequest) this.aClass16_5.method795(); local509 != null && local509.secondaryKey != local501; local509 = (Js5NetRequest) this.aClass16_5.method797()) { for (local509 = (Js5NetRequest) this.inFlightPrefetchRequests.head(); local509 != null && local509.secondaryKey != local501; local509 = (Js5NetRequest) this.inFlightPrefetchRequests.next()) {
} }
} else { } else {
for (local509 = (Js5NetRequest) this.aClass16_3.method795(); local509 != null && local501 != local509.secondaryKey; local509 = (Js5NetRequest) this.aClass16_3.method797()) { for (local509 = (Js5NetRequest) this.inFlightUrgentRequests.head(); local509 != null && local501 != local509.secondaryKey; local509 = (Js5NetRequest) this.inFlightUrgentRequests.next()) {
} }
} }
if (local509 == null) { if (local509 == null) {
throw new IOException(); throw new IOException();
} }
@Pc(568) int local568 = local480 == 0 ? 5 : 9; @Pc(568) int local568 = local480 == 0 ? 5 : 9;
this.aClass3_Sub2_Sub5_Sub2_2 = local509; this.current = local509;
this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7 = new Buffer(local476 + local568 + this.aClass3_Sub2_Sub5_Sub2_2.aByte16); this.current.buffer = new Buffer(local476 + local568 + this.current.trailerLen);
this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.p1(local480); this.current.buffer.p1(local480);
this.aClass3_Sub2_Sub5_Sub2_2.aClass3_Sub15_7.p4(local476); this.current.buffer.p4(local476);
this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 = 8; this.current.blockPosition = 8;
this.aClass3_Sub15_5.offset = 0; this.inBuffer.offset = 0;
} else if (this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 != 0) { } else if (this.current.blockPosition != 0) {
throw new IOException(); throw new IOException();
} else if (this.aClass3_Sub15_5.data[0] == -1) { } else if (this.inBuffer.data[0] == -1) {
this.aClass3_Sub2_Sub5_Sub2_2.anInt4617 = 1; this.current.blockPosition = 1;
this.aClass3_Sub15_5.offset = 0; this.inBuffer.offset = 0;
} else { } else {
this.aClass3_Sub2_Sub5_Sub2_2 = null; this.current = null;
} }
} }
} }
@ -188,161 +188,161 @@ public final class Js5NetQueue {
return true; return true;
} catch (@Pc(644) IOException local644) { } catch (@Pc(644) IOException local644) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(650) Exception local650) { } catch (@Pc(650) Exception ignored) {
} }
this.response = -2; this.response = -2;
this.errors++; this.errors++;
this.aClass95_1 = null; this.socket = null;
return this.method2328() == 0 && this.method2321() == 0; return this.getUrgentRequestCount() == 0 && this.getPrefetchRequestCount() == 0;
} }
} }
@OriginalMember(owner = "client!jb", name = "a", descriptor = "(Z)V") @OriginalMember(owner = "client!jb", name = "a", descriptor = "(Z)V")
public final void drop() { public final void drop() {
if (this.aClass95_1 == null) { if (this.socket == null) {
return; return;
} }
try { try {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(7); this.outBuffer.p1(7);
this.aClass3_Sub15_4.p3(0); this.outBuffer.p3(0);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
} catch (@Pc(39) IOException local39) { } catch (@Pc(39) IOException local39) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(45) Exception local45) { } catch (@Pc(45) Exception local45) {
} }
this.errors++; this.errors++;
this.response = -2; this.response = -2;
this.aClass95_1 = null; this.socket = null;
} }
} }
@OriginalMember(owner = "client!jb", name = "b", descriptor = "(I)I") @OriginalMember(owner = "client!jb", name = "b", descriptor = "(I)I")
private int method2321() { private int getPrefetchRequestCount() {
return this.aClass16_4.method793() + this.aClass16_5.method793(); return this.pendingPrefetchRequests.size() + this.inFlightPrefetchRequests.size();
} }
@OriginalMember(owner = "client!jb", name = "a", descriptor = "(ZZ)V") @OriginalMember(owner = "client!jb", name = "a", descriptor = "(ZZ)V")
public final void writeLoggedIn(@OriginalArg(0) boolean arg0) { public final void writeLoggedIn(@OriginalArg(0) boolean arg0) {
if (this.aClass95_1 == null) { if (this.socket == null) {
return; return;
} }
try { try {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(arg0 ? 2 : 3); this.outBuffer.p1(arg0 ? 2 : 3);
this.aClass3_Sub15_4.p3(0); this.outBuffer.p3(0);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
} catch (@Pc(42) IOException local42) { } catch (@Pc(42) IOException local42) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(48) Exception local48) { } catch (@Pc(48) Exception local48) {
} }
this.errors++; this.errors++;
this.response = -2; this.response = -2;
this.aClass95_1 = null; this.socket = null;
} }
} }
@OriginalMember(owner = "client!jb", name = "c", descriptor = "(I)V") @OriginalMember(owner = "client!jb", name = "c", descriptor = "(I)V")
public final void breakConnection() { public final void breakConnection() {
if (this.aClass95_1 != null) { if (this.socket != null) {
this.aClass95_1.breakConnection(); this.socket.breakConnection();
} }
} }
@OriginalMember(owner = "client!jb", name = "a", descriptor = "(ZLclient!ma;I)V") @OriginalMember(owner = "client!jb", name = "a", descriptor = "(ZLclient!ma;I)V")
public final void start(@OriginalArg(0) boolean arg0, @OriginalArg(1) BufferedSocket arg1) { public final void start(@OriginalArg(0) boolean arg0, @OriginalArg(1) BufferedSocket arg1) {
if (this.aClass95_1 != null) { if (this.socket != null) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(14) Exception local14) { } catch (@Pc(14) Exception local14) {
} }
this.aClass95_1 = null; this.socket = null;
} }
this.aClass95_1 = arg1; this.socket = arg1;
this.method2331(); this.method2331();
this.writeLoggedIn(arg0); this.writeLoggedIn(arg0);
this.aClass3_Sub15_5.offset = 0; this.inBuffer.offset = 0;
this.aClass3_Sub2_Sub5_Sub2_2 = null; this.current = null;
while (true) { while (true) {
@Pc(44) Js5NetRequest local44 = (Js5NetRequest) this.aClass16_3.method796(); @Pc(44) Js5NetRequest local44 = (Js5NetRequest) this.inFlightUrgentRequests.removeHead();
if (local44 == null) { if (local44 == null) {
while (true) { while (true) {
local44 = (Js5NetRequest) this.aClass16_5.method796(); local44 = (Js5NetRequest) this.inFlightPrefetchRequests.removeHead();
if (local44 == null) { if (local44 == null) {
if (this.aByte8 != 0) { if (this.encryptionKey != 0) {
try { try {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(4); this.outBuffer.p1(4);
this.aClass3_Sub15_4.p1(this.aByte8); this.outBuffer.p1(this.encryptionKey);
this.aClass3_Sub15_4.p2(0); this.outBuffer.p2(0);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
} catch (@Pc(107) IOException local107) { } catch (@Pc(107) IOException local107) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(113) Exception local113) { } catch (@Pc(113) Exception local113) {
} }
this.response = -2; this.response = -2;
this.errors++; this.errors++;
this.aClass95_1 = null; this.socket = null;
} }
} }
this.anInt2962 = 0; this.latency = 0;
this.aLong104 = MonotonicClock.currentTimeMillis(); this.previousLoop = MonotonicClock.currentTimeMillis();
return; return;
} }
this.aClass16_4.addTail(local44); this.pendingPrefetchRequests.addTail(local44);
} }
} }
this.aClass16_2.addTail(local44); this.pendingUrgentRequests.addTail(local44);
} }
} }
@OriginalMember(owner = "client!jb", name = "c", descriptor = "(B)Z") @OriginalMember(owner = "client!jb", name = "c", descriptor = "(B)Z")
public final boolean isUrgentRequestQueueFull() { public final boolean isUrgentRequestQueueFull() {
return this.method2328() >= 20; return this.getUrgentRequestCount() >= 20;
} }
@OriginalMember(owner = "client!jb", name = "d", descriptor = "(B)V") @OriginalMember(owner = "client!jb", name = "d", descriptor = "(B)V")
public final void method2327() { public final void rekey() {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(17) Exception local17) { } catch (@Pc(17) Exception local17) {
} }
this.response = -1; this.response = -1;
this.aByte8 = (byte) (Math.random() * 255.0D + 1.0D); this.encryptionKey = (byte) (Math.random() * 255.0D + 1.0D);
this.aClass95_1 = null; this.socket = null;
this.errors++; this.errors++;
} }
@OriginalMember(owner = "client!jb", name = "d", descriptor = "(I)I") @OriginalMember(owner = "client!jb", name = "d", descriptor = "(I)I")
public final int method2328() { public final int getUrgentRequestCount() {
return this.aClass16_2.method793() + this.aClass16_3.method793(); return this.pendingUrgentRequests.size() + this.inFlightUrgentRequests.size();
} }
@OriginalMember(owner = "client!jb", name = "b", descriptor = "(Z)V") @OriginalMember(owner = "client!jb", name = "b", descriptor = "(Z)V")
public final void quit() { public final void quit() {
if (this.aClass95_1 != null) { if (this.socket != null) {
this.aClass95_1.close(); this.socket.close();
} }
} }
@OriginalMember(owner = "client!jb", name = "a", descriptor = "(IIBIZ)Lclient!pm;") @OriginalMember(owner = "client!jb", name = "a", descriptor = "(IIBIZ)Lclient!pm;")
public final Js5NetRequest read(@OriginalArg(1) int arg0, @OriginalArg(2) byte arg1, @OriginalArg(3) int arg2, @OriginalArg(4) boolean arg3) { public final Js5NetRequest read(@OriginalArg(1) int arg0, @OriginalArg(2) byte arg1, @OriginalArg(3) int arg2, @OriginalArg(4) boolean arg3) {
@Pc(7) Js5NetRequest local7 = new Js5NetRequest(); @Pc(7) Js5NetRequest local7 = new Js5NetRequest();
@Pc(14) long local14 = (long) (arg2 + (arg0 << 16)); @Pc(14) long local14 = arg2 + ((long) arg0 << 16);
local7.aBoolean225 = arg3; local7.urgent = arg3;
local7.secondaryKey = local14; local7.secondaryKey = local14;
local7.aByte16 = arg1; local7.trailerLen = arg1;
if (arg3) { if (arg3) {
if (this.method2328() >= 20) { if (this.getUrgentRequestCount() >= 20) {
throw new RuntimeException(); throw new RuntimeException();
} }
this.aClass16_2.addTail(local7); this.pendingUrgentRequests.addTail(local7);
} else if (this.method2321() < 20) { } else if (this.getPrefetchRequestCount() < 20) {
this.aClass16_4.addTail(local7); this.pendingPrefetchRequests.addTail(local7);
} else { } else {
throw new RuntimeException(); throw new RuntimeException();
} }
@ -351,21 +351,21 @@ public final class Js5NetQueue {
@OriginalMember(owner = "client!jb", name = "e", descriptor = "(B)V") @OriginalMember(owner = "client!jb", name = "e", descriptor = "(B)V")
private void method2331() { private void method2331() {
if (this.aClass95_1 == null) { if (this.socket == null) {
return; return;
} }
try { try {
this.aClass3_Sub15_4.offset = 0; this.outBuffer.offset = 0;
this.aClass3_Sub15_4.p1(6); this.outBuffer.p1(6);
this.aClass3_Sub15_4.p3(3); this.outBuffer.p3(3);
this.aClass95_1.write(this.aClass3_Sub15_4.data, 4); this.socket.write(this.outBuffer.data, 4);
} catch (@Pc(37) IOException local37) { } catch (@Pc(37) IOException local37) {
try { try {
this.aClass95_1.close(); this.socket.close();
} catch (@Pc(43) Exception local43) { } catch (@Pc(43) Exception ignored) {
} }
this.errors++; this.errors++;
this.aClass95_1 = null; this.socket = null;
this.response = -2; this.response = -2;
} }
} }

View file

@ -7,26 +7,26 @@ import org.openrs2.deob.annotation.OriginalMember;
public final class Js5NetRequest extends Js5Request { public final class Js5NetRequest extends Js5Request {
@OriginalMember(owner = "client!pm", name = "U", descriptor = "B") @OriginalMember(owner = "client!pm", name = "U", descriptor = "B")
public byte aByte16; public byte trailerLen;
@OriginalMember(owner = "client!pm", name = "Z", descriptor = "I") @OriginalMember(owner = "client!pm", name = "Z", descriptor = "I")
public int anInt4617; public int blockPosition;
@OriginalMember(owner = "client!pm", name = "bb", descriptor = "Lclient!wa;") @OriginalMember(owner = "client!pm", name = "bb", descriptor = "Lclient!wa;")
public Buffer aClass3_Sub15_7; public Buffer buffer;
@OriginalMember(owner = "client!pm", name = "a", descriptor = "(Z)I") @OriginalMember(owner = "client!pm", name = "a", descriptor = "(Z)I")
@Override @Override
public final int method3553() { public final int getPercentageComplete() {
return this.aClass3_Sub15_7 == null ? 0 : this.aClass3_Sub15_7.offset * 100 / (this.aClass3_Sub15_7.data.length - this.aByte16); return this.buffer == null ? 0 : this.buffer.offset * 100 / (this.buffer.data.length - this.trailerLen);
} }
@OriginalMember(owner = "client!pm", name = "b", descriptor = "(Z)[B") @OriginalMember(owner = "client!pm", name = "b", descriptor = "(Z)[B")
@Override @Override
public final byte[] getData() { public final byte[] getData() {
if (this.incomplete || this.aClass3_Sub15_7.offset < this.aClass3_Sub15_7.data.length - this.aByte16) { if (this.incomplete || this.buffer.offset < this.buffer.data.length - this.trailerLen) {
throw new RuntimeException(); throw new RuntimeException();
} }
return this.aClass3_Sub15_7.data; return this.buffer.data;
} }
} }

View file

@ -10,15 +10,15 @@ public final class Js5QuickChatCommandDecoder implements QuickChatCommandDecoder
@OriginalMember(owner = "client!af", name = "a", descriptor = "(I[IIJ)Lclient!na;") @OriginalMember(owner = "client!af", name = "a", descriptor = "(I[IIJ)Lclient!na;")
@Override @Override
public final JagString method30(@OriginalArg(0) int arg0, @OriginalArg(1) int[] arg1, @OriginalArg(3) long arg2) { public final JagString decode(@OriginalArg(0) int command, @OriginalArg(1) int[] params, @OriginalArg(3) long value) {
if (arg0 == 0) { if (command == 0) {
@Pc(12) EnumType local12 = EnumTypeList.get(arg1[0]); @Pc(12) EnumType type = EnumTypeList.get(params[0]);
return local12.getString((int) arg2); return type.getString((int) value);
} else if (arg0 == 1 || arg0 == 10) { } else if (command == 1 || command == 10) {
@Pc(31) ObjType local31 = ObjTypeList.get((int) arg2); @Pc(31) ObjType type = ObjTypeList.get((int) value);
return local31.name; return type.name;
} else if (arg0 == 6 || arg0 == 7 || arg0 == 11) { } else if (command == 6 || command == 7 || command == 11) {
return EnumTypeList.get(arg1[0]).getString((int) arg2); return EnumTypeList.get(params[0]).getString((int) value);
} else { } else {
return null; return null;
} }

View file

@ -7,16 +7,16 @@ import org.openrs2.deob.annotation.OriginalMember;
public abstract class Js5Request extends SecondaryNode { public abstract class Js5Request extends SecondaryNode {
@OriginalMember(owner = "client!il", name = "L", descriptor = "Z") @OriginalMember(owner = "client!il", name = "L", descriptor = "Z")
public boolean aBoolean225; public boolean urgent;
@OriginalMember(owner = "client!il", name = "T", descriptor = "Z") @OriginalMember(owner = "client!il", name = "T", descriptor = "Z")
public boolean aBoolean227; public boolean orphan;
@OriginalMember(owner = "client!il", name = "P", descriptor = "Z") @OriginalMember(owner = "client!il", name = "P", descriptor = "Z")
public volatile boolean incomplete = true; public volatile boolean incomplete = true;
@OriginalMember(owner = "client!il", name = "a", descriptor = "(Z)I") @OriginalMember(owner = "client!il", name = "a", descriptor = "(Z)I")
public abstract int method3553(); public abstract int getPercentageComplete();
@OriginalMember(owner = "client!il", name = "b", descriptor = "(Z)[B") @OriginalMember(owner = "client!il", name = "b", descriptor = "(Z)[B")
public abstract byte[] getData(); public abstract byte[] getData();

View file

@ -51,13 +51,13 @@ public final class LruHashTable {
@OriginalMember(owner = "client!gn", name = "a", descriptor = "(Lclient!rg;JB)V") @OriginalMember(owner = "client!gn", name = "a", descriptor = "(Lclient!rg;JB)V")
public final void put(@OriginalArg(0) SecondaryNode arg0, @OriginalArg(1) long arg1) { public final void put(@OriginalArg(0) SecondaryNode arg0, @OriginalArg(1) long arg1) {
if (this.anInt2314 == 0) { if (this.anInt2314 == 0) {
@Pc(14) SecondaryNode local14 = this.aClass16_1.method796(); @Pc(14) SecondaryNode local14 = this.aClass16_1.removeHead();
local14.unlink(); local14.unlink();
local14.method4365(); local14.unlinkSecondary();
if (this.aClass3_Sub2_37 == local14) { if (this.aClass3_Sub2_37 == local14) {
local14 = this.aClass16_1.method796(); local14 = this.aClass16_1.removeHead();
local14.unlink(); local14.unlink();
local14.method4365(); local14.unlinkSecondary();
} }
} else { } else {
this.anInt2314--; this.anInt2314--;

View file

@ -8,5 +8,5 @@ import org.openrs2.deob.annotation.OriginalMember;
public interface QuickChatCommandDecoder { public interface QuickChatCommandDecoder {
@OriginalMember(owner = "client!of", name = "a", descriptor = "(I[IIJ)Lclient!na;") @OriginalMember(owner = "client!of", name = "a", descriptor = "(I[IIJ)Lclient!na;")
JagString method30(@OriginalArg(0) int arg0, @OriginalArg(1) int[] arg1, @OriginalArg(3) long arg2); JagString decode(@OriginalArg(0) int arg0, @OriginalArg(1) int[] arg1, @OriginalArg(3) long arg2);
} }

View file

@ -332,7 +332,7 @@ public final class ScriptRunner {
Static5.anInt40 = local57; Static5.anInt40 = local57;
Camera.renderX = local59; Camera.renderX = local59;
Camera.cameraYaw = local125; Camera.cameraYaw = local125;
if (aBoolean43 && client.js5NetQueue.method2328() == 0) { if (aBoolean43 && client.js5NetQueue.getUrgentRequestCount() == 0) {
aBoolean43 = false; aBoolean43 = false;
} }
if (aBoolean43) { if (aBoolean43) {
@ -4368,7 +4368,7 @@ public final class ScriptRunner {
str1 = stringStack[ssp]; str1 = stringStack[ssp];
local7566 = false; local7566 = false;
@Pc(7577) SecondaryLinkedList local7577 = method3333(int1 >> 14 & 0x3FFF, int1 & 0x3FFF); @Pc(7577) SecondaryLinkedList local7577 = method3333(int1 >> 14 & 0x3FFF, int1 & 0x3FFF);
for (@Pc(7582) Map local7582 = (Map) local7577.method795(); local7582 != null; local7582 = (Map) local7577.method797()) { for (@Pc(7582) Map local7582 = (Map) local7577.head(); local7582 != null; local7582 = (Map) local7577.next()) {
if (local7582.group.equalsIgnoreCase(str1)) { if (local7582.group.equalsIgnoreCase(str1)) {
local7566 = true; local7566 = true;
break; break;

View file

@ -16,8 +16,8 @@ public final class SecondaryHashTable {
this.aClass3_Sub2Array1 = new SecondaryNode[arg0]; this.aClass3_Sub2Array1 = new SecondaryNode[arg0];
for (@Pc(7) int local7 = 0; local7 < arg0; local7++) { for (@Pc(7) int local7 = 0; local7 < arg0; local7++) {
@Pc(23) SecondaryNode local23 = this.aClass3_Sub2Array1[local7] = new SecondaryNode(); @Pc(23) SecondaryNode local23 = this.aClass3_Sub2Array1[local7] = new SecondaryNode();
local23.aClass3_Sub2_66 = local23; local23.secondaryPrev = local23;
local23.aClass3_Sub2_67 = local23; local23.secondaryNext = local23;
} }
} }
} }

View file

@ -9,83 +9,83 @@ import org.openrs2.deob.annotation.Pc;
public final class SecondaryLinkedList { public final class SecondaryLinkedList {
@OriginalMember(owner = "client!ce", name = "n", descriptor = "Lclient!rg;") @OriginalMember(owner = "client!ce", name = "n", descriptor = "Lclient!rg;")
private SecondaryNode aClass3_Sub2_22; private SecondaryNode cursor;
@OriginalMember(owner = "client!ce", name = "l", descriptor = "Lclient!rg;") @OriginalMember(owner = "client!ce", name = "l", descriptor = "Lclient!rg;")
private final SecondaryNode aClass3_Sub2_21 = new SecondaryNode(); private final SecondaryNode sentinel = new SecondaryNode();
@OriginalMember(owner = "client!ce", name = "<init>", descriptor = "()V") @OriginalMember(owner = "client!ce", name = "<init>", descriptor = "()V")
public SecondaryLinkedList() { public SecondaryLinkedList() {
this.aClass3_Sub2_21.aClass3_Sub2_67 = this.aClass3_Sub2_21; this.sentinel.secondaryNext = this.sentinel;
this.aClass3_Sub2_21.aClass3_Sub2_66 = this.aClass3_Sub2_21; this.sentinel.secondaryPrev = this.sentinel;
} }
@OriginalMember(owner = "client!ce", name = "a", descriptor = "(I)I") @OriginalMember(owner = "client!ce", name = "a", descriptor = "(I)I")
public final int method793() { public final int size() {
@Pc(3) int local3 = 0; @Pc(3) int local3 = 0;
@Pc(7) SecondaryNode local7 = this.aClass3_Sub2_21.aClass3_Sub2_67; @Pc(7) SecondaryNode local7 = this.sentinel.secondaryNext;
while (local7 != this.aClass3_Sub2_21) { while (local7 != this.sentinel) {
local7 = local7.aClass3_Sub2_67; local7 = local7.secondaryNext;
local3++; local3++;
} }
return local3; return local3;
} }
@OriginalMember(owner = "client!ce", name = "b", descriptor = "(B)Lclient!rg;") @OriginalMember(owner = "client!ce", name = "b", descriptor = "(B)Lclient!rg;")
public final SecondaryNode method795() { public final SecondaryNode head() {
@Pc(3) SecondaryNode local3 = this.aClass3_Sub2_21.aClass3_Sub2_67; @Pc(3) SecondaryNode local3 = this.sentinel.secondaryNext;
if (this.aClass3_Sub2_21 == local3) { if (this.sentinel == local3) {
this.aClass3_Sub2_22 = null; this.cursor = null;
return null; return null;
} else { } else {
this.aClass3_Sub2_22 = local3.aClass3_Sub2_67; this.cursor = local3.secondaryNext;
return local3; return local3;
} }
} }
@OriginalMember(owner = "client!ce", name = "b", descriptor = "(I)Lclient!rg;") @OriginalMember(owner = "client!ce", name = "b", descriptor = "(I)Lclient!rg;")
public final SecondaryNode method796() { public final SecondaryNode removeHead() {
@Pc(7) SecondaryNode local7 = this.aClass3_Sub2_21.aClass3_Sub2_67; @Pc(7) SecondaryNode local7 = this.sentinel.secondaryNext;
if (local7 == this.aClass3_Sub2_21) { if (local7 == this.sentinel) {
return null; return null;
} else { } else {
local7.method4365(); local7.unlinkSecondary();
return local7; return local7;
} }
} }
@OriginalMember(owner = "client!ce", name = "c", descriptor = "(I)Lclient!rg;") @OriginalMember(owner = "client!ce", name = "c", descriptor = "(I)Lclient!rg;")
public final SecondaryNode method797() { public final SecondaryNode next() {
@Pc(2) SecondaryNode local2 = this.aClass3_Sub2_22; @Pc(2) SecondaryNode local2 = this.cursor;
if (local2 == this.aClass3_Sub2_21) { if (local2 == this.sentinel) {
this.aClass3_Sub2_22 = null; this.cursor = null;
return null; return null;
} else { } else {
this.aClass3_Sub2_22 = local2.aClass3_Sub2_67; this.cursor = local2.secondaryNext;
return local2; return local2;
} }
} }
@OriginalMember(owner = "client!ce", name = "a", descriptor = "(Lclient!rg;B)V") @OriginalMember(owner = "client!ce", name = "a", descriptor = "(Lclient!rg;B)V")
public final void addTail(@OriginalArg(0) SecondaryNode arg0) { public final void addTail(@OriginalArg(0) SecondaryNode arg0) {
if (arg0.aClass3_Sub2_66 != null) { if (arg0.secondaryPrev != null) {
arg0.method4365(); arg0.unlinkSecondary();
} }
arg0.aClass3_Sub2_66 = this.aClass3_Sub2_21.aClass3_Sub2_66; arg0.secondaryPrev = this.sentinel.secondaryPrev;
arg0.aClass3_Sub2_67 = this.aClass3_Sub2_21; arg0.secondaryNext = this.sentinel;
arg0.aClass3_Sub2_66.aClass3_Sub2_67 = arg0; arg0.secondaryPrev.secondaryNext = arg0;
arg0.aClass3_Sub2_67.aClass3_Sub2_66 = arg0; arg0.secondaryNext.secondaryPrev = arg0;
} }
@OriginalMember(owner = "client!ce", name = "d", descriptor = "(I)V") @OriginalMember(owner = "client!ce", name = "d", descriptor = "(I)V")
public final void clear() { public final void clear() {
while (true) { while (true) {
@Pc(15) SecondaryNode local15 = this.aClass3_Sub2_21.aClass3_Sub2_67; @Pc(15) SecondaryNode local15 = this.sentinel.secondaryNext;
if (this.aClass3_Sub2_21 == local15) { if (this.sentinel == local15) {
this.aClass3_Sub2_22 = null; this.cursor = null;
return; return;
} }
local15.method4365(); local15.unlinkSecondary();
} }
} }
} }

View file

@ -10,18 +10,18 @@ public class SecondaryNode extends Node {
public long secondaryKey; public long secondaryKey;
@OriginalMember(owner = "client!rg", name = "w", descriptor = "Lclient!rg;") @OriginalMember(owner = "client!rg", name = "w", descriptor = "Lclient!rg;")
public SecondaryNode aClass3_Sub2_66; public SecondaryNode secondaryPrev;
@OriginalMember(owner = "client!rg", name = "G", descriptor = "Lclient!rg;") @OriginalMember(owner = "client!rg", name = "G", descriptor = "Lclient!rg;")
public SecondaryNode aClass3_Sub2_67; public SecondaryNode secondaryNext;
@OriginalMember(owner = "client!rg", name = "e", descriptor = "(B)V") @OriginalMember(owner = "client!rg", name = "e", descriptor = "(B)V")
public final void method4365() { public final void unlinkSecondary() {
if (this.aClass3_Sub2_66 != null) { if (this.secondaryPrev != null) {
this.aClass3_Sub2_66.aClass3_Sub2_67 = this.aClass3_Sub2_67; this.secondaryPrev.secondaryNext = this.secondaryNext;
this.aClass3_Sub2_67.aClass3_Sub2_66 = this.aClass3_Sub2_66; this.secondaryNext.secondaryPrev = this.secondaryPrev;
this.aClass3_Sub2_67 = null; this.secondaryNext = null;
this.aClass3_Sub2_66 = null; this.secondaryPrev = null;
} }
} }
} }

View file

@ -32,22 +32,22 @@ public final class SoftLruHashTable {
@OriginalMember(owner = "client!gk", name = "a", descriptor = "(Lclient!rg;Lclient!rg;B)V") @OriginalMember(owner = "client!gk", name = "a", descriptor = "(Lclient!rg;Lclient!rg;B)V")
public static void method1772(@OriginalArg(0) SecondaryNode arg0, @OriginalArg(1) SecondaryNode arg1) { public static void method1772(@OriginalArg(0) SecondaryNode arg0, @OriginalArg(1) SecondaryNode arg1) {
if (arg1.aClass3_Sub2_66 != null) { if (arg1.secondaryPrev != null) {
arg1.method4365(); arg1.unlinkSecondary();
} }
arg1.aClass3_Sub2_66 = arg0; arg1.secondaryPrev = arg0;
arg1.aClass3_Sub2_67 = arg0.aClass3_Sub2_67; arg1.secondaryNext = arg0.secondaryNext;
arg1.aClass3_Sub2_66.aClass3_Sub2_67 = arg1; arg1.secondaryPrev.secondaryNext = arg1;
arg1.aClass3_Sub2_67.aClass3_Sub2_66 = arg1; arg1.secondaryNext.secondaryPrev = arg1;
} }
@OriginalMember(owner = "client!n", name = "a", descriptor = "(BLjava/lang/Object;J)V") @OriginalMember(owner = "client!n", name = "a", descriptor = "(BLjava/lang/Object;J)V")
public final void put(@OriginalArg(1) Object arg0, @OriginalArg(2) long arg1) { public final void put(@OriginalArg(1) Object arg0, @OriginalArg(2) long arg1) {
this.method3098(arg1); this.method3098(arg1);
if (this.anInt3966 == 0) { if (this.anInt3966 == 0) {
@Pc(26) ReferenceNode local26 = (ReferenceNode) this.aClass16_8.method796(); @Pc(26) ReferenceNode local26 = (ReferenceNode) this.aClass16_8.removeHead();
local26.unlink(); local26.unlink();
local26.method4365(); local26.unlinkSecondary();
} else { } else {
this.anInt3966--; this.anInt3966--;
} }
@ -62,7 +62,7 @@ public final class SoftLruHashTable {
@Pc(6) ReferenceNode local6 = (ReferenceNode) this.aClass133_18.get(arg0); @Pc(6) ReferenceNode local6 = (ReferenceNode) this.aClass133_18.get(arg0);
if (local6 != null) { if (local6 != null) {
local6.unlink(); local6.unlink();
local6.method4365(); local6.unlinkSecondary();
this.anInt3966++; this.anInt3966++;
} }
} }
@ -70,7 +70,7 @@ public final class SoftLruHashTable {
@OriginalMember(owner = "client!n", name = "a", descriptor = "(I)I") @OriginalMember(owner = "client!n", name = "a", descriptor = "(I)I")
public final int method3100() { public final int method3100() {
@Pc(10) int local10 = 0; @Pc(10) int local10 = 0;
for (@Pc(16) ReferenceNode local16 = (ReferenceNode) this.aClass16_8.method795(); local16 != null; local16 = (ReferenceNode) this.aClass16_8.method797()) { for (@Pc(16) ReferenceNode local16 = (ReferenceNode) this.aClass16_8.head(); local16 != null; local16 = (ReferenceNode) this.aClass16_8.next()) {
if (!local16.method3619()) { if (!local16.method3619()) {
local10++; local10++;
} }
@ -83,11 +83,11 @@ public final class SoftLruHashTable {
if (ReferenceNodeFactory.SOFT_REFERENCE_NODE_FACTORY == null) { if (ReferenceNodeFactory.SOFT_REFERENCE_NODE_FACTORY == null) {
return; return;
} }
for (@Pc(9) ReferenceNode local9 = (ReferenceNode) this.aClass16_8.method795(); local9 != null; local9 = (ReferenceNode) this.aClass16_8.method797()) { for (@Pc(9) ReferenceNode local9 = (ReferenceNode) this.aClass16_8.head(); local9 != null; local9 = (ReferenceNode) this.aClass16_8.next()) {
if (local9.method3619()) { if (local9.method3619()) {
if (local9.method3618() == null) { if (local9.method3618() == null) {
local9.unlink(); local9.unlink();
local9.method4365(); local9.unlinkSecondary();
this.anInt3966++; this.anInt3966++;
} }
} else if (++local9.secondaryKey > (long) arg0) { } else if (++local9.secondaryKey > (long) arg0) {
@ -95,17 +95,17 @@ public final class SoftLruHashTable {
this.aClass133_18.put(local33, local9.key); this.aClass133_18.put(local33, local9.key);
method1772(local9, local33); method1772(local9, local33);
local9.unlink(); local9.unlink();
local9.method4365(); local9.unlinkSecondary();
} }
} }
} }
@OriginalMember(owner = "client!n", name = "b", descriptor = "(B)V") @OriginalMember(owner = "client!n", name = "b", descriptor = "(B)V")
public final void method3103() { public final void method3103() {
for (@Pc(7) ReferenceNode local7 = (ReferenceNode) this.aClass16_8.method795(); local7 != null; local7 = (ReferenceNode) this.aClass16_8.method797()) { for (@Pc(7) ReferenceNode local7 = (ReferenceNode) this.aClass16_8.head(); local7 != null; local7 = (ReferenceNode) this.aClass16_8.next()) {
if (local7.method3619()) { if (local7.method3619()) {
local7.unlink(); local7.unlink();
local7.method4365(); local7.unlinkSecondary();
this.anInt3966++; this.anInt3966++;
} }
} }
@ -127,7 +127,7 @@ public final class SoftLruHashTable {
@Pc(27) Object local27 = local12.method3618(); @Pc(27) Object local27 = local12.method3618();
if (local27 == null) { if (local27 == null) {
local12.unlink(); local12.unlink();
local12.method4365(); local12.unlinkSecondary();
this.anInt3966++; this.anInt3966++;
return null; return null;
} }
@ -137,7 +137,7 @@ public final class SoftLruHashTable {
this.aClass16_8.addTail(local53); this.aClass16_8.addTail(local53);
local53.secondaryKey = 0L; local53.secondaryKey = 0L;
local12.unlink(); local12.unlink();
local12.method4365(); local12.unlinkSecondary();
} else { } else {
this.aClass16_8.addTail(local12); this.aClass16_8.addTail(local12);
local12.secondaryKey = 0L; local12.secondaryKey = 0L;

View file

@ -329,9 +329,9 @@ public final class Static87 {
objId = 0; objId = 0;
local556 = 0; local556 = 0;
for (local563 = 0; local563 < 28; local563++) { for (local563 = 0; local563 < 28; local563++) {
cardMemory += client.js5Providers[local563].method535(); cardMemory += client.js5Providers[local563].getIndexSize();
local556 += client.js5Providers[local563].method529(); local556 += client.js5Providers[local563].getVerifiedGroups();
objId += client.js5Providers[local563].method533(); objId += client.js5Providers[local563].getTotalVerifiedGroups();
} }
local571 = local556 * 10000 / cardMemory; local571 = local556 * 10000 / cardMemory;
local563 = objId * 100 / cardMemory; local563 = objId * 100 / cardMemory;

View file

@ -77,7 +77,7 @@ public final class Static89 {
@OriginalMember(owner = "client!ha", name = "a", descriptor = "([IJIZ)Lclient!na;") @OriginalMember(owner = "client!ha", name = "a", descriptor = "([IJIZ)Lclient!na;")
public static JagString method1838(@OriginalArg(0) int[] arg0, @OriginalArg(1) long arg1, @OriginalArg(2) int arg2) { public static JagString method1838(@OriginalArg(0) int[] arg0, @OriginalArg(1) long arg1, @OriginalArg(2) int arg2) {
if (QuickChatPhraseTypeList.decoder != null) { if (QuickChatPhraseTypeList.decoder != null) {
@Pc(17) JagString local17 = QuickChatPhraseTypeList.decoder.method30(arg2, arg0, arg1); @Pc(17) JagString local17 = QuickChatPhraseTypeList.decoder.decode(arg2, arg0, arg1);
if (local17 != null) { if (local17 != null) {
return local17; return local17;
} }