Files
runelite/runescape-client/src/main/java/ScriptFrame.java
2019-07-18 15:21:46 +02:00

374 lines
9.9 KiB
Java

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("bh")
@Implements("ScriptFrame")
public class ScriptFrame {
@ObfuscatedName("rk")
@ObfuscatedGetter(
intValue = 1697937431
)
static int field526;
@ObfuscatedName("c")
@ObfuscatedGetter(
intValue = 1199234245
)
public static int field529;
@ObfuscatedName("m")
@ObfuscatedGetter(
intValue = 1541896355
)
static int field527;
@ObfuscatedName("bx")
@ObfuscatedSignature(
signature = "Lgu;"
)
static class190 field528;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Lcx;"
)
@Export("script")
Script script;
@ObfuscatedName("w")
@ObfuscatedGetter(
intValue = 949224095
)
@Export("pc")
int pc;
@ObfuscatedName("e")
@Export("intLocals")
int[] intLocals;
@ObfuscatedName("p")
@Export("stringLocals")
String[] stringLocals;
ScriptFrame() {
this.pc = -1;
}
@ObfuscatedName("e")
@ObfuscatedSignature(
signature = "([BIIIIIII[Lfv;B)V",
garbageValue = "66"
)
static final void method1088(byte[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7, CollisionMap[] var8) {
int var10;
for (int var9 = 0; var9 < 8; ++var9) {
for (var10 = 0; var10 < 8; ++var10) {
if (var9 + var2 > 0 && var9 + var2 < 103 && var3 + var10 > 0 && var3 + var10 < 103) {
int[] var10000 = var8[var1].flags[var9 + var2];
var10000[var3 + var10] &= -16777217;
}
}
}
Buffer var13 = new Buffer(var0);
for (var10 = 0; var10 < 4; ++var10) {
for (int var11 = 0; var11 < 64; ++var11) {
for (int var12 = 0; var12 < 64; ++var12) {
if (var10 == var4 && var11 >= var5 && var11 < var5 + 8 && var12 >= var6 && var12 < var6 + 8) {
WorldMapLabel.loadTerrain(var13, var1, var2 + class197.method3702(var11 & 7, var12 & 7, var7), var3 + WorldMapManager.method625(var11 & 7, var12 & 7, var7), 0, 0, var7);
} else {
WorldMapLabel.loadTerrain(var13, 0, -1, -1, 0, 0, 0);
}
}
}
}
}
@ObfuscatedName("fi")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "204342367"
)
static final void method1090() {
if (Client.field700 > 0) {
RouteStrategy.method3593();
} else {
Client.timer.method4993();
class96.updateGameState(40);
class269.field3563 = Client.packetWriter.getSocket();
Client.packetWriter.removeSocket();
}
}
@ObfuscatedName("gx")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "975361183"
)
@Export("checkLocalPlayerDestination")
static void checkLocalPlayerDestination() {
if (Client.localPlayer.x >> 7 == Client.destinationX && Client.localPlayer.y >> 7 == Client.destinationY) {
Client.destinationX = 0;
}
}
@ObfuscatedName("gv")
@ObfuscatedSignature(
signature = "(ZLkx;I)V",
garbageValue = "1426671502"
)
@Export("updateNpcs")
static final void updateNpcs(boolean var0, PacketBuffer var1) {
Client.field775 = 0;
Client.field697 = 0;
StructDefinition.method4530();
int var2;
NPC var4;
int var5;
int var6;
int var7;
int var8;
int var9;
while (var1.bitsRemaining(Client.packetWriter.serverPacketLength) >= 27) {
var2 = var1.readBits(15);
if (var2 == 32767) {
break;
}
boolean var3 = false;
if (Client.npcs[var2] == null) {
Client.npcs[var2] = new NPC();
var3 = true;
}
var4 = Client.npcs[var2];
Client.npcIndices[++Client.npcCount - 1] = var2;
var4.npcCycle = Client.cycle;
if (var0) {
var5 = var1.readBits(8);
if (var5 > 127) {
var5 -= 256;
}
} else {
var5 = var1.readBits(5);
if (var5 > 15) {
var5 -= 32;
}
}
var6 = var1.readBits(1);
var7 = Client.field780[var1.readBits(3)];
if (var3) {
var4.orientation = var4.field950 = var7;
}
var8 = var1.readBits(1);
if (var8 == 1) {
Client.field859[++Client.field697 - 1] = var2;
}
if (var0) {
var9 = var1.readBits(8);
if (var9 > 127) {
var9 -= 256;
}
} else {
var9 = var1.readBits(5);
if (var9 > 15) {
var9 -= 32;
}
}
var4.definition = GameShell.getNpcDefinition(var1.readBits(14));
var4.size = var4.definition.size * 78073455;
var4.field948 = var4.definition.field3492;
if (var4.field948 == 0) {
var4.field950 = 0;
}
var4.walkSequence = var4.definition.walkSequence;
var4.walkBackSequence = var4.definition.walkBackSequence;
var4.walkLeftSequence = var4.definition.walkLeftSequence;
var4.walkRightSequence = var4.definition.walkRightSequence;
var4.readySequence = var4.definition.readySequence;
var4.turnLeftSequence = var4.definition.turnLeftSequence;
var4.turnRightSequence = var4.definition.turnRightSequence;
var4.method1963(Client.localPlayer.pathX[0] + var5, Client.localPlayer.pathY[0] + var9, var6 == 1);
}
var1.exportIndex();
int var14;
for (var2 = 0; var2 < Client.field697; ++var2) {
var14 = Client.field859[var2];
var4 = Client.npcs[var14];
var5 = var1.readUnsignedByte();
if ((var5 & 1) != 0) {
var4.targetIndex = var1.method5532();
if (var4.targetIndex == 65535) {
var4.targetIndex = -1;
}
}
if ((var5 & 64) != 0) {
var6 = var1.method5534();
var7 = var1.method5534();
var8 = var4.x - (var6 - MusicPatchNode2.baseX * 64 - MusicPatchNode2.baseX * 64) * 64;
var9 = var4.y - (var7 - class1.baseY * 64 - class1.baseY * 64) * 64;
if (var8 != 0 || var9 != 0) {
var4.field976 = (int)(Math.atan2((double)var8, (double)var9) * 325.949D) & 2047;
}
}
if ((var5 & 32) != 0) {
var6 = var1.readUnsignedShort();
if (var6 == 65535) {
var6 = -1;
}
var7 = var1.method5525();
if (var6 == var4.sequence && var6 != -1) {
var8 = GrandExchangeEvent.getSequenceDefinition(var6).field3529;
if (var8 == 1) {
var4.sequenceFrame = 0;
var4.sequenceFrameCycle = 0;
var4.sequenceDelay = var7;
var4.field985 = 0;
}
if (var8 == 2) {
var4.field985 = 0;
}
} else if (var6 == -1 || var4.sequence == -1 || GrandExchangeEvent.getSequenceDefinition(var6).field3533 >= GrandExchangeEvent.getSequenceDefinition(var4.sequence).field3533) {
var4.sequence = var6;
var4.sequenceFrame = 0;
var4.sequenceFrameCycle = 0;
var4.sequenceDelay = var7;
var4.field985 = 0;
var4.field1008 = var4.pathLength;
}
}
if ((var5 & 4) != 0) {
var4.definition = GameShell.getNpcDefinition(var1.readUnsignedShort());
var4.size = var4.definition.size * 78073455;
var4.field948 = var4.definition.field3492;
var4.walkSequence = var4.definition.walkSequence;
var4.walkBackSequence = var4.definition.walkBackSequence;
var4.walkLeftSequence = var4.definition.walkLeftSequence;
var4.walkRightSequence = var4.definition.walkRightSequence;
var4.readySequence = var4.definition.readySequence;
var4.turnLeftSequence = var4.definition.turnLeftSequence;
var4.turnRightSequence = var4.definition.turnRightSequence;
}
if ((var5 & 16) != 0) {
var6 = var1.readUnsignedByteNegate();
int var10;
int var11;
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();
var4.addHitSplat(var8, var10, var9, var11, Client.cycle, var12);
}
}
var7 = var1.method5722();
if (var7 > 0) {
for (var8 = 0; var8 < var7; ++var8) {
var9 = var1.readUShortSmart();
var10 = var1.readUShortSmart();
if (var10 != 32767) {
var11 = var1.readUShortSmart();
var12 = var1.readUnsignedByte();
int var13 = var10 > 0 ? var1.method5525() : var12;
var4.addHealthBar(var9, Client.cycle, var10, var11, var12, var13);
} else {
var4.removeHealthBar(var9);
}
}
}
}
if ((var5 & 8) != 0) {
var4.spotAnimation = var1.method5532();
var6 = var1.method5542();
var4.heightOffset = var6 >> 16;
var4.field989 = (var6 & 65535) + Client.cycle;
var4.spotAnimationFrame = 0;
var4.spotAnimationFrameCycle = 0;
if (var4.field989 > Client.cycle) {
var4.spotAnimationFrame = -1;
}
if (var4.spotAnimation == 65535) {
var4.spotAnimation = -1;
}
}
if ((var5 & 2) != 0) {
var4.overheadText = var1.readStringCp1252NullTerminated();
var4.overheadTextCyclesRemaining = 100;
}
}
for (var2 = 0; var2 < Client.field775; ++var2) {
var14 = Client.field776[var2];
if (Client.npcs[var14].npcCycle != Client.cycle) {
Client.npcs[var14].definition = null;
Client.npcs[var14] = null;
}
}
if (var1.offset != Client.packetWriter.serverPacketLength) {
throw new RuntimeException(var1.offset + "," + Client.packetWriter.serverPacketLength);
} else {
for (var2 = 0; var2 < Client.npcCount; ++var2) {
if (Client.npcs[Client.npcIndices[var2]] == null) {
throw new RuntimeException(var2 + "," + Client.npcCount);
}
}
}
}
@ObfuscatedName("hf")
@ObfuscatedSignature(
signature = "(III)V",
garbageValue = "-881674814"
)
static void method1086(int var0, int var1) {
PacketBufferNode var2 = Archive.method4265(ClientPacket.field2273, Client.packetWriter.isaacCipher);
var2.packetBuffer.writeIntLE16(var0);
var2.packetBuffer.method5530(var1);
Client.packetWriter.method2219(var2);
}
@ObfuscatedName("js")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "-73"
)
static final void method1089() {
PacketBufferNode var0 = Archive.method4265(ClientPacket.field2286, Client.packetWriter.isaacCipher);
var0.packetBuffer.writeByte(0);
Client.packetWriter.method2219(var0);
}
}