import java.util.Iterator; import java.util.LinkedList; 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("fa") @Implements("WorldMapArea") public class WorldMapArea { @ObfuscatedName("s") @ObfuscatedGetter( intValue = -1570146787 ) @Export("id") int id; @ObfuscatedName("t") @Export("internalName") String internalName; @ObfuscatedName("v") @Export("externalName") String externalName; @ObfuscatedName("j") @ObfuscatedGetter( intValue = -387474139 ) @Export("backGroundColor") int backGroundColor; @ObfuscatedName("l") @ObfuscatedGetter( intValue = -810351387 ) @Export("zoom") int zoom; @ObfuscatedName("n") @ObfuscatedSignature( descriptor = "Lij;" ) @Export("origin") Coord origin; @ObfuscatedName("w") @ObfuscatedGetter( intValue = 1162515791 ) @Export("regionLowX") int regionLowX; @ObfuscatedName("f") @ObfuscatedGetter( intValue = -367119943 ) @Export("regionHighX") int regionHighX; @ObfuscatedName("o") @ObfuscatedGetter( intValue = -1069848443 ) @Export("regionLowY") int regionLowY; @ObfuscatedName("x") @ObfuscatedGetter( intValue = 425431757 ) @Export("regionHighY") int regionHighY; @ObfuscatedName("r") @Export("isMain") boolean isMain; @ObfuscatedName("p") @Export("sections") LinkedList sections; public WorldMapArea() { this.id = -1; this.backGroundColor = -1; this.zoom = -1; this.origin = null; this.regionLowX = Integer.MAX_VALUE; this.regionHighX = 0; this.regionLowY = Integer.MAX_VALUE; this.regionHighY = 0; this.isMain = false; } @ObfuscatedName("s") @ObfuscatedSignature( descriptor = "(Lnv;II)V", garbageValue = "1541243731" ) @Export("read") public void read(Buffer var1, int var2) { this.id = var2; this.internalName = var1.readStringCp1252NullTerminated(); this.externalName = var1.readStringCp1252NullTerminated(); this.origin = new Coord(var1.readInt()); this.backGroundColor = var1.readInt(); var1.readUnsignedByte(); this.isMain = var1.readUnsignedByte() == 1; this.zoom = var1.readUnsignedByte(); int var3 = var1.readUnsignedByte(); this.sections = new LinkedList(); for (int var4 = 0; var4 < var3; ++var4) { this.sections.add(this.readWorldMapSection(var1)); } this.setBounds(); } @ObfuscatedName("t") @ObfuscatedSignature( descriptor = "(Lnv;I)Lgx;", garbageValue = "1619583113" ) @Export("readWorldMapSection") WorldMapSection readWorldMapSection(Buffer var1) { int var2 = var1.readUnsignedByte(); WorldMapSectionType var3 = (WorldMapSectionType)Huffman.findEnumerated(WorldMapSectionType.method3600(), var2); Object var4 = null; switch(var3.type) { case 0: var4 = new class171(); break; case 1: var4 = new WorldMapSection2(); break; case 2: var4 = new WorldMapSection0(); break; case 3: var4 = new WorldMapSection1(); break; default: throw new IllegalStateException(""); } ((WorldMapSection)var4).read(var1); return (WorldMapSection)var4; } @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "(IIII)Z", garbageValue = "722138687" ) @Export("containsCoord") public boolean containsCoord(int var1, int var2, int var3) { Iterator var4 = this.sections.iterator(); WorldMapSection var5; do { if (!var4.hasNext()) { return false; } var5 = (WorldMapSection)var4.next(); } while(!var5.containsCoord(var1, var2, var3)); return true; } @ObfuscatedName("j") @ObfuscatedSignature( descriptor = "(IIB)Z", garbageValue = "73" ) @Export("containsPosition") public boolean containsPosition(int var1, int var2) { int var3 = var1 / 64; int var4 = var2 / 64; if (var3 >= this.regionLowX && var3 <= this.regionHighX) { if (var4 >= this.regionLowY && var4 <= this.regionHighY) { Iterator var5 = this.sections.iterator(); WorldMapSection var6; do { if (!var5.hasNext()) { return false; } var6 = (WorldMapSection)var5.next(); } while(!var6.containsPosition(var1, var2)); return true; } else { return false; } } else { return false; } } @ObfuscatedName("l") @ObfuscatedSignature( descriptor = "(IIII)[I", garbageValue = "-2086521998" ) @Export("position") public int[] position(int var1, int var2, int var3) { Iterator var4 = this.sections.iterator(); WorldMapSection var5; do { if (!var4.hasNext()) { return null; } var5 = (WorldMapSection)var4.next(); } while(!var5.containsCoord(var1, var2, var3)); return var5.getBorderTileLengths(var1, var2, var3); } @ObfuscatedName("n") @ObfuscatedSignature( descriptor = "(III)Lij;", garbageValue = "269042318" ) @Export("coord") public Coord coord(int var1, int var2) { Iterator var3 = this.sections.iterator(); WorldMapSection var4; do { if (!var3.hasNext()) { return null; } var4 = (WorldMapSection)var3.next(); } while(!var4.containsPosition(var1, var2)); return var4.coord(var1, var2); } @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "19328953" ) @Export("setBounds") void setBounds() { Iterator var1 = this.sections.iterator(); while (var1.hasNext()) { WorldMapSection var2 = (WorldMapSection)var1.next(); var2.expandBounds(this); } } @ObfuscatedName("f") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "103" ) @Export("getId") public int getId() { return this.id; } @ObfuscatedName("o") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "-1577332140" ) @Export("getIsMain") public boolean getIsMain() { return this.isMain; } @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "(I)Ljava/lang/String;", garbageValue = "-1712382848" ) @Export("getInternalName") public String getInternalName() { return this.internalName; } @ObfuscatedName("r") @ObfuscatedSignature( descriptor = "(I)Ljava/lang/String;", garbageValue = "-1525693350" ) @Export("getExternalName") public String getExternalName() { return this.externalName; } @ObfuscatedName("p") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "-2" ) @Export("getBackGroundColor") int getBackGroundColor() { return this.backGroundColor; } @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "117" ) @Export("getZoom") public int getZoom() { return this.zoom; } @ObfuscatedName("k") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-132060536" ) @Export("getRegionLowX") public int getRegionLowX() { return this.regionLowX; } @ObfuscatedName("a") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "172672356" ) @Export("getRegionHighX") public int getRegionHighX() { return this.regionHighX; } @ObfuscatedName("q") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "1292485982" ) @Export("getRegionLowY") public int getRegionLowY() { return this.regionLowY; } @ObfuscatedName("u") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "1465522234" ) @Export("getRegionHighY") public int getRegionHighY() { return this.regionHighY; } @ObfuscatedName("e") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-2147163667" ) @Export("getOriginX") public int getOriginX() { return this.origin.x; } @ObfuscatedName("c") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "335914375" ) @Export("getOriginPlane") public int getOriginPlane() { return this.origin.plane; } @ObfuscatedName("i") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "2093254477" ) @Export("getOriginY") public int getOriginY() { return this.origin.y; } @ObfuscatedName("m") @ObfuscatedSignature( descriptor = "(I)Lij;", garbageValue = "-1754049769" ) @Export("getOrigin") public Coord getOrigin() { return new Coord(this.origin); } @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "(IIILem;II)V", garbageValue = "598437329" ) static void method3358(int var0, int var1, int var2, ObjectComposition var3, int var4) { ObjectSound var5 = new ObjectSound(); var5.plane = var0; var5.x = var1 * 128; var5.y = var2 * 128; int var6 = var3.sizeX; int var7 = var3.sizeY; if (var4 == 1 || var4 == 3) { var6 = var3.sizeY; var7 = var3.sizeX; } var5.field722 = (var6 + var1) * 128; var5.field723 = (var7 + var2) * 128; var5.soundEffectId = var3.ambientSoundId; var5.field718 = var3.field1779 * 128; var5.field727 = var3.int5; var5.field728 = var3.int6; var5.soundEffectIds = var3.soundEffectIds; if (var3.transforms != null) { var5.obj = var3; var5.set(); } ObjectSound.objectSounds.addFirst(var5); if (var5.soundEffectIds != null) { var5.field725 = var5.field727 + (int)(Math.random() * (double)(var5.field728 - var5.field727)); } } }