Files
runelite/runescape-client/src/main/java/WorldMapArea.java
Lucwousin db705f5dd5 rs-client: refactoring (#1344)
* Rename some things to be more consistent everywhere

* rs-client: refactoring

* MenuAction -> MenuOpcode merge
2019-08-20 22:24:51 +02:00

730 lines
18 KiB
Java

import java.io.IOException;
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("al")
@Implements("WorldMapArea")
public class WorldMapArea {
@ObfuscatedName("bo")
static String field213;
@ObfuscatedName("hc")
@ObfuscatedGetter(
intValue = 143213649
)
@Export("oculusOrbFocalPointY")
static int oculusOrbFocalPointY;
@ObfuscatedName("q")
@ObfuscatedGetter(
intValue = -1977211607
)
@Export("id")
int id;
@ObfuscatedName("w")
@Export("internalName")
String internalName;
@ObfuscatedName("e")
@Export("externalName")
String externalName;
@ObfuscatedName("p")
@ObfuscatedGetter(
intValue = -162659739
)
@Export("backGroundColor")
int backGroundColor;
@ObfuscatedName("k")
@ObfuscatedGetter(
intValue = 19158817
)
@Export("zoom")
int zoom;
@ObfuscatedName("l")
@ObfuscatedSignature(
signature = "Lhv;"
)
@Export("origin")
Coord origin;
@ObfuscatedName("b")
@ObfuscatedGetter(
intValue = -1024999231
)
@Export("regionLowX")
int regionLowX;
@ObfuscatedName("i")
@ObfuscatedGetter(
intValue = 1660950761
)
@Export("regionHighX")
int regionHighX;
@ObfuscatedName("c")
@ObfuscatedGetter(
intValue = -1294876503
)
@Export("regionLowY")
int regionLowY;
@ObfuscatedName("f")
@ObfuscatedGetter(
intValue = -341254141
)
@Export("regionHighY")
int regionHighY;
@ObfuscatedName("m")
@Export("isMain")
boolean isMain;
@ObfuscatedName("u")
@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("q")
@ObfuscatedSignature(
signature = "(Lkf;IB)V",
garbageValue = "0"
)
@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("w")
@ObfuscatedSignature(
signature = "(Lkf;I)Laj;",
garbageValue = "-1426808810"
)
@Export("readWorldMapSection")
WorldMapSection readWorldMapSection(Buffer var1) {
int var2 = var1.readUnsignedByte();
WorldMapSectionType[] var3 = new WorldMapSectionType[]{WorldMapSectionType.WORLDMAPSECTIONTYPE3, WorldMapSectionType.WORLDMAPSECTIONTYPE1, WorldMapSectionType.WORLDMAPSECTIONTYPE0, WorldMapSectionType.WORLDMAPSECTIONTYPE2};
WorldMapSectionType var4 = (WorldMapSectionType)SoundSystem.findEnumerated(var3, var2);
Object var5 = null;
switch(var4.type) {
case 0:
var5 = new WorldMapSection0();
break;
case 1:
var5 = new WorldMapSection2();
break;
case 2:
var5 = new WorldMapSection1();
break;
case 3:
var5 = new class42();
break;
default:
throw new IllegalStateException("");
}
((WorldMapSection)var5).read(var1);
return (WorldMapSection)var5;
}
@ObfuscatedName("e")
@ObfuscatedSignature(
signature = "(IIII)Z",
garbageValue = "772882794"
)
@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("p")
@ObfuscatedSignature(
signature = "(III)Z",
garbageValue = "431640899"
)
@Export("containsPosition")
public boolean containsPosition(int var1, int var2) {
int var3 = var1 / 64;
int var4 = var2 / 64;
if (var3 < this.regionLowX || var3 > this.regionHighX) {
return false;
}
if (var4 < this.regionLowY || var4 > this.regionHighY) {
return false;
}
Iterator var5 = this.sections.iterator();
WorldMapSection var6;
do {
if (!var5.hasNext()) {
return false;
}
var6 = (WorldMapSection)var5.next();
} while(!var6.containsPosition(var1, var2));
return true;
}
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "(IIII)[I",
garbageValue = "1197175712"
)
@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("l")
@ObfuscatedSignature(
signature = "(III)Lhv;",
garbageValue = "1177032245"
)
@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("b")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-1983561837"
)
@Export("setBounds")
void setBounds() {
Iterator var1 = this.sections.iterator();
while (var1.hasNext()) {
WorldMapSection var2 = (WorldMapSection)var1.next();
var2.expandBounds(this);
}
}
@ObfuscatedName("i")
@ObfuscatedSignature(
signature = "(B)I",
garbageValue = "11"
)
@Export("getId")
public int getId() {
return this.id;
}
@ObfuscatedName("c")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "-1524903705"
)
@Export("getIsMain")
public boolean getIsMain() {
return this.isMain;
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(I)Ljava/lang/String;",
garbageValue = "-229522962"
)
@Export("getInternalName")
public String getInternalName() {
return this.internalName;
}
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "(I)Ljava/lang/String;",
garbageValue = "-1054173331"
)
@Export("getExternalName")
public String getExternalName() {
return this.externalName;
}
@ObfuscatedName("r")
@ObfuscatedSignature(
signature = "(B)I",
garbageValue = "-26"
)
@Export("getBackGroundColor")
int getBackGroundColor() {
return this.backGroundColor;
}
@ObfuscatedName("v")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "459716843"
)
@Export("getZoom")
public int getZoom() {
return this.zoom;
}
@ObfuscatedName("y")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-1607087713"
)
@Export("getRegionLowX")
public int getRegionLowX() {
return this.regionLowX;
}
@ObfuscatedName("g")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-1992426641"
)
@Export("getRegionHighX")
public int getRegionHighX() {
return this.regionHighX;
}
@ObfuscatedName("a")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "426909580"
)
@Export("getRegionLowY")
public int getRegionLowY() {
return this.regionLowY;
}
@ObfuscatedName("j")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-308162102"
)
@Export("getRegionHighY")
public int getRegionHighY() {
return this.regionHighY;
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(B)I",
garbageValue = "-30"
)
@Export("getOriginX")
public int getOriginX() {
return this.origin.x;
}
@ObfuscatedName("d")
@ObfuscatedSignature(
signature = "(I)I",
garbageValue = "-1111611912"
)
@Export("getOriginPlane")
public int getOriginPlane() {
return this.origin.plane;
}
@ObfuscatedName("s")
@ObfuscatedSignature(
signature = "(B)I",
garbageValue = "-16"
)
@Export("getOriginY")
public int getOriginY() {
return this.origin.y;
}
@ObfuscatedName("z")
@ObfuscatedSignature(
signature = "(I)Lhv;",
garbageValue = "1084515082"
)
@Export("getOrigin")
public Coord getOrigin() {
return new Coord(this.origin);
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(II)Liq;",
garbageValue = "44972047"
)
@Export("ItemDefinition_get")
public static ItemDefinition ItemDefinition_get(int var0) {
ItemDefinition var1 = (ItemDefinition)ItemDefinition.ItemDefinition_cached.get((long)var0);
if (var1 != null) {
return var1;
}
byte[] var2 = Messages.ItemDefinition_archive.takeFile(10, var0);
var1 = new ItemDefinition();
var1.id = var0;
if (var2 != null) {
var1.decode(new Buffer(var2));
}
var1.post();
if (var1.noteTemplate != -1) {
var1.genCert(ItemDefinition_get(var1.noteTemplate), ItemDefinition_get(var1.note));
}
if (var1.notedId != -1) {
var1.genBought(ItemDefinition_get(var1.notedId), ItemDefinition_get(var1.unnotedId));
}
if (var1.placeholderTemplate != -1) {
var1.genPlaceholder(ItemDefinition_get(var1.placeholderTemplate), ItemDefinition_get(var1.placeholder));
}
if (!ModelData0.ItemDefinition_inMembersWorld && var1.isMembersOnly) {
var1.name = "Members object";
var1.isTradable = false;
var1.groundActions = null;
var1.inventoryActions = null;
var1.shiftClickIndex = -1;
var1.team = 0;
if (var1.params != null) {
boolean var3 = false;
for (Node var4 = var1.params.first(); var4 != null; var4 = var1.params.next()) {
ParamDefinition var5 = WorldMapIcon_0.getParamDefinition((int)var4.key);
if (var5.autoDisable) {
var4.remove();
} else {
var3 = true;
}
}
if (!var3) {
var1.params = null;
}
}
}
ItemDefinition.ItemDefinition_cached.put(var1, (long)var0);
return var1;
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "-296796650"
)
public static boolean method365() {
long var0 = DirectByteArrayCopier.currentTimeMs();
int var2 = (int)(var0 - NetCache.NetCache_timeMs);
NetCache.NetCache_timeMs = var0;
if (var2 > 200) {
var2 = 200;
}
NetCache.NetCache_loadTime += var2;
if (NetCache.NetCache_pendingResponsesCount == 0 && NetCache.NetCache_pendingPriorityResponsesCount == 0 && NetCache.NetCache_pendingWritesCount == 0 && NetCache.NetCache_pendingPriorityWritesCount == 0) {
return true;
}
if (NetCache.NetCache_socket == null) {
return false;
}
try {
if (NetCache.NetCache_loadTime > 30000) {
throw new IOException();
}
NetFileRequest var3;
Buffer var4;
while (NetCache.NetCache_pendingPriorityResponsesCount < 200 && NetCache.NetCache_pendingPriorityWritesCount > 0) {
var3 = (NetFileRequest)NetCache.NetCache_pendingPriorityWrites.first();
var4 = new Buffer(4);
var4.writeByte(1);
var4.writeMedium((int)var3.key);
NetCache.NetCache_socket.write(var4.array, 0, 4);
NetCache.NetCache_pendingPriorityResponses.put(var3, var3.key);
--NetCache.NetCache_pendingPriorityWritesCount;
++NetCache.NetCache_pendingPriorityResponsesCount;
}
while (NetCache.NetCache_pendingResponsesCount < 200 && NetCache.NetCache_pendingWritesCount > 0) {
var3 = (NetFileRequest)NetCache.NetCache_pendingWritesQueue.removeLast();
var4 = new Buffer(4);
var4.writeByte(0);
var4.writeMedium((int)var3.key);
NetCache.NetCache_socket.write(var4.array, 0, 4);
var3.removeDual();
NetCache.NetCache_pendingResponses.put(var3, var3.key);
--NetCache.NetCache_pendingWritesCount;
++NetCache.NetCache_pendingResponsesCount;
}
for (int var15 = 0; var15 < 100; ++var15) {
int var16 = NetCache.NetCache_socket.available();
if (var16 < 0) {
throw new IOException();
}
if (var16 == 0) {
break;
}
NetCache.NetCache_loadTime = 0;
byte var5 = 0;
if (class226.NetCache_currentResponse == null) {
var5 = 8;
} else if (NetCache.field3175 == 0) {
var5 = 1;
}
int var6;
int var7;
int var8;
int var10;
byte[] var10000;
int var10001;
Buffer var22;
if (var5 > 0) {
var6 = var5 - NetCache.NetCache_responseHeaderBuffer.offset;
if (var6 > var16) {
var6 = var16;
}
NetCache.NetCache_socket.read(NetCache.NetCache_responseHeaderBuffer.array, NetCache.NetCache_responseHeaderBuffer.offset, var6);
if (NetCache.field3181 != 0) {
for (var7 = 0; var7 < var6; ++var7) {
NetCache.NetCache_responseHeaderBuffer.array[var7 + NetCache.NetCache_responseHeaderBuffer.offset] ^= NetCache.field3181;
}
}
var22 = NetCache.NetCache_responseHeaderBuffer;
var22.offset += var6;
if (NetCache.NetCache_responseHeaderBuffer.offset < var5) {
break;
}
if (class226.NetCache_currentResponse == null) {
NetCache.NetCache_responseHeaderBuffer.offset = 0;
var7 = NetCache.NetCache_responseHeaderBuffer.readUnsignedByte();
var8 = NetCache.NetCache_responseHeaderBuffer.readUnsignedShort();
int var9 = NetCache.NetCache_responseHeaderBuffer.readUnsignedByte();
var10 = NetCache.NetCache_responseHeaderBuffer.readInt();
long var11 = (long)(var8 + (var7 << 16));
NetFileRequest var13 = (NetFileRequest)NetCache.NetCache_pendingPriorityResponses.get(var11);
class215.NetCache_hasPendingPriorityResponses = true;
if (var13 == null) {
var13 = (NetFileRequest)NetCache.NetCache_pendingResponses.get(var11);
class215.NetCache_hasPendingPriorityResponses = false;
}
if (var13 == null) {
throw new IOException();
}
int var14 = var9 == 0 ? 5 : 9;
class226.NetCache_currentResponse = var13;
VarpDefinition.NetCache_responseArchiveBuffer = new Buffer(var14 + var10 + class226.NetCache_currentResponse.padding);
VarpDefinition.NetCache_responseArchiveBuffer.writeByte(var9);
VarpDefinition.NetCache_responseArchiveBuffer.writeInt(var10);
NetCache.field3175 = 8;
NetCache.NetCache_responseHeaderBuffer.offset = 0;
} else if (NetCache.field3175 == 0) {
if (NetCache.NetCache_responseHeaderBuffer.array[0] == -1) {
NetCache.field3175 = 1;
NetCache.NetCache_responseHeaderBuffer.offset = 0;
} else {
class226.NetCache_currentResponse = null;
}
}
continue;
}
var6 = VarpDefinition.NetCache_responseArchiveBuffer.array.length - class226.NetCache_currentResponse.padding;
var7 = 512 - NetCache.field3175;
if (var7 > var6 - VarpDefinition.NetCache_responseArchiveBuffer.offset) {
var7 = var6 - VarpDefinition.NetCache_responseArchiveBuffer.offset;
}
if (var7 > var16) {
var7 = var16;
}
NetCache.NetCache_socket.read(VarpDefinition.NetCache_responseArchiveBuffer.array, VarpDefinition.NetCache_responseArchiveBuffer.offset, var7);
if (NetCache.field3181 != 0) {
for (var8 = 0; var8 < var7; ++var8) {
var10000 = VarpDefinition.NetCache_responseArchiveBuffer.array;
var10001 = VarpDefinition.NetCache_responseArchiveBuffer.offset + var8;
var10000[var10001] ^= NetCache.field3181;
}
}
var22 = VarpDefinition.NetCache_responseArchiveBuffer;
var22.offset += var7;
NetCache.field3175 += var7;
if (var6 != VarpDefinition.NetCache_responseArchiveBuffer.offset) {
if (NetCache.field3175 != 512) {
break;
}
NetCache.field3175 = 0;
continue;
}
if (0xff00ffL == class226.NetCache_currentResponse.key) {
AbstractRasterProvider.NetCache_reference = VarpDefinition.NetCache_responseArchiveBuffer;
for (var8 = 0; var8 < 256; ++var8) {
Archive var17 = NetCache.NetCache_archives[var8];
if (var17 != null) {
AbstractRasterProvider.NetCache_reference.offset = var8 * 8 + 5;
var10 = AbstractRasterProvider.NetCache_reference.readInt();
int var18 = AbstractRasterProvider.NetCache_reference.readInt();
var17.loadIndex(var10, var18);
}
}
} else {
NetCache.NetCache_crc.reset();
NetCache.NetCache_crc.update(VarpDefinition.NetCache_responseArchiveBuffer.array, 0, var6);
var8 = (int)NetCache.NetCache_crc.getValue();
if (var8 != class226.NetCache_currentResponse.crc) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var20) {
}
++NetCache.NetCache_crcMismatches;
NetCache.NetCache_socket = null;
NetCache.field3181 = (byte) ((int) (Math.random() * 255.0D + 1.0D));
return false;
}
NetCache.NetCache_crcMismatches = 0;
NetCache.NetCache_ioExceptions = 0;
class226.NetCache_currentResponse.archive.write((int) (class226.NetCache_currentResponse.key & 0xffffL), VarpDefinition.NetCache_responseArchiveBuffer.array, (class226.NetCache_currentResponse.key & 0xff0000L) == 0xff0000L, class215.NetCache_hasPendingPriorityResponses);
}
class226.NetCache_currentResponse.remove();
if (class215.NetCache_hasPendingPriorityResponses) {
--NetCache.NetCache_pendingPriorityResponsesCount;
} else {
--NetCache.NetCache_pendingResponsesCount;
}
NetCache.field3175 = 0;
class226.NetCache_currentResponse = null;
VarpDefinition.NetCache_responseArchiveBuffer = null;
}
return true;
} catch (IOException var21) {
try {
NetCache.NetCache_socket.close();
} catch (Exception var19) {
}
++NetCache.NetCache_ioExceptions;
NetCache.NetCache_socket = null;
return false;
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(Lkf;Lla;I)Lla;",
garbageValue = "-2066495425"
)
@Export("readStringIntParameters")
static final IterableNodeHashTable readStringIntParameters(Buffer var0, IterableNodeHashTable var1) {
int var2 = var0.readUnsignedByte();
int var3;
if (var1 == null) {
int var4 = var2 - 1;
var4 |= var4 >>> 1;
var4 |= var4 >>> 2;
var4 |= var4 >>> 4;
var4 |= var4 >>> 8;
var4 |= var4 >>> 16;
var3 = var4 + 1;
var1 = new IterableNodeHashTable(var3);
}
for (var3 = 0; var3 < var2; ++var3) {
boolean var7 = var0.readUnsignedByte() == 1;
int var5 = var0.readMedium();
Object var6;
if (var7) {
var6 = new ObjectNode(var0.readStringCp1252NullTerminated());
} else {
var6 = new IntegerNode(var0.readInt());
}
var1.put((Node)var6, (long)var5);
}
return var1;
}
@ObfuscatedName("e")
@ObfuscatedSignature(
signature = "(CLgu;I)I",
garbageValue = "-2081105774"
)
@Export("lowercaseChar")
static int lowercaseChar(char var0, Language var1) {
int var2 = var0 << 4;
if (Character.isUpperCase(var0) || Character.isTitleCase(var0)) {
var0 = Character.toLowerCase(var0);
var2 = (var0 << 4) + 1;
}
if (var0 == 241 && var1 == Language.Language_ES) {
var2 = 1762;
}
return var2;
}
}