Files
runelite/runescape-client/src/main/java/WorldMapData_0.java
therealunull 8f587826ee chore: rev 193
2020-12-09 11:07:26 -05:00

617 lines
19 KiB
Java

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InvalidClassException;
import java.io.ObjectInputStream;
import java.io.OptionalDataException;
import java.io.RandomAccessFile;
import java.io.StreamCorruptedException;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.security.SecureRandom;
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;
import net.runelite.rs.Reflection;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("k")
@Implements("WorldMapData_0")
public class WorldMapData_0 extends AbstractWorldMapData {
@ObfuscatedName("ro")
@ObfuscatedGetter(
intValue = 2110783872
)
static int field112;
@ObfuscatedName("ei")
@Export("secureRandom")
static SecureRandom secureRandom;
WorldMapData_0() {
}
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(Lkj;I)V",
garbageValue = "-804003183"
)
@Export("init")
void init(Buffer var1) {
int var2 = var1.readUnsignedByte();
if (var2 != WorldMapID.field292.value) {
throw new IllegalStateException("");
} else {
super.minPlane = var1.readUnsignedByte();
super.planes = var1.readUnsignedByte();
super.regionXLow = var1.readUnsignedShort() * 4096;
super.regionYLow = var1.readUnsignedShort() * 64;
super.regionX = var1.readUnsignedShort();
super.regionY = var1.readUnsignedShort();
super.groupId = var1.method5559();
super.fileId = var1.method5559();
}
}
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(Lkj;I)V",
garbageValue = "1878970684"
)
@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.field178 = new byte[super.planes][64][64];
super.field177 = new byte[super.planes][64][64];
super.decorations = new WorldMapDecoration[super.planes][64][64][];
int var2 = var1.readUnsignedByte();
if (var2 != class39.field278.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 && super.regionY == var2.regionY;
}
}
public int hashCode() {
return super.regionX | super.regionY << 8;
}
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(CI)Z",
garbageValue = "69015458"
)
public static boolean method247(char var0) {
if ((var0 <= 0 || var0 >= 128) && (var0 < 160 || var0 > 255)) {
if (var0 != 0) {
char[] var1 = class298.cp1252AsciiExtension;
for (int var2 = 0; var2 < var1.length; ++var2) {
char var3 = var1[var2];
if (var0 == var3) {
return true;
}
}
}
return false;
} else {
return true;
}
}
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(Lky;S)V",
garbageValue = "13892"
)
@Export("performReflectionCheck")
public static void performReflectionCheck(PacketBuffer var0) {
ReflectionCheck var1 = (ReflectionCheck)class105.reflectionChecks.last();
if (var1 != null) {
int var2 = var0.offset;
var0.writeInt(var1.id);
for (int var3 = 0; var3 < var1.size; ++var3) {
if (var1.creationErrors[var3] != 0) {
var0.writeByte(var1.creationErrors[var3]);
} else {
try {
int var4 = var1.operations[var3];
Field var5;
int var6;
if (var4 == 0) {
var5 = var1.fields[var3];
var6 = Reflection.getInt(var5, (Object)null);
var0.writeByte(0);
var0.writeInt(var6);
} else if (var4 == 1) {
var5 = var1.fields[var3];
Reflection.setInt(var5, (Object)null, var1.intReplaceValues[var3]);
var0.writeByte(0);
} else if (var4 == 2) {
var5 = var1.fields[var3];
var6 = var5.getModifiers();
var0.writeByte(0);
var0.writeInt(var6);
}
Method var25;
if (var4 != 3) {
if (var4 == 4) {
var25 = var1.methods[var3];
var6 = var25.getModifiers();
var0.writeByte(0);
var0.writeInt(var6);
}
} else {
var25 = var1.methods[var3];
byte[][] var10 = var1.arguments[var3];
Object[] var7 = new Object[var10.length];
for (int var8 = 0; var8 < var10.length; ++var8) {
ObjectInputStream var9 = new ObjectInputStream(new ByteArrayInputStream(var10[var8]));
var7[var8] = var9.readObject();
}
Object var11 = Reflection.invoke(var25, (Object)null, var7);
if (var11 == null) {
var0.writeByte(0);
} else if (var11 instanceof Number) {
var0.writeByte(1);
var0.writeLong(((Number)var11).longValue());
} else if (var11 instanceof String) {
var0.writeByte(2);
var0.writeStringCp1252NullTerminated((String)var11);
} else {
var0.writeByte(4);
}
}
} catch (ClassNotFoundException var13) {
var0.writeByte(-10);
} catch (InvalidClassException var14) {
var0.writeByte(-11);
} catch (StreamCorruptedException var15) {
var0.writeByte(-12);
} catch (OptionalDataException var16) {
var0.writeByte(-13);
} catch (IllegalAccessException var17) {
var0.writeByte(-14);
} catch (IllegalArgumentException var18) {
var0.writeByte(-15);
} catch (InvocationTargetException var19) {
var0.writeByte(-16);
} catch (SecurityException var20) {
var0.writeByte(-17);
} catch (IOException var21) {
var0.writeByte(-18);
} catch (NullPointerException var22) {
var0.writeByte(-19);
} catch (Exception var23) {
var0.writeByte(-20);
} catch (Throwable var24) {
var0.writeByte(-21);
}
}
}
var0.writeCrc(var2);
var1.remove();
}
}
@ObfuscatedName("x")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-806912444"
)
public static void method237() {
try {
File var0 = new File(TileItemPile.userHomeDirectory, "random.dat");
int var2;
if (var0.exists()) {
JagexCache.JagexCache_randomDat = new BufferedFile(new AccessFile(var0, "rw", 25L), 24, 0);
} else {
label37:
for (int var1 = 0; var1 < DynamicObject.field1318.length; ++var1) {
for (var2 = 0; var2 < GraphicsObject.field1117.length; ++var2) {
File var3 = new File(GraphicsObject.field1117[var2] + DynamicObject.field1318[var1] + File.separatorChar + "random.dat");
if (var3.exists()) {
JagexCache.JagexCache_randomDat = new BufferedFile(new AccessFile(var3, "rw", 25L), 24, 0);
break label37;
}
}
}
}
if (JagexCache.JagexCache_randomDat == null) {
RandomAccessFile var4 = new RandomAccessFile(var0, "rw");
var2 = var4.read();
var4.seek(0L);
var4.write(var2);
var4.seek(0L);
var4.close();
JagexCache.JagexCache_randomDat = new BufferedFile(new AccessFile(var0, "rw", 25L), 24, 0);
}
} catch (IOException var5) {
}
}
@ObfuscatedName("aj")
@ObfuscatedSignature(
descriptor = "(ILcs;ZI)I",
garbageValue = "2012352771"
)
static int method245(int var0, Script var1, boolean var2) {
if (var0 == ScriptOpcodes.SOUND_SYNTH) {
VarcInt.Interpreter_intStackSize -= 3;
class232.queueSoundEffect(Interpreter.Interpreter_intStack[VarcInt.Interpreter_intStackSize], Interpreter.Interpreter_intStack[VarcInt.Interpreter_intStackSize + 1], Interpreter.Interpreter_intStack[VarcInt.Interpreter_intStackSize + 2]);
return 1;
} else if (var0 == ScriptOpcodes.SOUND_SONG) {
playSong(Interpreter.Interpreter_intStack[--VarcInt.Interpreter_intStackSize]);
return 1;
} else if (var0 == ScriptOpcodes.SOUND_JINGLE) {
VarcInt.Interpreter_intStackSize -= 2;
LoginPacket.method3672(Interpreter.Interpreter_intStack[VarcInt.Interpreter_intStackSize], Interpreter.Interpreter_intStack[VarcInt.Interpreter_intStackSize + 1]);
return 1;
} else {
int var3;
if (var0 == 3203) {
var3 = Math.min(Math.max(Interpreter.Interpreter_intStack[--VarcInt.Interpreter_intStackSize], 0), 100);
WorldMapEvent.method810(Math.round((float)var3 * 2.55F));
return 1;
} else if (var0 == 3204) {
Interpreter.Interpreter_intStack[++VarcInt.Interpreter_intStackSize - 1] = Math.round((float)Timer.clientPreferences.musicVolume / 2.55F);
return 1;
} else if (var0 == 3205) {
var3 = Math.min(Math.max(Interpreter.Interpreter_intStack[--VarcInt.Interpreter_intStackSize], 0), 100);
WorldMapCacheName.method662(Math.round((float)var3 * 1.27F));
return 1;
} else if (var0 == 3206) {
Interpreter.Interpreter_intStack[++VarcInt.Interpreter_intStackSize - 1] = Math.round((float)Timer.clientPreferences.soundEffectsVolume / 1.27F);
return 1;
} else if (var0 == 3207) {
var3 = Math.min(Math.max(Interpreter.Interpreter_intStack[--VarcInt.Interpreter_intStackSize], 0), 100);
class194.method3676(Math.round(1.27F * (float)var3));
return 1;
} else if (var0 == 3208) {
Interpreter.Interpreter_intStack[++VarcInt.Interpreter_intStackSize - 1] = Math.round((float)Timer.clientPreferences.areaSoundEffectsVolume / 1.27F);
return 1;
} else {
return 2;
}
}
}
@ObfuscatedName("gr")
@ObfuscatedSignature(
descriptor = "(II)V",
garbageValue = "-1507499151"
)
@Export("playSong")
static void playSong(int var0) {
if (var0 == -1 && !Client.field883) {
WorldMapRegion.method588();
} else if (var0 != -1 && var0 != Client.currentTrackGroupId && Timer.clientPreferences.musicVolume != 0 && !Client.field883) {
SecureRandomCallable.method1221(2, class217.archive6, var0, 0, Timer.clientPreferences.musicVolume, false);
}
Client.currentTrackGroupId = var0;
}
@ObfuscatedName("hw")
@ObfuscatedSignature(
descriptor = "(ZLky;I)V",
garbageValue = "-1863896009"
)
@Export("updateNpcs")
static final void updateNpcs(boolean var0, PacketBuffer var1) {
Client.field769 = 0;
Client.field826 = 0;
PacketBuffer var2 = Client.packetWriter.packetBuffer;
var2.importIndex();
int var3 = var2.readBits(8);
int var4;
if (var3 < Client.npcCount) {
for (var4 = var3; var4 < Client.npcCount; ++var4) {
Client.field770[++Client.field769 - 1] = Client.npcIndices[var4];
}
}
if (var3 > Client.npcCount) {
throw new RuntimeException("");
} else {
Client.npcCount = 0;
int var5;
int var7;
int var8;
int var9;
int var10;
int var11;
for (var4 = 0; var4 < var3; ++var4) {
var5 = Client.npcIndices[var4];
NPC var16 = Client.npcs[var5];
var7 = var2.readBits(1);
if (var7 == 0) {
Client.npcIndices[++Client.npcCount - 1] = var5;
var16.npcCycle = Client.cycle;
} else {
var8 = var2.readBits(2);
if (var8 == 0) {
Client.npcIndices[++Client.npcCount - 1] = var5;
var16.npcCycle = Client.cycle;
Client.field654[++Client.field826 - 1] = var5;
} else if (var8 == 1) {
Client.npcIndices[++Client.npcCount - 1] = var5;
var16.npcCycle = Client.cycle;
var9 = var2.readBits(3);
var16.method2102(var9, (byte)1);
var10 = var2.readBits(1);
if (var10 == 1) {
Client.field654[++Client.field826 - 1] = var5;
}
} else if (var8 == 2) {
Client.npcIndices[++Client.npcCount - 1] = var5;
var16.npcCycle = Client.cycle;
var9 = var2.readBits(3);
var16.method2102(var9, (byte)2);
var10 = var2.readBits(3);
var16.method2102(var10, (byte)2);
var11 = var2.readBits(1);
if (var11 == 1) {
Client.field654[++Client.field826 - 1] = var5;
}
} else if (var8 == 3) {
Client.field770[++Client.field769 - 1] = var5;
}
}
}
ModeWhere.method3714(var0, var1);
int var14;
for (var14 = 0; var14 < Client.field826; ++var14) {
var3 = Client.field654[var14];
NPC var15 = Client.npcs[var3];
var5 = var1.readUnsignedByte();
int var6;
if ((var5 & 8) != 0) {
var15.spotAnimation = var1.method5539();
var6 = var1.readInt();
var15.field979 = var6 >> 16;
var15.field978 = (var6 & 65535) + Client.cycle;
var15.spotAnimationFrame = 0;
var15.spotAnimationFrameCycle = 0;
if (var15.field978 > Client.cycle) {
var15.spotAnimationFrame = -1;
}
if (var15.spotAnimation == 65535) {
var15.spotAnimation = -1;
}
}
if ((var5 & 2) != 0) {
var6 = var1.method5582();
var7 = var1.method5539();
var8 = var15.x - (var6 - NetFileRequest.baseX * 64 - NetFileRequest.baseX * 64) * 64;
var9 = var15.y - (var7 - class41.baseY * 64 - class41.baseY * 64) * 64;
if (var8 != 0 || var9 != 0) {
var15.field959 = (int)(Math.atan2((double)var8, (double)var9) * 325.949D) & 2047;
}
}
if ((var5 & 16) != 0) {
var15.targetIndex = var1.method5580();
if (var15.targetIndex == 65535) {
var15.targetIndex = -1;
}
}
if ((var5 & 32) != 0) {
var15.overheadText = var1.readStringCp1252NullTerminated();
var15.overheadTextCyclesRemaining = 100;
}
if ((var5 & 1) != 0) {
var15.definition = WorldMapIcon_0.getNpcDefinition(var1.method5580());
var15.field941 = var15.definition.size * 64;
var15.field940 = var15.definition.rotation;
var15.walkSequence = var15.definition.walkSequence;
var15.walkBackSequence = var15.definition.walkBackSequence;
var15.walkLeftSequence = var15.definition.walkLeftSequence;
var15.walkRightSequence = var15.definition.walkRightSequence;
var15.idleSequence = var15.definition.idleSequence;
var15.turnLeftSequence = var15.definition.turnLeftSequence;
var15.turnRightSequence = var15.definition.turnRightSequence;
}
if ((var5 & 64) != 0) {
var6 = var1.method5582();
if (var6 == 65535) {
var6 = -1;
}
var7 = var1.readUnsignedByte();
if (var6 == var15.sequence && var6 != -1) {
var8 = ParamDefinition.SequenceDefinition_get(var6).field3548;
if (var8 == 1) {
var15.sequenceFrame = 0;
var15.sequenceFrameCycle = 0;
var15.sequenceDelay = var7;
var15.field974 = 0;
}
if (var8 == 2) {
var15.field974 = 0;
}
} else if (var6 == -1 || var15.sequence == -1 || ParamDefinition.SequenceDefinition_get(var6).field3557 >= ParamDefinition.SequenceDefinition_get(var15.sequence).field3557) {
var15.sequence = var6;
var15.sequenceFrame = 0;
var15.sequenceFrameCycle = 0;
var15.sequenceDelay = var7;
var15.field974 = 0;
var15.field996 = var15.pathLength;
}
}
if ((var5 & 4) != 0) {
var6 = var1.method5571();
int var12;
if (var6 > 0) {
for (var7 = 0; var7 < var6; ++var7) {
var9 = -1;
var10 = -1;
var11 = -1;
var8 = var1.readUShortSmart();
if (var8 == 32767) {
var8 = var1.readUShortSmart();
var10 = var1.readUShortSmart();
var9 = var1.readUShortSmart();
var11 = var1.readUShortSmart();
} else if (var8 != 32766) {
var10 = var1.readUShortSmart();
} else {
var8 = -1;
}
var12 = var1.readUShortSmart();
var15.addHitSplat(var8, var10, var9, var11, Client.cycle, var12);
}
}
var7 = var1.readUnsignedByte();
if (var7 > 0) {
for (var8 = 0; var8 < var7; ++var8) {
var9 = var1.readUShortSmart();
var10 = var1.readUShortSmart();
if (var10 != 32767) {
var11 = var1.readUShortSmart();
var12 = var1.method5572();
int var13 = var10 > 0 ? var1.method5572() : var12;
var15.addHealthBar(var9, Client.cycle, var10, var11, var12, var13);
} else {
var15.removeHealthBar(var9);
}
}
}
}
if ((var5 & 128) != 0) {
var15.field981 = var1.method5645();
var15.field982 = var1.method5645();
var15.field958 = var1.method5645();
var15.field956 = var1.method5645();
var15.field984 = var1.readUnsignedShort() + Client.cycle;
var15.field973 = var1.method5582() + Client.cycle;
var15.field986 = var1.readUnsignedShort();
var15.pathLength = 1;
var15.field996 = 0;
var15.field981 += var15.pathX[0];
var15.field982 += var15.pathY[0];
var15.field958 += var15.pathX[0];
var15.field956 += var15.pathY[0];
}
}
for (var14 = 0; var14 < Client.field769; ++var14) {
var3 = Client.field770[var14];
if (Client.npcs[var3].npcCycle != Client.cycle) {
Client.npcs[var3].definition = null;
Client.npcs[var3] = null;
}
}
if (var1.offset != Client.packetWriter.serverPacketLength) {
throw new RuntimeException(var1.offset + "," + Client.packetWriter.serverPacketLength);
} else {
for (var14 = 0; var14 < Client.npcCount; ++var14) {
if (Client.npcs[Client.npcIndices[var14]] == null) {
throw new RuntimeException(var14 + "," + Client.npcCount);
}
}
}
}
}
@ObfuscatedName("ii")
@ObfuscatedSignature(
descriptor = "(IIB)V",
garbageValue = "43"
)
static final void method243(int var0, int var1) {
if (Client.menuOptionsCount >= 2 || Client.isItemSelected != 0 || Client.isSpellSelected) {
if (Client.showMouseOverText) {
int var2 = WorldMapSprite.method463();
String var3;
if (Client.isItemSelected == 1 && Client.menuOptionsCount < 2) {
var3 = "Use" + " " + Client.selectedItemName + " " + "->";
} else if (Client.isSpellSelected && Client.menuOptionsCount < 2) {
var3 = Client.selectedSpellActionName + " " + Client.selectedSpellName + " " + "->";
} else {
var3 = ArchiveLoader.method1230(var2);
}
if (Client.menuOptionsCount > 2) {
var3 = var3 + class23.colorStartTag(16777215) + " " + '/' + " " + (Client.menuOptionsCount - 2) + " more options";
}
GrandExchangeOfferTotalQuantityComparator.fontBold12.drawRandomAlphaAndSpacing(var3, var0 + 4, var1 + 15, 16777215, 0, Client.cycle / 1000);
}
}
}
@ObfuscatedName("ln")
@ObfuscatedSignature(
descriptor = "(Ljava/lang/String;B)V",
garbageValue = "-51"
)
static void method244(String var0) {
WorldMapSection1.field317 = var0;
try {
String var1 = WorldMapIcon_0.client.getParameter(Integer.toString(18));
String var2 = WorldMapIcon_0.client.getParameter(Integer.toString(13));
String var3 = var1 + "settings=" + var0 + "; version=1; path=/; domain=" + var2;
if (var0.length() == 0) {
var3 = var3 + "; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0";
} else {
var3 = var3 + "; Expires=" + class3.method40(class298.currentTimeMillis() + 94608000000L) + "; Max-Age=" + 94608000L;
}
Client var4 = WorldMapIcon_0.client;
String var5 = "document.cookie=\"" + var3 + "\"";
//JSObject.getWindow(var4).eval(var5);
} catch (Throwable var6) {
}
}
}