import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; 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("mr") @Implements("WorldMap") public class WorldMap { @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "Lmk;" ) @Export("fontNameVerdana11") static final FontName fontNameVerdana11; @ObfuscatedName("r") @ObfuscatedSignature( descriptor = "Lmk;" ) @Export("fontNameVerdana13") static final FontName fontNameVerdana13; @ObfuscatedName("p") @ObfuscatedSignature( descriptor = "Lmk;" ) @Export("fontNameVerdana15") static final FontName fontNameVerdana15; @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "Ljy;" ) @Export("WorldMap_archive") AbstractArchive WorldMap_archive; @ObfuscatedName("f") @ObfuscatedSignature( descriptor = "Ljy;" ) @Export("WorldMap_geographyArchive") AbstractArchive WorldMap_geographyArchive; @ObfuscatedName("o") @ObfuscatedSignature( descriptor = "Ljy;" ) @Export("WorldMap_groundArchive") AbstractArchive WorldMap_groundArchive; @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "Lkt;" ) @Export("font") Font font; @ObfuscatedName("k") @Export("fonts") HashMap fonts; @ObfuscatedName("a") @ObfuscatedSignature( descriptor = "[Lof;" ) @Export("mapSceneSprites") IndexedSprite[] mapSceneSprites; @ObfuscatedName("q") @Export("details") HashMap details; @ObfuscatedName("u") @ObfuscatedSignature( descriptor = "Lfa;" ) @Export("mainMapArea") WorldMapArea mainMapArea; @ObfuscatedName("e") @ObfuscatedSignature( descriptor = "Lfa;" ) @Export("currentMapArea") WorldMapArea currentMapArea; @ObfuscatedName("c") @ObfuscatedSignature( descriptor = "Lfa;" ) WorldMapArea field4036; @ObfuscatedName("i") @ObfuscatedSignature( descriptor = "Lfx;" ) @Export("worldMapManager") WorldMapManager worldMapManager; @ObfuscatedName("m") @ObfuscatedSignature( descriptor = "Lmp;" ) @Export("cacheLoader") WorldMapArchiveLoader cacheLoader; @ObfuscatedName("b") @ObfuscatedGetter( intValue = 1628267317 ) @Export("centerTileX") int centerTileX; @ObfuscatedName("z") @ObfuscatedGetter( intValue = 1511757897 ) @Export("centerTileY") int centerTileY; @ObfuscatedName("d") @ObfuscatedGetter( intValue = 216670445 ) @Export("worldMapTargetX") int worldMapTargetX; @ObfuscatedName("y") @ObfuscatedGetter( intValue = -514238391 ) @Export("worldMapTargetY") int worldMapTargetY; @ObfuscatedName("g") @Export("zoom") float zoom; @ObfuscatedName("ae") @Export("zoomTarget") float zoomTarget; @ObfuscatedName("an") @ObfuscatedGetter( intValue = -1589960541 ) @Export("worldMapDisplayWidth") int worldMapDisplayWidth; @ObfuscatedName("am") @ObfuscatedGetter( intValue = 83938015 ) @Export("worldMapDisplayHeight") int worldMapDisplayHeight; @ObfuscatedName("al") @ObfuscatedGetter( intValue = -1937188867 ) @Export("worldMapDisplayX") int worldMapDisplayX; @ObfuscatedName("aq") @ObfuscatedGetter( intValue = -1675873535 ) @Export("worldMapDisplayY") int worldMapDisplayY; @ObfuscatedName("aa") @ObfuscatedGetter( intValue = -36251931 ) @Export("maxFlashCount") int maxFlashCount; @ObfuscatedName("ab") @ObfuscatedGetter( intValue = 1664338223 ) @Export("cyclesPerFlash") int cyclesPerFlash; @ObfuscatedName("ax") @Export("perpetualFlash") boolean perpetualFlash; @ObfuscatedName("au") @Export("flashingElements") HashSet flashingElements; @ObfuscatedName("av") @ObfuscatedGetter( intValue = -1955228711 ) @Export("flashCount") int flashCount; @ObfuscatedName("as") @ObfuscatedGetter( intValue = 1605223935 ) @Export("flashCycle") int flashCycle; @ObfuscatedName("ao") @ObfuscatedGetter( intValue = -497325363 ) int field4055; @ObfuscatedName("az") @ObfuscatedGetter( intValue = -1272167399 ) int field4056; @ObfuscatedName("ak") @ObfuscatedGetter( intValue = -2062078255 ) int field4078; @ObfuscatedName("aj") @ObfuscatedGetter( intValue = -1022401913 ) int field4058; @ObfuscatedName("at") @ObfuscatedGetter( longValue = 6861752418095551451L ) long field4071; @ObfuscatedName("af") @ObfuscatedGetter( intValue = -670328439 ) int field4060; @ObfuscatedName("ar") @ObfuscatedGetter( intValue = 179997453 ) int field4061; @ObfuscatedName("ay") boolean field4062; @ObfuscatedName("ag") @Export("enabledElements") HashSet enabledElements; @ObfuscatedName("ai") @Export("enabledCategories") HashSet enabledCategories; @ObfuscatedName("ad") @Export("enabledElementIds") HashSet enabledElementIds; @ObfuscatedName("ac") HashSet field4022; @ObfuscatedName("aw") @Export("elementsDisabled") boolean elementsDisabled; @ObfuscatedName("bt") @ObfuscatedGetter( intValue = -159186499 ) int field4068; @ObfuscatedName("br") @Export("menuOpcodes") final int[] menuOpcodes; @ObfuscatedName("by") List field4070; @ObfuscatedName("bv") @Export("iconIterator") Iterator iconIterator; @ObfuscatedName("bf") HashSet field4072; @ObfuscatedName("bd") @ObfuscatedSignature( descriptor = "Lij;" ) @Export("mouseCoord") Coord mouseCoord; @ObfuscatedName("bg") @Export("showCoord") public boolean showCoord; @ObfuscatedName("bw") @ObfuscatedSignature( descriptor = "Lom;" ) @Export("sprite") SpritePixels sprite; @ObfuscatedName("bo") @ObfuscatedGetter( intValue = -201192225 ) @Export("cachedPixelsPerTile") int cachedPixelsPerTile; @ObfuscatedName("bm") @ObfuscatedGetter( intValue = 1460235991 ) @Export("minCachedTileX") int minCachedTileX; @ObfuscatedName("ba") @ObfuscatedGetter( intValue = 1434985843 ) @Export("minCachedTileY") int minCachedTileY; @ObfuscatedName("bu") @ObfuscatedGetter( intValue = 277175981 ) int field4079; static { fontNameVerdana11 = FontName.FontName_verdana11; fontNameVerdana13 = FontName.FontName_verdana13; fontNameVerdana15 = FontName.FontName_verdana15; } public WorldMap() { this.worldMapTargetX = -1; this.worldMapTargetY = -1; this.worldMapDisplayWidth = -1; this.worldMapDisplayHeight = -1; this.worldMapDisplayX = -1; this.worldMapDisplayY = -1; this.maxFlashCount = 3; this.cyclesPerFlash = 50; this.perpetualFlash = false; this.flashingElements = null; this.flashCount = -1; this.flashCycle = -1; this.field4055 = -1; this.field4056 = -1; this.field4078 = -1; this.field4058 = -1; this.field4062 = true; this.enabledElements = new HashSet(); this.enabledCategories = new HashSet(); this.enabledElementIds = new HashSet(); this.field4022 = new HashSet(); this.elementsDisabled = false; this.field4068 = 0; this.menuOpcodes = new int[]{1008, 1009, 1010, 1011, 1012}; this.field4072 = new HashSet(); this.mouseCoord = null; this.showCoord = false; this.minCachedTileX = -1; this.minCachedTileY = -1; this.field4079 = -1; } @ObfuscatedName("s") @ObfuscatedSignature( descriptor = "(Ljy;Ljy;Ljy;Lkt;Ljava/util/HashMap;[Lof;I)V", garbageValue = "834352167" ) @Export("init") public void init(AbstractArchive var1, AbstractArchive var2, AbstractArchive var3, Font var4, HashMap var5, IndexedSprite[] var6) { this.mapSceneSprites = var6; this.WorldMap_archive = var1; this.WorldMap_geographyArchive = var2; this.WorldMap_groundArchive = var3; this.font = var4; this.fonts = new HashMap(); this.fonts.put(WorldMapLabelSize.WorldMapLabelSize_small, var5.get(fontNameVerdana11)); this.fonts.put(WorldMapLabelSize.WorldMapLabelSize_medium, var5.get(fontNameVerdana13)); this.fonts.put(WorldMapLabelSize.WorldMapLabelSize_large, var5.get(fontNameVerdana15)); this.cacheLoader = new WorldMapArchiveLoader(var1); int var7 = this.WorldMap_archive.getGroupId(WorldMapCacheName.field2117.name); int[] var8 = this.WorldMap_archive.getGroupFileIds(var7); this.details = new HashMap(var8.length); for (int var9 = 0; var9 < var8.length; ++var9) { Buffer var10 = new Buffer(this.WorldMap_archive.takeFile(var7, var8[var9])); WorldMapArea var11 = new WorldMapArea(); var11.read(var10, var8[var9]); this.details.put(var11.getInternalName(), var11); if (var11.getIsMain()) { this.mainMapArea = var11; } } this.setCurrentMapArea(this.mainMapArea); this.field4036 = null; } @ObfuscatedName("t") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "-767540884" ) public void method6324() { WorldMapRegion.WorldMapRegion_cachedSprites.demote(5); } @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "(IIZIIIII)V", garbageValue = "-1961674095" ) @Export("onCycle") public void onCycle(int var1, int var2, boolean var3, int var4, int var5, int var6, int var7) { if (this.cacheLoader.isLoaded()) { this.smoothZoom(); this.scrollToTarget(); if (var3) { int var8 = (int)Math.ceil((double)((float)var6 / this.zoom)); int var9 = (int)Math.ceil((double)((float)var7 / this.zoom)); List var10 = this.worldMapManager.method3480(this.centerTileX - var8 / 2 - 1, this.centerTileY - var9 / 2 - 1, var8 / 2 + this.centerTileX + 1, var9 / 2 + this.centerTileY + 1, var4, var5, var6, var7, var1, var2); HashSet var11 = new HashSet(); Iterator var12; AbstractWorldMapIcon var13; ScriptEvent var14; WorldMapEvent var15; for (var12 = var10.iterator(); var12.hasNext(); UserComparator10.runScriptEvent(var14)) { var13 = (AbstractWorldMapIcon)var12.next(); var11.add(var13); var14 = new ScriptEvent(); var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); var14.setArgs(new Object[]{var15, var1, var2}); if (this.field4072.contains(var13)) { var14.setType(17); } else { var14.setType(15); } } var12 = this.field4072.iterator(); while (var12.hasNext()) { var13 = (AbstractWorldMapIcon)var12.next(); if (!var11.contains(var13)) { var14 = new ScriptEvent(); var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); var14.setArgs(new Object[]{var15, var1, var2}); var14.setType(16); UserComparator10.runScriptEvent(var14); } } this.field4072 = var11; } } } @ObfuscatedName("j") @ObfuscatedSignature( descriptor = "(IIZZB)V", garbageValue = "110" ) public void method6159(int var1, int var2, boolean var3, boolean var4) { long var5 = UrlRequester.method2125(); this.method6160(var1, var2, var4, var5); if (this.hasTarget() || !var4 && !var3) { this.method6164(); } else { if (var4) { this.field4078 = var1; this.field4058 = var2; this.field4055 = this.centerTileX; this.field4056 = this.centerTileY; } if (this.field4055 != -1) { int var7 = var1 - this.field4078; int var8 = var2 - this.field4058; this.setWorldMapPosition(this.field4055 - (int)((float)var7 / this.zoomTarget), (int)((float)var8 / this.zoomTarget) + this.field4056, false); } } if (var4) { this.field4071 = var5; this.field4060 = var1; this.field4061 = var2; } } @ObfuscatedName("l") void method6160(int var1, int var2, boolean var3, long var4) { if (this.currentMapArea != null) { int var6 = (int)((float)this.centerTileX + ((float)(var1 - this.worldMapDisplayX) - (float)this.getDisplayWith() * this.zoom / 2.0F) / this.zoom); int var7 = (int)((float)this.centerTileY - ((float)(var2 - this.worldMapDisplayY) - (float)this.getDisplayHeight() * this.zoom / 2.0F) / this.zoom); this.mouseCoord = this.currentMapArea.coord(var6 + this.currentMapArea.getRegionLowX() * 64, var7 + this.currentMapArea.getRegionLowY() * 64); if (this.mouseCoord != null && var3) { if (KitDefinition.method2779() && KeyHandler.KeyHandler_pressedKeys[82] && KeyHandler.KeyHandler_pressedKeys[81]) { class342.method6089(this.mouseCoord.x, this.mouseCoord.y, this.mouseCoord.plane, false); } else { boolean var8 = true; if (this.field4062) { int var9 = var1 - this.field4060; int var10 = var2 - this.field4061; if (var4 - this.field4071 > 500L || var9 < -25 || var9 > 25 || var10 < -25 || var10 > 25) { var8 = false; } } if (var8) { PacketBufferNode var11 = VerticalAlignment.getPacketBufferNode(ClientPacket.field2666, Client.packetWriter.isaacCipher); var11.packetBuffer.method6701(this.mouseCoord.packed()); Client.packetWriter.addNode(var11); this.field4071 = 0L; } } } } else { this.mouseCoord = null; } } @ObfuscatedName("n") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "590329191" ) @Export("smoothZoom") void smoothZoom() { if (class367.field4127 != null) { this.zoom = this.zoomTarget; } else { if (this.zoom < this.zoomTarget) { this.zoom = Math.min(this.zoomTarget, this.zoom + this.zoom / 30.0F); } if (this.zoom > this.zoomTarget) { this.zoom = Math.max(this.zoomTarget, this.zoom - this.zoom / 30.0F); } } } @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "-926352495" ) @Export("scrollToTarget") void scrollToTarget() { if (this.hasTarget()) { int var1 = this.worldMapTargetX - this.centerTileX; int var2 = this.worldMapTargetY - this.centerTileY; if (var1 != 0) { var1 /= Math.min(8, Math.abs(var1)); } if (var2 != 0) { var2 /= Math.min(8, Math.abs(var2)); } this.setWorldMapPosition(var1 + this.centerTileX, var2 + this.centerTileY, true); if (this.worldMapTargetX == this.centerTileX && this.worldMapTargetY == this.centerTileY) { this.worldMapTargetX = -1; this.worldMapTargetY = -1; } } } @ObfuscatedName("f") @ObfuscatedSignature( descriptor = "(IIZI)V", garbageValue = "1694217384" ) @Export("setWorldMapPosition") final void setWorldMapPosition(int var1, int var2, boolean var3) { this.centerTileX = var1; this.centerTileY = var2; UrlRequester.method2125(); if (var3) { this.method6164(); } } @ObfuscatedName("o") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "1587600388" ) final void method6164() { this.field4058 = -1; this.field4078 = -1; this.field4056 = -1; this.field4055 = -1; } @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "-1605978196" ) @Export("hasTarget") boolean hasTarget() { return this.worldMapTargetX != -1 && this.worldMapTargetY != -1; } @ObfuscatedName("r") @ObfuscatedSignature( descriptor = "(IIII)Lfa;", garbageValue = "-1571038652" ) @Export("mapAreaAtCoord") public WorldMapArea mapAreaAtCoord(int var1, int var2, int var3) { Iterator var4 = this.details.values().iterator(); WorldMapArea var5; do { if (!var4.hasNext()) { return null; } var5 = (WorldMapArea)var4.next(); } while(!var5.containsCoord(var1, var2, var3)); return var5; } @ObfuscatedName("p") @ObfuscatedSignature( descriptor = "(IIIZI)V", garbageValue = "-2118667028" ) public void method6162(int var1, int var2, int var3, boolean var4) { WorldMapArea var5 = this.mapAreaAtCoord(var1, var2, var3); if (var5 == null) { if (!var4) { return; } var5 = this.mainMapArea; } boolean var6 = false; if (var5 != this.field4036 || var4) { this.field4036 = var5; this.setCurrentMapArea(var5); var6 = true; } if (var6 || var4) { this.jump(var1, var2, var3); } } @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(IB)V", garbageValue = "-124" ) @Export("setCurrentMapAreaId") public void setCurrentMapAreaId(int var1) { WorldMapArea var2 = this.getMapArea(var1); if (var2 != null) { this.setCurrentMapArea(var2); } } @ObfuscatedName("k") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "5" ) @Export("currentMapAreaId") public int currentMapAreaId() { return this.currentMapArea == null ? -1 : this.currentMapArea.getId(); } @ObfuscatedName("a") @ObfuscatedSignature( descriptor = "(I)Lfa;", garbageValue = "389979735" ) @Export("getCurrentMapArea") public WorldMapArea getCurrentMapArea() { return this.currentMapArea; } @ObfuscatedName("q") @ObfuscatedSignature( descriptor = "(Lfa;I)V", garbageValue = "-925447984" ) @Export("setCurrentMapArea") void setCurrentMapArea(WorldMapArea var1) { if (this.currentMapArea == null || var1 != this.currentMapArea) { this.initializeWorldMapManager(var1); this.jump(-1, -1, -1); } } @ObfuscatedName("u") @ObfuscatedSignature( descriptor = "(Lfa;I)V", garbageValue = "-346448501" ) @Export("initializeWorldMapManager") void initializeWorldMapManager(WorldMapArea var1) { this.currentMapArea = var1; this.worldMapManager = new WorldMapManager(this.mapSceneSprites, this.fonts, this.WorldMap_geographyArchive, this.WorldMap_groundArchive); this.cacheLoader.reset(this.currentMapArea.getInternalName()); } @ObfuscatedName("e") @ObfuscatedSignature( descriptor = "(Lfa;Lij;Lij;ZB)V", garbageValue = "1" ) public void method6173(WorldMapArea var1, Coord var2, Coord var3, boolean var4) { if (var1 != null) { if (this.currentMapArea == null || var1 != this.currentMapArea) { this.initializeWorldMapManager(var1); } if (!var4 && this.currentMapArea.containsCoord(var2.plane, var2.x, var2.y)) { this.jump(var2.plane, var2.x, var2.y); } else { this.jump(var3.plane, var3.x, var3.y); } } } @ObfuscatedName("c") @ObfuscatedSignature( descriptor = "(IIII)V", garbageValue = "1555313666" ) @Export("jump") void jump(int var1, int var2, int var3) { if (this.currentMapArea != null) { int[] var4 = this.currentMapArea.position(var1, var2, var3); if (var4 == null) { var4 = this.currentMapArea.position(this.currentMapArea.getOriginPlane(), this.currentMapArea.getOriginX(), this.currentMapArea.getOriginY()); } this.setWorldMapPosition(var4[0] - this.currentMapArea.getRegionLowX() * 64, var4[1] - this.currentMapArea.getRegionLowY() * 64, true); this.worldMapTargetX = -1; this.worldMapTargetY = -1; this.zoom = this.getZoomFromPercentage(this.currentMapArea.getZoom()); this.zoomTarget = this.zoom; this.field4070 = null; this.iconIterator = null; this.worldMapManager.clearIcons(); } } @ObfuscatedName("i") @ObfuscatedSignature( descriptor = "(IIIIII)V", garbageValue = "977483777" ) @Export("draw") public void draw(int var1, int var2, int var3, int var4, int var5) { int[] var6 = new int[4]; Rasterizer2D.Rasterizer2D_getClipArray(var6); Rasterizer2D.Rasterizer2D_setClip(var1, var2, var3 + var1, var2 + var4); Rasterizer2D.Rasterizer2D_fillRectangle(var1, var2, var3, var4, -16777216); int var7 = this.cacheLoader.getPercentLoaded(); if (var7 < 100) { this.drawLoading(var1, var2, var3, var4, var7); } else { if (!this.worldMapManager.isLoaded()) { this.worldMapManager.load(this.WorldMap_archive, this.currentMapArea.getInternalName(), Client.isMembersWorld); if (!this.worldMapManager.isLoaded()) { return; } } if (this.flashingElements != null) { ++this.flashCycle; if (this.flashCycle % this.cyclesPerFlash == 0) { this.flashCycle = 0; ++this.flashCount; } if (this.flashCount >= this.maxFlashCount && !this.perpetualFlash) { this.flashingElements = null; } } int var8 = (int)Math.ceil((double)((float)var3 / this.zoom)); int var9 = (int)Math.ceil((double)((float)var4 / this.zoom)); this.worldMapManager.drawTiles(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, var1, var2, var3 + var1, var2 + var4); if (!this.elementsDisabled) { boolean var10 = false; if (var5 - this.field4068 > 100) { this.field4068 = var5; var10 = true; } this.worldMapManager.drawElements(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, var1, var2, var3 + var1, var2 + var4, this.field4022, this.flashingElements, this.flashCycle, this.cyclesPerFlash, var10); } this.method6177(var1, var2, var3, var4, var8, var9); if (KitDefinition.method2779() && this.showCoord && this.mouseCoord != null) { this.font.draw("Coord: " + this.mouseCoord, Rasterizer2D.Rasterizer2D_xClipStart + 10, Rasterizer2D.Rasterizer2D_yClipStart + 20, 16776960, -1); } this.worldMapDisplayWidth = var8; this.worldMapDisplayHeight = var9; this.worldMapDisplayX = var1; this.worldMapDisplayY = var2; Rasterizer2D.Rasterizer2D_setClipArray(var6); } } @ObfuscatedName("m") @ObfuscatedSignature( descriptor = "(IIIIIII)Z", garbageValue = "-718694746" ) boolean method6176(int var1, int var2, int var3, int var4, int var5, int var6) { if (this.sprite == null) { return true; } else if (this.sprite.subWidth == var1 && this.sprite.subHeight == var2) { if (this.worldMapManager.pixelsPerTile != this.cachedPixelsPerTile) { return true; } else if (this.field4079 != Client.field679) { return true; } else if (var3 <= 0 && var4 <= 0) { return var3 + var1 < var5 || var2 + var4 < var6; } else { return true; } } else { return true; } } @ObfuscatedName("b") @ObfuscatedSignature( descriptor = "(IIIIIII)V", garbageValue = "-2075631263" ) void method6177(int var1, int var2, int var3, int var4, int var5, int var6) { if (class367.field4127 != null) { int var7 = 512 / (this.worldMapManager.pixelsPerTile * 2); int var8 = var3 + 512; int var9 = var4 + 512; float var10 = 1.0F; var8 = (int)((float)var8 / var10); var9 = (int)((float)var9 / var10); int var11 = this.getDisplayX() - var5 / 2 - var7; int var12 = this.getDisplayY() - var6 / 2 - var7; int var13 = var1 - (var11 + var7 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; int var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); if (this.method6176(var8, var9, var13, var14, var3, var4)) { if (this.sprite != null && this.sprite.subWidth == var8 && this.sprite.subHeight == var9) { Arrays.fill(this.sprite.pixels, 0); } else { this.sprite = new SpritePixels(var8, var9); } this.minCachedTileX = this.getDisplayX() - var5 / 2 - var7; this.minCachedTileY = this.getDisplayY() - var6 / 2 - var7; this.cachedPixelsPerTile = this.worldMapManager.pixelsPerTile; class367.field4127.method5184(this.minCachedTileX, this.minCachedTileY, this.sprite, (float)this.cachedPixelsPerTile / var10); this.field4079 = Client.field679; var13 = var1 - (var7 + var11 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); } Rasterizer2D.Rasterizer2D_fillRectangleAlpha(var1, var2, var3, var4, 0, 128); if (var10 == 1.0F) { this.sprite.method7108(var13, var14, 192); } else { this.sprite.method7111(var13, var14, (int)((float)var8 * var10), (int)(var10 * (float)var9), 192); } } } @ObfuscatedName("z") @ObfuscatedSignature( descriptor = "(IIIII)V", garbageValue = "140400878" ) @Export("drawOverview") public void drawOverview(int var1, int var2, int var3, int var4) { if (this.cacheLoader.isLoaded()) { if (!this.worldMapManager.isLoaded()) { this.worldMapManager.load(this.WorldMap_archive, this.currentMapArea.getInternalName(), Client.isMembersWorld); if (!this.worldMapManager.isLoaded()) { return; } } this.worldMapManager.drawOverview(var1, var2, var3, var4, this.flashingElements, this.flashCycle, this.cyclesPerFlash); } } @ObfuscatedName("d") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "-1620372095" ) @Export("setZoomPercentage") public void setZoomPercentage(int var1) { this.zoomTarget = this.getZoomFromPercentage(var1); } @ObfuscatedName("y") @ObfuscatedSignature( descriptor = "(IIIIII)V", garbageValue = "-1769013766" ) @Export("drawLoading") void drawLoading(int var1, int var2, int var3, int var4, int var5) { byte var6 = 20; int var7 = var3 / 2 + var1; int var8 = var4 / 2 + var2 - 18 - var6; Rasterizer2D.Rasterizer2D_fillRectangle(var1, var2, var3, var4, -16777216); Rasterizer2D.Rasterizer2D_drawRectangle(var7 - 152, var8, 304, 34, -65536); Rasterizer2D.Rasterizer2D_fillRectangle(var7 - 150, var8 + 2, var5 * 3, 30, -65536); this.font.drawCentered("Loading...", var7, var8 + var6, -1, -1); } @ObfuscatedName("g") @ObfuscatedSignature( descriptor = "(II)F", garbageValue = "1543658498" ) @Export("getZoomFromPercentage") float getZoomFromPercentage(int var1) { if (var1 == 25) { return 1.0F; } else if (var1 == 37) { return 1.5F; } else if (var1 == 50) { return 2.0F; } else if (var1 == 75) { return 3.0F; } else { return var1 == 100 ? 4.0F : 8.0F; } } @ObfuscatedName("ae") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "22" ) @Export("getZoomLevel") public int getZoomLevel() { if (1.0D == (double)this.zoomTarget) { return 25; } else if (1.5D == (double)this.zoomTarget) { return 37; } else if ((double)this.zoomTarget == 2.0D) { return 50; } else if (3.0D == (double)this.zoomTarget) { return 75; } else { return 4.0D == (double)this.zoomTarget ? 100 : 200; } } @ObfuscatedName("an") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "1736140350" ) @Export("loadCache") public void loadCache() { this.cacheLoader.load(); } @ObfuscatedName("am") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "1712051970" ) @Export("isCacheLoaded") public boolean isCacheLoaded() { return this.cacheLoader.isLoaded(); } @ObfuscatedName("al") @ObfuscatedSignature( descriptor = "(IB)Lfa;", garbageValue = "7" ) @Export("getMapArea") public WorldMapArea getMapArea(int var1) { Iterator var2 = this.details.values().iterator(); WorldMapArea var3; do { if (!var2.hasNext()) { return null; } var3 = (WorldMapArea)var2.next(); } while(var3.getId() != var1); return var3; } @ObfuscatedName("aq") @ObfuscatedSignature( descriptor = "(III)V", garbageValue = "1075263275" ) @Export("setWorldMapPositionTarget") public void setWorldMapPositionTarget(int var1, int var2) { if (this.currentMapArea != null && this.currentMapArea.containsPosition(var1, var2)) { this.worldMapTargetX = var1 - this.currentMapArea.getRegionLowX() * 64; this.worldMapTargetY = var2 - this.currentMapArea.getRegionLowY() * 64; } } @ObfuscatedName("aa") @ObfuscatedSignature( descriptor = "(III)V", garbageValue = "1419028073" ) @Export("setWorldMapPositionTargetInstant") public void setWorldMapPositionTargetInstant(int var1, int var2) { if (this.currentMapArea != null) { this.setWorldMapPosition(var1 - this.currentMapArea.getRegionLowX() * 64, var2 - this.currentMapArea.getRegionLowY() * 64, true); this.worldMapTargetX = -1; this.worldMapTargetY = -1; } } @ObfuscatedName("ab") @ObfuscatedSignature( descriptor = "(IIII)V", garbageValue = "1360916582" ) @Export("jumpToSourceCoord") public void jumpToSourceCoord(int var1, int var2, int var3) { if (this.currentMapArea != null) { int[] var4 = this.currentMapArea.position(var1, var2, var3); if (var4 != null) { this.setWorldMapPositionTarget(var4[0], var4[1]); } } } @ObfuscatedName("ax") @ObfuscatedSignature( descriptor = "(IIII)V", garbageValue = "1730971686" ) @Export("jumpToSourceCoordInstant") public void jumpToSourceCoordInstant(int var1, int var2, int var3) { if (this.currentMapArea != null) { int[] var4 = this.currentMapArea.position(var1, var2, var3); if (var4 != null) { this.setWorldMapPositionTargetInstant(var4[0], var4[1]); } } } @ObfuscatedName("au") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-1319880480" ) @Export("getDisplayX") public int getDisplayX() { return this.currentMapArea == null ? -1 : this.centerTileX + this.currentMapArea.getRegionLowX() * 64; } @ObfuscatedName("av") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "781654358" ) @Export("getDisplayY") public int getDisplayY() { return this.currentMapArea == null ? -1 : this.centerTileY + this.currentMapArea.getRegionLowY() * 64; } @ObfuscatedName("as") @ObfuscatedSignature( descriptor = "(I)Lij;", garbageValue = "1507150151" ) @Export("getDisplayCoord") public Coord getDisplayCoord() { return this.currentMapArea == null ? null : this.currentMapArea.coord(this.getDisplayX(), this.getDisplayY()); } @ObfuscatedName("ao") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-1065031113" ) @Export("getDisplayWith") public int getDisplayWith() { return this.worldMapDisplayWidth; } @ObfuscatedName("az") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-1987745916" ) @Export("getDisplayHeight") public int getDisplayHeight() { return this.worldMapDisplayHeight; } @ObfuscatedName("ak") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "1952469234" ) @Export("setMaxFlashCount") public void setMaxFlashCount(int var1) { if (var1 >= 1) { this.maxFlashCount = var1; } } @ObfuscatedName("aj") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "2145927046" ) @Export("resetMaxFlashCount") public void resetMaxFlashCount() { this.maxFlashCount = 3; } @ObfuscatedName("at") @ObfuscatedSignature( descriptor = "(IB)V", garbageValue = "-5" ) @Export("setCyclesPerFlash") public void setCyclesPerFlash(int var1) { if (var1 >= 1) { this.cyclesPerFlash = var1; } } @ObfuscatedName("af") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "6267742" ) @Export("resetCyclesPerFlash") public void resetCyclesPerFlash() { this.cyclesPerFlash = 50; } @ObfuscatedName("ar") @ObfuscatedSignature( descriptor = "(ZI)V", garbageValue = "1308328304" ) @Export("setPerpetualFlash") public void setPerpetualFlash(boolean var1) { this.perpetualFlash = var1; } @ObfuscatedName("ay") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "89127988" ) @Export("flashElement") public void flashElement(int var1) { this.flashingElements = new HashSet(); this.flashingElements.add(var1); this.flashCount = 0; this.flashCycle = 0; } @ObfuscatedName("ap") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "-1104278490" ) @Export("flashCategory") public void flashCategory(int var1) { this.flashingElements = new HashSet(); this.flashCount = 0; this.flashCycle = 0; for (int var2 = 0; var2 < WorldMapElement.WorldMapElement_count; ++var2) { if (HealthBarUpdate.WorldMapElement_get(var2) != null && HealthBarUpdate.WorldMapElement_get(var2).category == var1) { this.flashingElements.add(HealthBarUpdate.WorldMapElement_get(var2).objectId); } } } @ObfuscatedName("ah") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "2058376384" ) @Export("stopCurrentFlashes") public void stopCurrentFlashes() { this.flashingElements = null; } @ObfuscatedName("ag") @ObfuscatedSignature( descriptor = "(ZB)V", garbageValue = "1" ) @Export("setElementsDisabled") public void setElementsDisabled(boolean var1) { this.elementsDisabled = !var1; } @ObfuscatedName("ai") @ObfuscatedSignature( descriptor = "(IZB)V", garbageValue = "84" ) @Export("disableElement") public void disableElement(int var1, boolean var2) { if (!var2) { this.enabledElements.add(var1); } else { this.enabledElements.remove(var1); } this.method6208(); } @ObfuscatedName("ad") @ObfuscatedSignature( descriptor = "(IZB)V", garbageValue = "0" ) @Export("setCategoryDisabled") public void setCategoryDisabled(int var1, boolean var2) { if (!var2) { this.enabledCategories.add(var1); } else { this.enabledCategories.remove(var1); } for (int var3 = 0; var3 < WorldMapElement.WorldMapElement_count; ++var3) { if (HealthBarUpdate.WorldMapElement_get(var3) != null && HealthBarUpdate.WorldMapElement_get(var3).category == var1) { int var4 = HealthBarUpdate.WorldMapElement_get(var3).objectId; if (!var2) { this.enabledElementIds.add(var4); } else { this.enabledElementIds.remove(var4); } } } this.method6208(); } @ObfuscatedName("ac") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "773346517" ) @Export("getElementsDisabled") public boolean getElementsDisabled() { return !this.elementsDisabled; } @ObfuscatedName("aw") @ObfuscatedSignature( descriptor = "(II)Z", garbageValue = "-1251957185" ) @Export("isElementDisabled") public boolean isElementDisabled(int var1) { return !this.enabledElements.contains(var1); } @ObfuscatedName("bt") @ObfuscatedSignature( descriptor = "(IB)Z", garbageValue = "1" ) @Export("isCategoryDisabled") public boolean isCategoryDisabled(int var1) { return !this.enabledCategories.contains(var1); } @ObfuscatedName("bk") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "1597966482" ) void method6208() { this.field4022.clear(); this.field4022.addAll(this.enabledElements); this.field4022.addAll(this.enabledElementIds); } @ObfuscatedName("br") @ObfuscatedSignature( descriptor = "(IIIIIII)V", garbageValue = "1041722835" ) @Export("addElementMenuOptions") public void addElementMenuOptions(int var1, int var2, int var3, int var4, int var5, int var6) { if (this.cacheLoader.isLoaded()) { int var7 = (int)Math.ceil((double)((float)var3 / this.zoom)); int var8 = (int)Math.ceil((double)((float)var4 / this.zoom)); List var9 = this.worldMapManager.method3480(this.centerTileX - var7 / 2 - 1, this.centerTileY - var8 / 2 - 1, var7 / 2 + this.centerTileX + 1, var8 / 2 + this.centerTileY + 1, var1, var2, var3, var4, var5, var6); if (!var9.isEmpty()) { Iterator var10 = var9.iterator(); boolean var13; do { if (!var10.hasNext()) { return; } AbstractWorldMapIcon var11 = (AbstractWorldMapIcon)var10.next(); WorldMapElement var12 = HealthBarUpdate.WorldMapElement_get(var11.getElement()); var13 = false; for (int var14 = this.menuOpcodes.length - 1; var14 >= 0; --var14) { if (var12.menuActions[var14] != null) { class7.insertMenuItemNoShift(var12.menuActions[var14], var12.menuTargetName, this.menuOpcodes[var14], var11.getElement(), var11.coord1.packed(), var11.coord2.packed()); var13 = true; } } } while(!var13); } } } @ObfuscatedName("by") @ObfuscatedSignature( descriptor = "(ILij;I)Lij;", garbageValue = "-1814924889" ) public Coord method6210(int var1, Coord var2) { if (!this.cacheLoader.isLoaded()) { return null; } else if (!this.worldMapManager.isLoaded()) { return null; } else if (!this.currentMapArea.containsPosition(var2.x, var2.y)) { return null; } else { HashMap var3 = this.worldMapManager.buildIcons(); List var4 = (List)var3.get(var1); if (var4 != null && !var4.isEmpty()) { AbstractWorldMapIcon var5 = null; int var6 = -1; Iterator var7 = var4.iterator(); while (true) { AbstractWorldMapIcon var8; int var11; do { if (!var7.hasNext()) { return var5.coord2; } var8 = (AbstractWorldMapIcon)var7.next(); int var9 = var8.coord2.x - var2.x; int var10 = var8.coord2.y - var2.y; var11 = var9 * var9 + var10 * var10; if (var11 == 0) { return var8.coord2; } } while(var11 >= var6 && var5 != null); var5 = var8; var6 = var11; } } else { return null; } } } @ObfuscatedName("bv") @ObfuscatedSignature( descriptor = "(IILij;Lij;B)V", garbageValue = "79" ) @Export("worldMapMenuAction") public void worldMapMenuAction(int var1, int var2, Coord var3, Coord var4) { ScriptEvent var5 = new ScriptEvent(); WorldMapEvent var6 = new WorldMapEvent(var2, var3, var4); var5.setArgs(new Object[]{var6}); switch(var1) { case 1008: var5.setType(10); break; case 1009: var5.setType(11); break; case 1010: var5.setType(12); break; case 1011: var5.setType(13); break; case 1012: var5.setType(14); } UserComparator10.runScriptEvent(var5); } @ObfuscatedName("bf") @ObfuscatedSignature( descriptor = "(I)Lgr;", garbageValue = "-140025760" ) @Export("iconStart") public AbstractWorldMapIcon iconStart() { if (!this.cacheLoader.isLoaded()) { return null; } else if (!this.worldMapManager.isLoaded()) { return null; } else { HashMap var1 = this.worldMapManager.buildIcons(); this.field4070 = new LinkedList(); Iterator var2 = var1.values().iterator(); while (var2.hasNext()) { List var3 = (List)var2.next(); this.field4070.addAll(var3); } this.iconIterator = this.field4070.iterator(); return this.iconNext(); } } @ObfuscatedName("bd") @ObfuscatedSignature( descriptor = "(I)Lgr;", garbageValue = "2042851179" ) @Export("iconNext") public AbstractWorldMapIcon iconNext() { if (this.iconIterator == null) { return null; } else { AbstractWorldMapIcon var1; do { if (!this.iconIterator.hasNext()) { return null; } var1 = (AbstractWorldMapIcon)this.iconIterator.next(); } while(var1.getElement() == -1); return var1; } } @ObfuscatedName("s") @ObfuscatedSignature( descriptor = "(I)[Lhb;", garbageValue = "1559272136" ) static LoginPacket[] method6366() { return new LoginPacket[]{LoginPacket.field2792, LoginPacket.field2790, LoginPacket.field2789, LoginPacket.field2793, LoginPacket.field2791, LoginPacket.field2796}; } }