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; } } } } }