365 lines
11 KiB
Java
365 lines
11 KiB
Java
import java.awt.event.FocusEvent;
|
|
import java.awt.event.FocusListener;
|
|
import java.awt.event.KeyEvent;
|
|
import java.awt.event.KeyListener;
|
|
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("at")
|
|
@Implements("KeyHandler")
|
|
public final class KeyHandler implements KeyListener, FocusListener {
|
|
@ObfuscatedName("rm")
|
|
@ObfuscatedSignature(
|
|
signature = "Lbu;"
|
|
)
|
|
@Export("friendSystem")
|
|
public static FriendSystem friendSystem;
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
signature = "Lat;"
|
|
)
|
|
@Export("KeyHandler_instance")
|
|
static KeyHandler KeyHandler_instance;
|
|
@ObfuscatedName("p")
|
|
@Export("musicTrackBoolean")
|
|
public static boolean musicTrackBoolean;
|
|
@ObfuscatedName("cf")
|
|
@Export("KeyHandler_pressedKeys")
|
|
public static boolean[] KeyHandler_pressedKeys;
|
|
@ObfuscatedName("cu")
|
|
static int[] field399;
|
|
@ObfuscatedName("cy")
|
|
@ObfuscatedGetter(
|
|
intValue = 703429313
|
|
)
|
|
static int field400;
|
|
@ObfuscatedName("ce")
|
|
@ObfuscatedGetter(
|
|
intValue = -1486976357
|
|
)
|
|
static int field387;
|
|
@ObfuscatedName("cw")
|
|
static char[] field410;
|
|
@ObfuscatedName("cq")
|
|
static int[] field403;
|
|
@ObfuscatedName("ci")
|
|
public static int[] field404;
|
|
@ObfuscatedName("ca")
|
|
@ObfuscatedGetter(
|
|
intValue = -617516983
|
|
)
|
|
public static int field405;
|
|
@ObfuscatedName("cc")
|
|
@ObfuscatedGetter(
|
|
intValue = 1714214597
|
|
)
|
|
static int field406;
|
|
@ObfuscatedName("ch")
|
|
@ObfuscatedGetter(
|
|
intValue = -168140991
|
|
)
|
|
static int field407;
|
|
@ObfuscatedName("cx")
|
|
@ObfuscatedGetter(
|
|
intValue = 1711084141
|
|
)
|
|
static int field408;
|
|
@ObfuscatedName("cl")
|
|
@ObfuscatedGetter(
|
|
intValue = -1956753403
|
|
)
|
|
@Export("KeyHandler_idleCycles")
|
|
static volatile int KeyHandler_idleCycles;
|
|
@ObfuscatedName("cs")
|
|
@Export("KeyHandler_keyCodes")
|
|
static int[] KeyHandler_keyCodes;
|
|
|
|
static {
|
|
KeyHandler_instance = new KeyHandler();
|
|
KeyHandler_pressedKeys = new boolean[112];
|
|
field399 = new int[128];
|
|
field400 = 0;
|
|
field387 = 0;
|
|
field410 = new char[128];
|
|
field403 = new int[128];
|
|
field404 = new int[128];
|
|
field405 = 0;
|
|
field406 = 0;
|
|
field407 = 0;
|
|
field408 = 0;
|
|
KeyHandler_idleCycles = 0;
|
|
KeyHandler_keyCodes = new int[]{-1, -1, -1, -1, -1, -1, -1, -1, 85, 80, 84, -1, 91, -1, -1, -1, 81, 82, 86, -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, -1, -1, 83, 104, 105, 103, 102, 96, 98, 97, 99, -1, -1, -1, -1, -1, -1, -1, 25, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, -1, -1, -1, 48, 68, 66, 50, 34, 51, 52, 53, 39, 54, 55, 56, 70, 69, 40, 41, 32, 35, 49, 36, 38, 67, 33, 65, 37, 64, -1, -1, -1, -1, -1, 228, 231, 227, 233, 224, 219, 225, 230, 226, 232, 89, 87, -1, 88, 229, 90, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
|
|
}
|
|
|
|
KeyHandler() {
|
|
}
|
|
|
|
public final synchronized void keyPressed(KeyEvent var1) {
|
|
if (KeyHandler_instance != null) {
|
|
int var2 = var1.getKeyCode();
|
|
if (var2 >= 0 && var2 < KeyHandler_keyCodes.length) {
|
|
var2 = KeyHandler_keyCodes[var2];
|
|
if ((var2 & 128) != 0) {
|
|
var2 = -1;
|
|
}
|
|
} else {
|
|
var2 = -1;
|
|
}
|
|
|
|
if (field387 >= 0 && var2 >= 0) {
|
|
field399[field387] = var2;
|
|
field387 = field387 + 1 & 127;
|
|
if (field387 == field400) {
|
|
field387 = -1;
|
|
}
|
|
}
|
|
|
|
int var3;
|
|
if (var2 >= 0) {
|
|
var3 = field407 + 1 & 127;
|
|
if (var3 != field406) {
|
|
field403[field407] = var2;
|
|
field410[field407] = 0;
|
|
field407 = var3;
|
|
}
|
|
}
|
|
|
|
var3 = var1.getModifiers();
|
|
if ((var3 & 10) != 0 || var2 == 85 || var2 == 10) {
|
|
var1.consume();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public final void keyTyped(KeyEvent var1) {
|
|
if (KeyHandler_instance != null) {
|
|
char var2 = var1.getKeyChar();
|
|
if (var2 != 0 && var2 != '\uffff') {
|
|
boolean var3;
|
|
if (var2 > 0 && var2 < 128 || var2 >= 160 && var2 <= 255) {
|
|
var3 = true;
|
|
} else {
|
|
label59: {
|
|
if (var2 != 0) {
|
|
char[] var7 = class288.cp1252AsciiExtension;
|
|
|
|
for (int var5 = 0; var5 < var7.length; ++var5) {
|
|
char var6 = var7[var5];
|
|
if (var2 == var6) {
|
|
var3 = true;
|
|
break label59;
|
|
}
|
|
}
|
|
}
|
|
|
|
var3 = false;
|
|
}
|
|
}
|
|
|
|
if (var3) {
|
|
int var4 = field407 + 1 & 127;
|
|
if (var4 != field406) {
|
|
field403[field407] = -1;
|
|
field410[field407] = var2;
|
|
field407 = var4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var1.consume();
|
|
}
|
|
|
|
public final synchronized void focusLost(FocusEvent var1) {
|
|
if (KeyHandler_instance != null) {
|
|
field387 = -1;
|
|
}
|
|
|
|
}
|
|
|
|
public final void focusGained(FocusEvent var1) {
|
|
}
|
|
|
|
public final synchronized void keyReleased(KeyEvent var1) {
|
|
if (KeyHandler_instance != null) {
|
|
int var2 = var1.getKeyCode();
|
|
if (var2 >= 0 && var2 < KeyHandler_keyCodes.length) {
|
|
var2 = KeyHandler_keyCodes[var2] & -129;
|
|
} else {
|
|
var2 = -1;
|
|
}
|
|
|
|
if (field387 >= 0 && var2 >= 0) {
|
|
field399[field387] = ~var2;
|
|
field387 = field387 + 1 & 127;
|
|
if (field387 == field400) {
|
|
field387 = -1;
|
|
}
|
|
}
|
|
}
|
|
|
|
var1.consume();
|
|
}
|
|
|
|
@ObfuscatedName("t")
|
|
public static boolean method850(long var0) {
|
|
return var0 != 0L && !WorldMapData_1.method732(var0);
|
|
}
|
|
|
|
@ObfuscatedName("hg")
|
|
@ObfuscatedSignature(
|
|
signature = "(ZLks;B)V",
|
|
garbageValue = "77"
|
|
)
|
|
@Export("updateNpcs")
|
|
static final void updateNpcs(boolean var0, PacketBuffer var1) {
|
|
Client.field766 = 0;
|
|
Client.field690 = 0;
|
|
ClientPreferences.method1852();
|
|
|
|
int var2;
|
|
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;
|
|
}
|
|
|
|
NPC var4 = Client.npcs[var2];
|
|
Client.npcIndices[++Client.npcCount - 1] = var2;
|
|
var4.npcCycle = Client.cycle;
|
|
int var5;
|
|
if (var0) {
|
|
var5 = var1.readBits(8);
|
|
if (var5 > 127) {
|
|
var5 -= 256;
|
|
}
|
|
} else {
|
|
var5 = var1.readBits(5);
|
|
if (var5 > 15) {
|
|
var5 -= 32;
|
|
}
|
|
}
|
|
|
|
var4.definition = NetCache.getNpcDefinition(var1.readBits(14));
|
|
int var6 = Client.defaultRotations[var1.readBits(3)];
|
|
if (var3) {
|
|
var4.orientation = var4.rotation = var6;
|
|
}
|
|
|
|
int var7 = var1.readBits(1);
|
|
int var8 = var1.readBits(1);
|
|
if (var8 == 1) {
|
|
Client.field867[++Client.field690 - 1] = var2;
|
|
}
|
|
|
|
int var9;
|
|
if (var0) {
|
|
var9 = var1.readBits(8);
|
|
if (var9 > 127) {
|
|
var9 -= 256;
|
|
}
|
|
} else {
|
|
var9 = var1.readBits(5);
|
|
if (var9 > 15) {
|
|
var9 -= 32;
|
|
}
|
|
}
|
|
|
|
var4.field942 = var4.definition.size * 64;
|
|
var4.field975 = var4.definition.rotation;
|
|
if (var4.field975 == 0) {
|
|
var4.rotation = 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.method2077(class192.localPlayer.pathX[0] + var9, class192.localPlayer.pathY[0] + var5, var7 == 1);
|
|
}
|
|
|
|
var1.exportIndex();
|
|
class49.method866(var1);
|
|
|
|
for (var2 = 0; var2 < Client.field766; ++var2) {
|
|
int var10 = Client.field828[var2];
|
|
if (Client.npcs[var10].npcCycle != Client.cycle) {
|
|
Client.npcs[var10].definition = null;
|
|
Client.npcs[var10] = 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("jz")
|
|
@ObfuscatedSignature(
|
|
signature = "(I)V",
|
|
garbageValue = "1886684971"
|
|
)
|
|
static final void method848() {
|
|
PacketBufferNode var0 = TilePaint.getPacketBufferNode(ClientPacket.field2298, Client.packetWriter.isaacCipher);
|
|
Client.packetWriter.addNode(var0);
|
|
|
|
for (InterfaceParent var1 = (InterfaceParent)Client.interfaceParents.first(); var1 != null; var1 = (InterfaceParent)Client.interfaceParents.next()) {
|
|
if (var1.type == 0 || var1.type == 3) {
|
|
class185.closeInterface(var1, true);
|
|
}
|
|
}
|
|
|
|
if (Client.meslayerContinueWidget != null) {
|
|
NPCDefinition.invalidateWidget(Client.meslayerContinueWidget);
|
|
Client.meslayerContinueWidget = null;
|
|
}
|
|
|
|
}
|
|
|
|
@ObfuscatedName("kl")
|
|
@ObfuscatedSignature(
|
|
signature = "(IIIILlt;Lhf;S)V",
|
|
garbageValue = "19802"
|
|
)
|
|
@Export("worldToMinimap")
|
|
static final void worldToMinimap(int var0, int var1, int var2, int var3, Sprite var4, SpriteMask var5) {
|
|
int var6 = var3 * var3 + var2 * var2;
|
|
if (var6 > 4225 && var6 < 90000) {
|
|
int var7 = Client.camAngleY & 2047;
|
|
int var8 = Rasterizer3D.Rasterizer3D_sine[var7];
|
|
int var9 = Rasterizer3D.Rasterizer3D_cosine[var7];
|
|
int var10 = var9 * var2 + var3 * var8 >> 16;
|
|
int var11 = var3 * var9 - var8 * var2 >> 16;
|
|
double var12 = Math.atan2((double)var10, (double)var11);
|
|
int var14 = var5.width / 2 - 25;
|
|
int var15 = (int)(Math.sin(var12) * (double)var14);
|
|
int var16 = (int)(Math.cos(var12) * (double)var14);
|
|
byte var17 = 20;
|
|
ArchiveLoader.redHintArrowSprite.method6242(var15 + (var0 + var5.width / 2 - var17 / 2), var5.height / 2 + var1 - var17 / 2 - var16 - 10, var17, var17, 15, 15, var12, 256);
|
|
} else {
|
|
Script.drawSpriteOnMinimap(var0, var1, var2, var3, var4, var5);
|
|
}
|
|
|
|
}
|
|
}
|