Files
runelite/runescape-client/src/main/java/Interpreter.java
Owain van Brakel add4ca8005 chore: rev 188
2020-01-29 14:20:08 +01:00

185 lines
4.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("bo")
@Implements("Interpreter")
public class Interpreter {
@ObfuscatedName("o")
@Export("Interpreter_intLocals")
static int[] Interpreter_intLocals;
@ObfuscatedName("e")
@Export("Interpreter_stringLocals")
static String[] Interpreter_stringLocals;
@ObfuscatedName("i")
@Export("Interpreter_arrayLengths")
static int[] Interpreter_arrayLengths;
@ObfuscatedName("g")
@Export("Interpreter_arrays")
static int[][] Interpreter_arrays;
@ObfuscatedName("d")
@Export("Interpreter_intStack")
static int[] Interpreter_intStack;
@ObfuscatedName("j")
@Export("Interpreter_stringStack")
static String[] Interpreter_stringStack;
@ObfuscatedName("p")
@ObfuscatedGetter(
intValue = 918473247
)
@Export("Interpreter_frameDepth")
static int Interpreter_frameDepth;
@ObfuscatedName("h")
@ObfuscatedSignature(
signature = "[Lbb;"
)
@Export("Interpreter_frames")
static ScriptFrame[] Interpreter_frames;
@ObfuscatedName("x")
@Export("Interpreter_calendar")
static java.util.Calendar Interpreter_calendar;
@ObfuscatedName("w")
@Export("Interpreter_MONTHS")
static final String[] Interpreter_MONTHS;
@ObfuscatedName("q")
static boolean field1094;
@ObfuscatedName("z")
static boolean field1095;
@ObfuscatedName("y")
@ObfuscatedGetter(
intValue = 1093173165
)
static int field1088;
@ObfuscatedName("s")
static final double field1097;
static {
Interpreter_arrayLengths = new int[5];
Interpreter_arrays = new int[5][5000];
Interpreter_intStack = new int[1000];
Interpreter_stringStack = new String[1000];
Interpreter_frameDepth = 0;
Interpreter_frames = new ScriptFrame[50];
Interpreter_calendar = java.util.Calendar.getInstance();
Interpreter_MONTHS = new String[]{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
field1094 = false;
field1095 = false;
field1088 = 0;
field1097 = Math.log(2.0D);
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "([Lbg;II[I[IB)V",
garbageValue = "-20"
)
@Export("sortWorlds")
static void sortWorlds(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 (var11 != var12) {
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 (var12 != var11) {
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;
}
}
sortWorlds(var0, var1, var6, var3, var4);
sortWorlds(var0, var6 + 1, var2, var3, var4);
}
}
}