Files
runelite/runescape-client/src/main/java/UserComparator3.java
therealunull 8f587826ee chore: rev 193
2020-12-09 11:07:26 -05:00

172 lines
4.4 KiB
Java

import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("fv")
@Implements("UserComparator3")
public class UserComparator3 extends AbstractUserComparator {
@ObfuscatedName("h")
@Export("reversed")
final boolean reversed;
public UserComparator3(boolean var1) {
this.reversed = var1;
}
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(Lkz;Lkz;B)I",
garbageValue = "96"
)
@Export("compareBuddy")
int compareBuddy(Buddy var1, Buddy var2) {
if (var2.world != var1.world) {
return this.reversed ? var1.world - var2.world : var2.world - var1.world;
} else {
return this.compareUser(var1, var2);
}
}
public int compare(Object var1, Object var2) {
return this.compareBuddy((Buddy)var1, (Buddy)var2);
}
@ObfuscatedName("x")
@ObfuscatedSignature(
descriptor = "(Lky;B)V",
garbageValue = "10"
)
static final void method3515(PacketBuffer var0) {
int var1 = 0;
var0.importIndex();
byte[] var10000;
int var2;
int var4;
int var5;
for (var2 = 0; var2 < Players.Players_count; ++var2) {
var5 = Players.Players_indices[var2];
if ((Players.field1252[var5] & 1) == 0) {
if (var1 > 0) {
--var1;
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
var4 = var0.readBits(1);
if (var4 == 0) {
var1 = Skills.method4146(var0);
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
class349.readPlayerUpdate(var0, var5);
}
}
}
}
var0.exportIndex();
if (var1 != 0) {
throw new RuntimeException();
} else {
var0.importIndex();
for (var2 = 0; var2 < Players.Players_count; ++var2) {
var5 = Players.Players_indices[var2];
if ((Players.field1252[var5] & 1) != 0) {
if (var1 > 0) {
--var1;
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
var4 = var0.readBits(1);
if (var4 == 0) {
var1 = Skills.method4146(var0);
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
class349.readPlayerUpdate(var0, var5);
}
}
}
}
var0.exportIndex();
if (var1 != 0) {
throw new RuntimeException();
} else {
var0.importIndex();
for (var2 = 0; var2 < Players.Players_emptyIdxCount; ++var2) {
var5 = Players.Players_emptyIndices[var2];
if ((Players.field1252[var5] & 1) != 0) {
if (var1 > 0) {
--var1;
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
var4 = var0.readBits(1);
if (var4 == 0) {
var1 = Skills.method4146(var0);
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else if (WorldMapSection0.updateExternalPlayer(var0, var5)) {
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
}
}
}
}
var0.exportIndex();
if (var1 != 0) {
throw new RuntimeException();
} else {
var0.importIndex();
for (var2 = 0; var2 < Players.Players_emptyIdxCount; ++var2) {
var5 = Players.Players_emptyIndices[var2];
if ((Players.field1252[var5] & 1) == 0) {
if (var1 > 0) {
--var1;
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else {
var4 = var0.readBits(1);
if (var4 == 0) {
var1 = Skills.method4146(var0);
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
} else if (WorldMapSection0.updateExternalPlayer(var0, var5)) {
var10000 = Players.field1252;
var10000[var5] = (byte)(var10000[var5] | 2);
}
}
}
}
var0.exportIndex();
if (var1 != 0) {
throw new RuntimeException();
} else {
Players.Players_count = 0;
Players.Players_emptyIdxCount = 0;
for (var2 = 1; var2 < 2048; ++var2) {
var10000 = Players.field1252;
var10000[var2] = (byte)(var10000[var2] >> 1);
Player var3 = Client.players[var2];
if (var3 != null) {
Players.Players_indices[++Players.Players_count - 1] = var2;
} else {
Players.Players_emptyIndices[++Players.Players_emptyIdxCount - 1] = var2;
}
}
}
}
}
}
}
}