467 lines
17 KiB
Java
467 lines
17 KiB
Java
import java.util.Date;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
import net.runelite.rs.ScriptOpcodes;
|
|
|
|
@ObfuscatedName("w")
|
|
@Implements("WorldMapData_0")
|
|
public class WorldMapData_0 extends AbstractWorldMapData {
|
|
@ObfuscatedName("sz")
|
|
@ObfuscatedSignature(
|
|
signature = "Lkg;"
|
|
)
|
|
@Export("masterDisk")
|
|
static ArchiveDisk masterDisk;
|
|
@ObfuscatedName("ex")
|
|
@ObfuscatedSignature(
|
|
signature = "Lkw;"
|
|
)
|
|
@Export("spriteIds")
|
|
static GraphicsDefaults spriteIds;
|
|
@ObfuscatedName("gz")
|
|
@ObfuscatedSignature(
|
|
signature = "[Llp;"
|
|
)
|
|
@Export("modIconSprites")
|
|
static IndexedSprite[] modIconSprites;
|
|
|
|
WorldMapData_0() {
|
|
}
|
|
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lkl;I)V",
|
|
garbageValue = "-443857335"
|
|
)
|
|
@Export("init")
|
|
void init(Buffer var1) {
|
|
int var2 = var1.readUnsignedByte();
|
|
if (var2 != WorldMapID.field256.value) {
|
|
throw new IllegalStateException("");
|
|
} else {
|
|
super.minPlane = var1.readUnsignedByte();
|
|
super.planes = var1.readUnsignedByte();
|
|
super.regionXLow = var1.readUnsignedShort() * 4096;
|
|
super.regionYLow = var1.readUnsignedShort() * 4096;
|
|
super.regionX = var1.readUnsignedShort();
|
|
super.regionY = var1.readUnsignedShort();
|
|
super.groupId = var1.method5453();
|
|
super.fileId = var1.method5453();
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lkl;I)V",
|
|
garbageValue = "1549979331"
|
|
)
|
|
@Export("readGeography")
|
|
void readGeography(Buffer var1) {
|
|
super.planes = Math.min(super.planes, 4);
|
|
super.floorUnderlayIds = new short[1][64][64];
|
|
super.floorOverlayIds = new short[super.planes][64][64];
|
|
super.field164 = new byte[super.planes][64][64];
|
|
super.field152 = new byte[super.planes][64][64];
|
|
super.decorations = new WorldMapDecoration[super.planes][64][64][];
|
|
int var2 = var1.readUnsignedByte();
|
|
if (var2 != class30.field253.value) {
|
|
throw new IllegalStateException("");
|
|
} else {
|
|
int var3 = var1.readUnsignedByte();
|
|
int var4 = var1.readUnsignedByte();
|
|
if (var3 == super.regionX && var4 == super.regionY) {
|
|
for (int var5 = 0; var5 < 64; ++var5) {
|
|
for (int var6 = 0; var6 < 64; ++var6) {
|
|
this.readTile(var5, var6, var1);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
throw new IllegalStateException("");
|
|
}
|
|
}
|
|
}
|
|
|
|
public boolean equals(Object var1) {
|
|
if (!(var1 instanceof WorldMapData_0)) {
|
|
return false;
|
|
} else {
|
|
WorldMapData_0 var2 = (WorldMapData_0)var1;
|
|
return var2.regionX == super.regionX && var2.regionY == super.regionY;
|
|
}
|
|
}
|
|
|
|
public int hashCode() {
|
|
return super.regionX | super.regionY << 8;
|
|
}
|
|
|
|
@ObfuscatedName("v")
|
|
@ObfuscatedSignature(
|
|
signature = "([Lbo;II[I[IB)V",
|
|
garbageValue = "59"
|
|
)
|
|
@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);
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(II)Z",
|
|
garbageValue = "387088123"
|
|
)
|
|
@Export("loadInterface")
|
|
public static boolean loadInterface(int var0) {
|
|
if (ViewportMouse.Widget_loadedInterfaces[var0]) {
|
|
return true;
|
|
} else if (!Widget.Widget_archive.tryLoadGroup(var0)) {
|
|
return false;
|
|
} else {
|
|
int var1 = Widget.Widget_archive.getGroupFileCount(var0);
|
|
if (var1 == 0) {
|
|
ViewportMouse.Widget_loadedInterfaces[var0] = true;
|
|
return true;
|
|
} else {
|
|
if (UserComparator5.Widget_interfaceComponents[var0] == null) {
|
|
UserComparator5.Widget_interfaceComponents[var0] = new Widget[var1];
|
|
}
|
|
|
|
for (int var2 = 0; var2 < var1; ++var2) {
|
|
if (UserComparator5.Widget_interfaceComponents[var0][var2] == null) {
|
|
byte[] var3 = Widget.Widget_archive.takeFile(var0, var2);
|
|
if (var3 != null) {
|
|
UserComparator5.Widget_interfaceComponents[var0][var2] = new Widget();
|
|
UserComparator5.Widget_interfaceComponents[var0][var2].id = var2 + (var0 << 16);
|
|
if (var3[0] == -1) {
|
|
UserComparator5.Widget_interfaceComponents[var0][var2].decode(new Buffer(var3));
|
|
} else {
|
|
UserComparator5.Widget_interfaceComponents[var0][var2].decodeLegacy(new Buffer(var3));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ViewportMouse.Widget_loadedInterfaces[var0] = true;
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("u")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILhp;Ljava/lang/String;Ljava/lang/String;IZS)V",
|
|
garbageValue = "6590"
|
|
)
|
|
public static void method194(int var0, AbstractArchive var1, String var2, String var3, int var4, boolean var5) {
|
|
int var6 = var1.getGroupId(var2);
|
|
int var7 = var1.getFileId(var6, var3);
|
|
class197.field2386 = 1;
|
|
class197.musicTrackArchive = var1;
|
|
class188.musicTrackGroupId = var6;
|
|
class49.musicTrackFileId = var7;
|
|
TileItem.field1223 = var4;
|
|
WorldMapSectionType.musicTrackBoolean = var5;
|
|
MusicPatchNode2.field2382 = var0;
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
signature = "(Ljava/lang/CharSequence;B)I",
|
|
garbageValue = "71"
|
|
)
|
|
@Export("hashString")
|
|
public static int hashString(CharSequence var0) {
|
|
int var1 = var0.length();
|
|
int var2 = 0;
|
|
|
|
for (int var3 = 0; var3 < var1; ++var3) {
|
|
var2 = (var2 << 5) - var2 + Entity.charToByteCp1252(var0.charAt(var3));
|
|
}
|
|
|
|
return var2;
|
|
}
|
|
|
|
@ObfuscatedName("ax")
|
|
@ObfuscatedSignature(
|
|
signature = "(ILcu;ZI)I",
|
|
garbageValue = "-1153827827"
|
|
)
|
|
static int method177(int var0, Script var1, boolean var2) {
|
|
String var3;
|
|
int var4;
|
|
if (var0 == ScriptOpcodes.APPEND_NUM) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + var4;
|
|
return 1;
|
|
} else {
|
|
String var9;
|
|
if (var0 == ScriptOpcodes.APPEND) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + var9;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.APPEND_SIGNNUM) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + HealthBar.intToString(var4, true);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.LOWERCASE) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.toLowerCase();
|
|
return 1;
|
|
} else {
|
|
int var6;
|
|
int var10;
|
|
if (var0 == ScriptOpcodes.FROMDATE) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
long var11 = 86400000L * (11745L + (long)var10);
|
|
Interpreter.Interpreter_calendar.setTime(new Date(var11));
|
|
var6 = Interpreter.Interpreter_calendar.get(5);
|
|
int var16 = Interpreter.Interpreter_calendar.get(2);
|
|
int var8 = Interpreter.Interpreter_calendar.get(1);
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var6 + "-" + Interpreter.Interpreter_MONTHS[var16] + "-" + var8;
|
|
return 1;
|
|
} else if (var0 != ScriptOpcodes.TEXT_GENDER) {
|
|
if (var0 == ScriptOpcodes.TOSTRING) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = Integer.toString(var10);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.COMPARE) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = class189.method3615(Interpreter.compareStrings(Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize], Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1], WorldMapLabelSize.clientLanguage));
|
|
return 1;
|
|
} else {
|
|
int var5;
|
|
byte[] var13;
|
|
Font var14;
|
|
if (var0 == ScriptOpcodes.PARAHEIGHT) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_intStackSize -= 2;
|
|
var4 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
|
|
var13 = Tile.archive13.takeFile(var5, 0);
|
|
var14 = new Font(var13);
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var14.lineCount(var3, var4);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.PARAWIDTH) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_intStackSize -= 2;
|
|
var4 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
|
|
var13 = Tile.archive13.takeFile(var5, 0);
|
|
var14 = new Font(var13);
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var14.lineWidth(var3, var4);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.TEXT_SWITCH) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
if (Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize] == 1) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3;
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var9;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.ESCAPE) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = AbstractFont.escapeBrackets(var3);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.APPEND_CHAR) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3 + (char)var4;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISPRINTABLE) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = TileItem.isCharPrintable((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISALPHANUMERIC) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = AbstractArchive.isAlphaNumeric((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISALPHA) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = UserComparator7.isCharAlphabetic((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.CHAR_ISNUMERIC) {
|
|
var10 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = AbstractWorldMapIcon.isDigit((char)var10) ? 1 : 0;
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_LENGTH) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
if (var3 != null) {
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.length();
|
|
} else {
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
|
|
}
|
|
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.SUBSTRING) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_intStackSize -= 2;
|
|
var4 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize];
|
|
var5 = Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.substring(var4, var5);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.REMOVETAGS) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
StringBuilder var17 = new StringBuilder(var3.length());
|
|
boolean var15 = false;
|
|
|
|
for (var6 = 0; var6 < var3.length(); ++var6) {
|
|
char var7 = var3.charAt(var6);
|
|
if (var7 == '<') {
|
|
var15 = true;
|
|
} else if (var7 == '>') {
|
|
var15 = false;
|
|
} else if (!var15) {
|
|
var17.append(var7);
|
|
}
|
|
}
|
|
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var17.toString();
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_INDEXOF_CHAR) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
var4 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.indexOf(var4);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.STRING_INDEXOF_STRING) {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
var5 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize];
|
|
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.indexOf(var9, var5);
|
|
return 1;
|
|
} else if (var0 == ScriptOpcodes.UPPERCASE) {
|
|
var3 = Interpreter.Interpreter_stringStack[--Interpreter.Interpreter_stringStackSize];
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3.toUpperCase();
|
|
return 1;
|
|
} else {
|
|
return 2;
|
|
}
|
|
}
|
|
} else {
|
|
Interpreter.Interpreter_stringStackSize -= 2;
|
|
var3 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize];
|
|
var9 = Interpreter.Interpreter_stringStack[Interpreter.Interpreter_stringStackSize + 1];
|
|
if (class223.localPlayer.appearance != null && class223.localPlayer.appearance.isFemale) {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var9;
|
|
} else {
|
|
Interpreter.Interpreter_stringStack[++Interpreter.Interpreter_stringStackSize - 1] = var3;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|