172 lines
4.4 KiB
Java
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|