239 lines
6.5 KiB
Java
239 lines
6.5 KiB
Java
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedGetter;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
|
|
@ObfuscatedName("fd")
|
|
@Implements("MilliClock")
|
|
public class MilliClock extends Clock {
|
|
@ObfuscatedName("qi")
|
|
@ObfuscatedSignature(
|
|
signature = "Ldp;"
|
|
)
|
|
@Export("decimator")
|
|
static Decimator decimator;
|
|
@ObfuscatedName("m")
|
|
long[] field517;
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedGetter(
|
|
intValue = 1940981129
|
|
)
|
|
int field518;
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedGetter(
|
|
intValue = 1217137493
|
|
)
|
|
int field519;
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedGetter(
|
|
longValue = -8372744267470318611L
|
|
)
|
|
long field520;
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedGetter(
|
|
intValue = 250272357
|
|
)
|
|
int field521;
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedGetter(
|
|
intValue = 576555527
|
|
)
|
|
int field522;
|
|
|
|
public MilliClock() {
|
|
this.field517 = new long[10];
|
|
this.field518 = 256;
|
|
this.field519 = 1;
|
|
this.field521 = 0;
|
|
this.field520 = class203.currentTimeMs();
|
|
|
|
for (int var1 = 0; var1 < 10; ++var1) {
|
|
this.field517[var1] = this.field520;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(B)V",
|
|
garbageValue = "61"
|
|
)
|
|
@Export("mark")
|
|
public void mark() {
|
|
for (int var1 = 0; var1 < 10; ++var1) {
|
|
this.field517[var1] = 0L;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("f")
|
|
@ObfuscatedSignature(
|
|
signature = "(III)I",
|
|
garbageValue = "-126803683"
|
|
)
|
|
@Export("wait")
|
|
public int wait(int cycleMs, int minSleepMs) {
|
|
int var3 = this.field518;
|
|
int var4 = this.field519;
|
|
this.field518 = 300;
|
|
this.field519 = 1;
|
|
this.field520 = class203.currentTimeMs();
|
|
if (0L == this.field517[this.field522]) {
|
|
this.field518 = var3;
|
|
this.field519 = var4;
|
|
} else if (this.field520 > this.field517[this.field522]) {
|
|
this.field518 = (int)((long)(cycleMs * 2560) / (this.field520 - this.field517[this.field522]));
|
|
}
|
|
|
|
if (this.field518 < 25) {
|
|
this.field518 = 25;
|
|
}
|
|
|
|
if (this.field518 > 256) {
|
|
this.field518 = 256;
|
|
this.field519 = (int)((long)cycleMs - (this.field520 - this.field517[this.field522]) / 10L);
|
|
}
|
|
|
|
if (this.field519 > cycleMs) {
|
|
this.field519 = cycleMs;
|
|
}
|
|
|
|
this.field517[this.field522] = this.field520;
|
|
this.field522 = (this.field522 + 1) % 10;
|
|
int var5;
|
|
if (this.field519 > 1) {
|
|
for (var5 = 0; var5 < 10; ++var5) {
|
|
if (this.field517[var5] != 0L) {
|
|
long[] var6 = this.field517;
|
|
var6[var5] += (long)this.field519;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (this.field519 < minSleepMs) {
|
|
this.field519 = minSleepMs;
|
|
}
|
|
|
|
class203.method4010((long)this.field519);
|
|
|
|
for (var5 = 0; this.field521 < 256; this.field521 += this.field518) {
|
|
++var5;
|
|
}
|
|
|
|
this.field521 &= 255;
|
|
return var5;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
signature = "([Lbt;II[I[II)V",
|
|
garbageValue = "-1374398116"
|
|
)
|
|
static void method3400(World[] var0, int var1, int var2, int[] var3, int[] var4) {
|
|
if (var1 < var2) {
|
|
int var5 = var1 - 1;
|
|
int var6 = var2 + 1;
|
|
int var7 = (var2 + var1) / 2;
|
|
World var8 = var0[var7];
|
|
var0[var7] = var0[var1];
|
|
var0[var1] = var8;
|
|
|
|
while (var5 < var6) {
|
|
boolean var9 = true;
|
|
|
|
int var10;
|
|
int var11;
|
|
int var12;
|
|
do {
|
|
--var6;
|
|
|
|
for (var10 = 0; var10 < 4; ++var10) {
|
|
if (var3[var10] == 2) {
|
|
var11 = var0[var6].index;
|
|
var12 = var8.index;
|
|
} else if (var3[var10] == 1) {
|
|
var11 = var0[var6].population;
|
|
var12 = var8.population;
|
|
if (var11 == -1 && var4[var10] == 1) {
|
|
var11 = 2001;
|
|
}
|
|
|
|
if (var12 == -1 && var4[var10] == 1) {
|
|
var12 = 2001;
|
|
}
|
|
} else if (var3[var10] == 3) {
|
|
var11 = var0[var6].isMembersOnly() ? 1 : 0;
|
|
var12 = var8.isMembersOnly() ? 1 : 0;
|
|
} else {
|
|
var11 = var0[var6].id;
|
|
var12 = var8.id;
|
|
}
|
|
|
|
if (var12 != var11) {
|
|
if ((var4[var10] != 1 || var11 <= var12) && (var4[var10] != 0 || var11 >= var12)) {
|
|
var9 = false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (var10 == 3) {
|
|
var9 = false;
|
|
}
|
|
}
|
|
} while(var9);
|
|
|
|
var9 = true;
|
|
|
|
do {
|
|
++var5;
|
|
|
|
for (var10 = 0; var10 < 4; ++var10) {
|
|
if (var3[var10] == 2) {
|
|
var11 = var0[var5].index;
|
|
var12 = var8.index;
|
|
} else if (var3[var10] == 1) {
|
|
var11 = var0[var5].population;
|
|
var12 = var8.population;
|
|
if (var11 == -1 && var4[var10] == 1) {
|
|
var11 = 2001;
|
|
}
|
|
|
|
if (var12 == -1 && var4[var10] == 1) {
|
|
var12 = 2001;
|
|
}
|
|
} else if (var3[var10] == 3) {
|
|
var11 = var0[var5].isMembersOnly() ? 1 : 0;
|
|
var12 = var8.isMembersOnly() ? 1 : 0;
|
|
} else {
|
|
var11 = var0[var5].id;
|
|
var12 = var8.id;
|
|
}
|
|
|
|
if (var11 != var12) {
|
|
if ((var4[var10] != 1 || var11 >= var12) && (var4[var10] != 0 || var11 <= var12)) {
|
|
var9 = false;
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (var10 == 3) {
|
|
var9 = false;
|
|
}
|
|
}
|
|
} while(var9);
|
|
|
|
if (var5 < var6) {
|
|
World var13 = var0[var5];
|
|
var0[var5] = var0[var6];
|
|
var0[var6] = var13;
|
|
}
|
|
}
|
|
|
|
method3400(var0, var1, var6, var3, var4);
|
|
method3400(var0, var6 + 1, var2, var3, var4);
|
|
}
|
|
|
|
}
|
|
}
|