Files
runelite/runescape-client/src/main/java/KeyHandler.java
Owain van Brakel 6485eb9bed project: Rev 182
2019-08-29 16:17:19 +02:00

307 lines
9.7 KiB
Java

import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
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("ay")
@Implements("KeyHandler")
public final class KeyHandler implements KeyListener, FocusListener {
@ObfuscatedName("oh")
@ObfuscatedSignature(
signature = "Lch;"
)
@Export("varcs")
static Varcs varcs;
@ObfuscatedName("s")
@ObfuscatedSignature(
signature = "Lay;"
)
@Export("KeyHandler_instance")
public static KeyHandler KeyHandler_instance;
@ObfuscatedName("t")
public static short[] field387;
@ObfuscatedName("cp")
@Export("KeyHandler_pressedKeys")
public static boolean[] KeyHandler_pressedKeys;
@ObfuscatedName("cb")
public static int[] field374;
@ObfuscatedName("ch")
@ObfuscatedGetter(
intValue = 495485409
)
public static int field375;
@ObfuscatedName("cn")
@ObfuscatedGetter(
intValue = -2076273353
)
public static int field378;
@ObfuscatedName("cr")
static char[] field377;
@ObfuscatedName("cl")
static int[] field376;
@ObfuscatedName("cg")
public static int[] field379;
@ObfuscatedName("cy")
@ObfuscatedGetter(
intValue = -1379841439
)
public static int field380;
@ObfuscatedName("cz")
@ObfuscatedGetter(
intValue = -1494145321
)
public static int field385;
@ObfuscatedName("cv")
@ObfuscatedGetter(
intValue = 1845463833
)
public static int field382;
@ObfuscatedName("cq")
@ObfuscatedGetter(
intValue = 1982695045
)
public static int field383;
@ObfuscatedName("ct")
@ObfuscatedGetter(
intValue = 1884223821
)
@Export("KeyHandler_idleCycles")
public static volatile int KeyHandler_idleCycles;
@ObfuscatedName("cx")
@Export("KeyHandler_keyCodes")
static int[] KeyHandler_keyCodes;
static {
KeyHandler_instance = new KeyHandler();
KeyHandler_pressedKeys = new boolean[112];
field374 = new int[128];
field375 = 0;
field378 = 0;
field377 = new char[128];
field376 = new int[128];
field379 = new int[128];
field380 = 0;
field385 = 0;
field382 = 0;
field383 = 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -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 (field378 >= 0 && var2 >= 0) {
field374[field378] = var2;
field378 = field378 + 1 & 127;
if (field375 == field378) {
field378 = -1;
}
}
int var3;
if (var2 >= 0) {
var3 = field382 + 1 & 127;
if (var3 != field385) {
field376[field382] = var2;
field377[field382] = 0;
field382 = var3;
}
}
var3 = var1.getModifiers();
if ((var3 & 10) != 0 || var2 == 85 || var2 == 10) {
var1.consume();
}
}
}
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 (field378 >= 0 && var2 >= 0) {
field374[field378] = ~var2;
field378 = field378 + 1 & 127;
if (field375 == field378) {
field378 = -1;
}
}
}
var1.consume();
}
public final synchronized void focusLost(FocusEvent var1) {
if (KeyHandler_instance != null) {
field378 = -1;
}
}
public final void focusGained(FocusEvent var1) {
}
public final void keyTyped(KeyEvent var1) {
if (KeyHandler_instance != null) {
char var2 = var1.getKeyChar();
if (var2 != 0 && var2 != '\uffff' && class218.method4019(var2)) {
int var3 = field382 + 1 & 127;
if (var3 != field385) {
field376[field382] = -1;
field377[field382] = var2;
field382 = var3;
}
}
}
var1.consume();
}
@ObfuscatedName("s")
@ObfuscatedSignature(
signature = "([BIII)Ljava/lang/String;",
garbageValue = "1700061188"
)
public static String method786(byte[] var0, int var1, int var2) {
char[] var3 = new char[var2];
int var4 = 0;
int var5 = var1;
int var8;
for (int var6 = var2 + var1; var5 < var6; var3[var4++] = (char)var8) {
int var7 = var0[var5++] & 255;
if (var7 < 128) {
if (var7 == 0) {
var8 = 65533;
} else {
var8 = var7;
}
} else if (var7 < 192) {
var8 = 65533;
} else if (var7 < 224) {
if (var5 < var6 && (var0[var5] & 192) == 128) {
var8 = (var7 & 31) << 6 | var0[var5++] & 63;
if (var8 < 128) {
var8 = 65533;
}
} else {
var8 = 65533;
}
} else if (var7 < 240) {
if (var5 + 1 < var6 && (var0[var5] & 192) == 128 && (var0[var5 + 1] & 192) == 128) {
var8 = (var7 & 15) << 12 | (var0[var5++] & 63) << 6 | var0[var5++] & 63;
if (var8 < 2048) {
var8 = 65533;
}
} else {
var8 = 65533;
}
} else if (var7 < 248) {
if (var5 + 2 < var6 && (var0[var5] & 192) == 128 && (var0[var5 + 1] & 192) == 128 && (var0[var5 + 2] & 192) == 128) {
var8 = (var7 & 7) << 18 | (var0[var5++] & 63) << 12 | (var0[var5++] & 63) << 6 | var0[var5++] & 63;
if (var8 >= 65536 && var8 <= 1114111) {
var8 = 65533;
} else {
var8 = 65533;
}
} else {
var8 = 65533;
}
} else {
var8 = 65533;
}
}
return new String(var3, 0, var4);
}
@ObfuscatedName("s")
@ObfuscatedSignature(
signature = "(Lhz;B)V",
garbageValue = "-71"
)
@Export("InvDefinition_setArchives")
public static void InvDefinition_setArchives(AbstractArchive var0) {
InvDefinition.InvDefinition_archive = var0;
}
@ObfuscatedName("gk")
@ObfuscatedSignature(
signature = "(ZI)V",
garbageValue = "2136399840"
)
@Export("addNpcsToScene")
static final void addNpcsToScene(boolean var0) {
for (int var1 = 0; var1 < Client.npcCount; ++var1) {
NPC var2 = Client.npcs[Client.npcIndices[var1]];
if (var2 != null && var2.isVisible() && var2.definition.isVisible == var0 && var2.definition.transformIsVisible()) {
int var3 = var2.x >> 7;
int var4 = var2.y >> 7;
if (var3 >= 0 && var3 < 104 && var4 >= 0 && var4 < 104) {
if (var2.size * -1143635904 == 1 && (var2.x & 127) == 64 && (var2.y & 127) == 64) {
if (Client.tileLastDrawnActor[var3][var4] == Client.viewportDrawCount) {
continue;
}
Client.tileLastDrawnActor[var3][var4] = Client.viewportDrawCount;
}
long var5 = WorldMapSprite.calculateTag(0, 0, 1, !var2.definition.isInteractable, Client.npcIndices[var1]);
var2.playerCycle = Client.cycle;
Player.scene.drawEntity(ItemContainer.plane, var2.x, var2.y, GrandExchangeOfferTotalQuantityComparator.getTileHeight(var2.size * -178253824 - 64 + var2.x, var2.size * -178253824 - 64 + var2.y, ItemContainer.plane), var2.size * -178253824 - 64 + 60, var2, var2.rotation, var5, var2.isWalking);
}
}
}
}
@ObfuscatedName("gl")
@ObfuscatedSignature(
signature = "(ZI)V",
garbageValue = "2032247175"
)
static final void method787(boolean var0) {
WorldMapSectionType.playPcmPlayers();
++Client.packetWriter.pendingWrites;
if (Client.packetWriter.pendingWrites >= 50 || var0) {
Client.packetWriter.pendingWrites = 0;
if (!Client.field672 && Client.packetWriter.getSocket() != null) {
PacketBufferNode var1 = MenuAction.getPacketBufferNode(ClientPacket.field2207, Client.packetWriter.isaacCipher);
Client.packetWriter.addNode(var1);
try {
Client.packetWriter.flush();
} catch (IOException var3) {
Client.field672 = true;
}
}
}
}
}