Port Injector to main layout
Adds deobfuscator Adds injected-client Adds injector-plugin Adds runescape-client Replaces RL's apis Small bug with sprites atm, will be resolved soon. tired af. Builds, probably
This commit is contained in:
146
runescape-client/src/main/java/IterableNodeHashTable.java
Normal file
146
runescape-client/src/main/java/IterableNodeHashTable.java
Normal file
@@ -0,0 +1,146 @@
|
||||
import java.util.Iterator;
|
||||
import net.runelite.mapping.Export;
|
||||
import net.runelite.mapping.Implements;
|
||||
import net.runelite.mapping.ObfuscatedName;
|
||||
import net.runelite.mapping.ObfuscatedSignature;
|
||||
|
||||
@ObfuscatedName("lh")
|
||||
@Implements("IterableNodeHashTable")
|
||||
public final class IterableNodeHashTable implements Iterable {
|
||||
@ObfuscatedName("m")
|
||||
@Export("size")
|
||||
int size;
|
||||
@ObfuscatedName("f")
|
||||
@ObfuscatedSignature(
|
||||
signature = "[Lgw;"
|
||||
)
|
||||
@Export("buckets")
|
||||
Node[] buckets;
|
||||
@ObfuscatedName("q")
|
||||
@ObfuscatedSignature(
|
||||
signature = "Lgw;"
|
||||
)
|
||||
@Export("currentGet")
|
||||
Node currentGet;
|
||||
@ObfuscatedName("w")
|
||||
@ObfuscatedSignature(
|
||||
signature = "Lgw;"
|
||||
)
|
||||
@Export("current")
|
||||
Node current;
|
||||
@ObfuscatedName("o")
|
||||
@Export("index")
|
||||
int index;
|
||||
|
||||
public IterableNodeHashTable(int var1) {
|
||||
this.index = 0;
|
||||
this.size = var1;
|
||||
this.buckets = new Node[var1];
|
||||
|
||||
for(int var2 = 0; var2 < var1; ++var2) {
|
||||
Node var3 = this.buckets[var2] = new Node();
|
||||
var3.previous = var3;
|
||||
var3.next = var3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ObfuscatedName("m")
|
||||
@ObfuscatedSignature(
|
||||
signature = "(J)Lgw;"
|
||||
)
|
||||
@Export("get")
|
||||
public Node get(long var1) {
|
||||
Node var3 = this.buckets[(int)(var1 & (long)(this.size - 1))];
|
||||
|
||||
for(this.currentGet = var3.previous; var3 != this.currentGet; this.currentGet = this.currentGet.previous) {
|
||||
if(this.currentGet.key == var1) {
|
||||
Node var4 = this.currentGet;
|
||||
this.currentGet = this.currentGet.previous;
|
||||
return var4;
|
||||
}
|
||||
}
|
||||
|
||||
this.currentGet = null;
|
||||
return null;
|
||||
}
|
||||
|
||||
@ObfuscatedName("f")
|
||||
@ObfuscatedSignature(
|
||||
signature = "(Lgw;J)V"
|
||||
)
|
||||
@Export("put")
|
||||
public void put(Node var1, long var2) {
|
||||
if(var1.next != null) {
|
||||
var1.remove();
|
||||
}
|
||||
|
||||
Node var4 = this.buckets[(int)(var2 & (long)(this.size - 1))];
|
||||
var1.next = var4.next;
|
||||
var1.previous = var4;
|
||||
var1.next.previous = var1;
|
||||
var1.previous.next = var1;
|
||||
var1.key = var2;
|
||||
}
|
||||
|
||||
@ObfuscatedName("q")
|
||||
@Export("clear")
|
||||
public void clear() {
|
||||
for(int var1 = 0; var1 < this.size; ++var1) {
|
||||
Node var2 = this.buckets[var1];
|
||||
|
||||
while(true) {
|
||||
Node var3 = var2.previous;
|
||||
if(var3 == var2) {
|
||||
break;
|
||||
}
|
||||
|
||||
var3.remove();
|
||||
}
|
||||
}
|
||||
|
||||
this.currentGet = null;
|
||||
this.current = null;
|
||||
}
|
||||
|
||||
@ObfuscatedName("w")
|
||||
@ObfuscatedSignature(
|
||||
signature = "()Lgw;"
|
||||
)
|
||||
@Export("first")
|
||||
public Node first() {
|
||||
this.index = 0;
|
||||
return this.next();
|
||||
}
|
||||
|
||||
@ObfuscatedName("o")
|
||||
@ObfuscatedSignature(
|
||||
signature = "()Lgw;"
|
||||
)
|
||||
@Export("next")
|
||||
public Node next() {
|
||||
Node var1;
|
||||
if(this.index > 0 && this.buckets[this.index - 1] != this.current) {
|
||||
var1 = this.current;
|
||||
this.current = var1.previous;
|
||||
return var1;
|
||||
} else {
|
||||
do {
|
||||
if(this.index >= this.size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var1 = this.buckets[this.index++].previous;
|
||||
} while(var1 == this.buckets[this.index - 1]);
|
||||
|
||||
this.current = var1.previous;
|
||||
return var1;
|
||||
}
|
||||
}
|
||||
|
||||
@Export("iterator")
|
||||
@ObfuscatedName("iterator")
|
||||
public Iterator iterator() {
|
||||
return new IterableNodeHashTableIterator(this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user