Files
runelite/runescape-client/src/main/java/TaskHandler.java
ThatGamerBlue 655106b9df chore: rev 190
2020-06-18 12:15:38 +01:00

565 lines
15 KiB
Java

import java.applet.Applet;
import java.io.DataInputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.URL;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("fm")
@Implements("TaskHandler")
public class TaskHandler implements Runnable {
@ObfuscatedName("m")
@Export("javaVendor")
public static String javaVendor;
@ObfuscatedName("o")
@Export("javaVersion")
public static String javaVersion;
@ObfuscatedName("jq")
@ObfuscatedSignature(
signature = "Lhd;"
)
static Widget field2066;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Lfa;"
)
@Export("current")
Task current;
@ObfuscatedName("j")
@ObfuscatedSignature(
signature = "Lfa;"
)
@Export("task")
Task task;
@ObfuscatedName("p")
@Export("thread")
Thread thread;
@ObfuscatedName("g")
@Export("isClosed")
boolean isClosed;
public TaskHandler() {
this.current = null;
this.task = null;
this.isClosed = false;
javaVendor = "Unknown";
javaVersion = "1.6";
try {
javaVendor = System.getProperty("java.vendor");
javaVersion = System.getProperty("java.version");
} catch (Exception var2) {
}
this.isClosed = false;
this.thread = new Thread(this);
this.thread.setPriority(10);
this.thread.setDaemon(true);
this.thread.start();
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "622783218"
)
@Export("close")
public final void close() {
synchronized(this) {
this.isClosed = true;
this.notifyAll();
}
try {
this.thread.join();
} catch (InterruptedException var3) {
}
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(IIILjava/lang/Object;I)Lfa;",
garbageValue = "962190485"
)
@Export("newTask")
final Task newTask(int var1, int var2, int var3, Object var4) {
Task var5 = new Task();
var5.type = var1;
var5.intArgument = var2;
var5.objectArgument = var4;
synchronized(this) {
if (this.task != null) {
this.task.next = var5;
this.task = var5;
} else {
this.task = this.current = var5;
}
this.notify();
return var5;
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(Ljava/lang/String;II)Lfa;",
garbageValue = "746026781"
)
@Export("newSocketTask")
public final Task newSocketTask(String var1, int var2) {
return this.newTask(1, var2, 0, var1);
}
@ObfuscatedName("j")
@ObfuscatedSignature(
signature = "(Ljava/lang/Runnable;II)Lfa;",
garbageValue = "2089571271"
)
@Export("newThreadTask")
public final Task newThreadTask(Runnable var1, int var2) {
return this.newTask(2, var2, 0, var1);
}
public final void run() {
while (true) {
Task var1;
synchronized(this) {
while (true) {
if (this.isClosed) {
return;
}
if (this.current != null) {
var1 = this.current;
this.current = this.current.next;
if (this.current == null) {
this.task = null;
}
break;
}
try {
this.wait();
} catch (InterruptedException var8) {
}
}
}
try {
int var5 = var1.type;
if (var5 == 1) {
var1.result = new Socket(InetAddress.getByName((String)var1.objectArgument), var1.intArgument);
} else if (var5 == 2) {
Thread var3 = new Thread((Runnable)var1.objectArgument);
var3.setDaemon(true);
var3.start();
var3.setPriority(var1.intArgument);
var1.result = var3;
} else if (var5 == 4) {
var1.result = new DataInputStream(((URL)var1.objectArgument).openStream());
}
var1.status = 1;
} catch (ThreadDeath var6) {
throw var6;
} catch (Throwable var7) {
var1.status = 2;
}
}
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(Ljava/applet/Applet;Ljava/lang/String;I)V",
garbageValue = "-1144544095"
)
public static void method3606(Applet var0, String var1) {
class60.applet = var0;
if (var1 != null) {
class60.field450 = var1;
}
}
@ObfuscatedName("fa")
@ObfuscatedSignature(
signature = "(Lcc;IB)V",
garbageValue = "-73"
)
@Export("updateActorSequence")
static final void updateActorSequence(Actor var0, int var1) {
int var2;
int var3;
int var4;
SequenceDefinition var11;
if (var0.field966 >= Client.cycle) {
var2 = Math.max(1, var0.field966 - Client.cycle);
var3 = var0.field967 * 64 + var0.field995 * 128;
var4 = var0.field967 * 64 + var0.field1008 * 128;
var0.x += (var3 - var0.x) / var2;
var0.y += (var4 - var0.y) / var2;
var0.field1022 = 0;
var0.orientation = var0.field1006;
} else {
int var5;
int var7;
if (var0.field1011 >= Client.cycle) {
if (var0.field1011 == Client.cycle || var0.sequence == -1 || var0.sequenceDelay != 0 || var0.sequenceFrameCycle + 1 > NetSocket.SequenceDefinition_get(var0.sequence).frameLengths[var0.sequenceFrame]) {
var2 = var0.field1011 - var0.field966;
var3 = Client.cycle - var0.field966;
var4 = var0.field967 * 64 + var0.field995 * 128;
var5 = var0.field967 * 64 + var0.field1008 * 128;
int var6 = var0.field967 * 64 + var0.field1007 * 128;
var7 = var0.field967 * 64 + var0.field1009 * 128;
var0.x = (var6 * var3 + var4 * (var2 - var3)) / var2;
var0.y = (var7 * var3 + var5 * (var2 - var3)) / var2;
}
var0.field1022 = 0;
var0.orientation = var0.field1006;
var0.rotation = var0.orientation;
} else {
var0.movementSequence = var0.idleSequence;
if (var0.pathLength == 0) {
var0.field1022 = 0;
} else {
label550: {
if (var0.sequence != -1 && var0.sequenceDelay == 0) {
var11 = NetSocket.SequenceDefinition_get(var0.sequence);
if (var0.field1023 > 0 && var11.field3559 == 0) {
++var0.field1022;
break label550;
}
if (var0.field1023 <= 0 && var11.field3560 == 0) {
++var0.field1022;
break label550;
}
}
var2 = var0.x;
var3 = var0.y;
var4 = var0.field967 * 64 + var0.pathX[var0.pathLength - 1] * 128;
var5 = var0.field967 * 64 + var0.pathY[var0.pathLength - 1] * 128;
if (var2 < var4) {
if (var3 < var5) {
var0.orientation = 1280;
} else if (var3 > var5) {
var0.orientation = 1792;
} else {
var0.orientation = 1536;
}
} else if (var2 > var4) {
if (var3 < var5) {
var0.orientation = 768;
} else if (var3 > var5) {
var0.orientation = 256;
} else {
var0.orientation = 512;
}
} else if (var3 < var5) {
var0.orientation = 1024;
} else if (var3 > var5) {
var0.orientation = 0;
}
byte var14 = var0.pathTraversed[var0.pathLength - 1];
if (var4 - var2 <= 256 && var4 - var2 >= -256 && var5 - var3 <= 256 && var5 - var3 >= -256) {
var7 = var0.orientation - var0.rotation & 2047;
if (var7 > 1024) {
var7 -= 2048;
}
int var8 = var0.walkBackSequence;
if (var7 >= -256 && var7 <= 256) {
var8 = var0.walkSequence;
} else if (var7 >= 256 && var7 < 768) {
var8 = var0.walkRightSequence;
} else if (var7 >= -768 && var7 <= -256) {
var8 = var0.walkLeftSequence;
}
if (var8 == -1) {
var8 = var0.walkSequence;
}
var0.movementSequence = var8;
int var9 = 4;
boolean var10 = true;
if (var0 instanceof NPC) {
var10 = ((NPC)var0).definition.isClickable;
}
if (var10) {
if (var0.orientation != var0.rotation && var0.targetIndex == -1 && var0.field1017 != 0) {
var9 = 2;
}
if (var0.pathLength > 2) {
var9 = 6;
}
if (var0.pathLength > 3) {
var9 = 8;
}
if (var0.field1022 > 0 && var0.pathLength > 1) {
var9 = 8;
--var0.field1022;
}
} else {
if (var0.pathLength > 1) {
var9 = 6;
}
if (var0.pathLength > 2) {
var9 = 8;
}
if (var0.field1022 > 0 && var0.pathLength > 1) {
var9 = 8;
--var0.field1022;
}
}
if (var14 == 2) {
var9 <<= 1;
}
if (var9 >= 8 && var0.walkSequence == var0.movementSequence && var0.runSequence != -1) {
var0.movementSequence = var0.runSequence;
}
if (var4 != var2 || var3 != var5) {
if (var2 < var4) {
var0.x += var9;
if (var0.x > var4) {
var0.x = var4;
}
} else if (var2 > var4) {
var0.x -= var9;
if (var0.x < var4) {
var0.x = var4;
}
}
if (var3 < var5) {
var0.y += var9;
if (var0.y > var5) {
var0.y = var5;
}
} else if (var3 > var5) {
var0.y -= var9;
if (var0.y < var5) {
var0.y = var5;
}
}
}
if (var4 == var0.x && var5 == var0.y) {
--var0.pathLength;
if (var0.field1023 > 0) {
--var0.field1023;
}
}
} else {
var0.x = var4;
var0.y = var5;
--var0.pathLength;
if (var0.field1023 > 0) {
--var0.field1023;
}
}
}
}
}
}
if (var0.x < 128 || var0.y < 128 || var0.x >= 13184 || var0.y >= 13184) {
var0.sequence = -1;
var0.spotAnimation = -1;
var0.field966 = 0;
var0.field1011 = 0;
var0.x = var0.pathX[0] * 128 + var0.field967 * 64;
var0.y = var0.pathY[0] * 128 + var0.field967 * 64;
var0.method1810();
}
if (class60.localPlayer == var0 && (var0.x < 1536 || var0.y < 1536 || var0.x >= 11776 || var0.y >= 11776)) {
var0.sequence = -1;
var0.spotAnimation = -1;
var0.field966 = 0;
var0.field1011 = 0;
var0.x = var0.pathX[0] * 128 + var0.field967 * 64;
var0.y = var0.field967 * 64 + var0.pathY[0] * 128;
var0.method1810();
}
if (var0.field1017 != 0) {
if (var0.targetIndex != -1) {
Object var15 = null;
if (var0.targetIndex < 32768) {
var15 = Client.npcs[var0.targetIndex];
} else if (var0.targetIndex >= 32768) {
var15 = Client.players[var0.targetIndex - 32768];
}
if (var15 != null) {
var3 = var0.x - ((Actor)var15).x;
var4 = var0.y - ((Actor)var15).y;
if (var3 != 0 || var4 != 0) {
var0.orientation = (int)(Math.atan2((double)var3, (double)var4) * 325.949D) & 2047;
}
} else if (var0.false0) {
var0.targetIndex = -1;
var0.false0 = false;
}
}
if (var0.field992 != -1 && (var0.pathLength == 0 || var0.field1022 > 0)) {
var0.orientation = var0.field992;
var0.field992 = -1;
}
var2 = var0.orientation - var0.rotation & 2047;
if (var2 == 0 && var0.false0) {
var0.targetIndex = -1;
var0.false0 = false;
}
if (var2 != 0) {
++var0.field1016;
boolean var13;
if (var2 > 1024) {
var0.rotation -= var0.field1017;
var13 = true;
if (var2 < var0.field1017 || var2 > 2048 - var0.field1017) {
var0.rotation = var0.orientation;
var13 = false;
}
if (var0.movementSequence == var0.idleSequence && (var0.field1016 > 25 || var13)) {
if (var0.turnLeftSequence != -1) {
var0.movementSequence = var0.turnLeftSequence;
} else {
var0.movementSequence = var0.walkSequence;
}
}
} else {
var0.rotation += var0.field1017;
var13 = true;
if (var2 < var0.field1017 || var2 > 2048 - var0.field1017) {
var0.rotation = var0.orientation;
var13 = false;
}
if (var0.movementSequence == var0.idleSequence && (var0.field1016 > 25 || var13)) {
if (var0.turnRightSequence != -1) {
var0.movementSequence = var0.turnRightSequence;
} else {
var0.movementSequence = var0.walkSequence;
}
}
}
var0.rotation &= 2047;
} else {
var0.field1016 = 0;
}
}
var0.isWalking = false;
if (var0.movementSequence != -1) {
var11 = NetSocket.SequenceDefinition_get(var0.movementSequence);
if (var11 != null && var11.frameIds != null) {
++var0.movementFrameCycle;
if (var0.movementFrame < var11.frameIds.length && var0.movementFrameCycle > var11.frameLengths[var0.movementFrame]) {
var0.movementFrameCycle = 1;
++var0.movementFrame;
GrandExchangeOfferOwnWorldComparator.addSequenceSoundEffect(var11, var0.movementFrame, var0.x, var0.y);
}
if (var0.movementFrame >= var11.frameIds.length) {
var0.movementFrameCycle = 0;
var0.movementFrame = 0;
GrandExchangeOfferOwnWorldComparator.addSequenceSoundEffect(var11, var0.movementFrame, var0.x, var0.y);
}
} else {
var0.movementSequence = -1;
}
}
if (var0.spotAnimation != -1 && Client.cycle >= var0.field987) {
if (var0.spotAnimationFrame < 0) {
var0.spotAnimationFrame = 0;
}
var2 = class4.SpotAnimationDefinition_get(var0.spotAnimation).sequence;
if (var2 != -1) {
SequenceDefinition var12 = NetSocket.SequenceDefinition_get(var2);
if (var12 != null && var12.frameIds != null) {
++var0.spotAnimationFrameCycle;
if (var0.spotAnimationFrame < var12.frameIds.length && var0.spotAnimationFrameCycle > var12.frameLengths[var0.spotAnimationFrame]) {
var0.spotAnimationFrameCycle = 1;
++var0.spotAnimationFrame;
GrandExchangeOfferOwnWorldComparator.addSequenceSoundEffect(var12, var0.spotAnimationFrame, var0.x, var0.y);
}
if (var0.spotAnimationFrame >= var12.frameIds.length && (var0.spotAnimationFrame < 0 || var0.spotAnimationFrame >= var12.frameIds.length)) {
var0.spotAnimation = -1;
}
} else {
var0.spotAnimation = -1;
}
} else {
var0.spotAnimation = -1;
}
}
if (var0.sequence != -1 && var0.sequenceDelay <= 1) {
var11 = NetSocket.SequenceDefinition_get(var0.sequence);
if (var11.field3559 == 1 && var0.field1023 > 0 && var0.field966 <= Client.cycle && var0.field1011 < Client.cycle) {
var0.sequenceDelay = 1;
return;
}
}
if (var0.sequence != -1 && var0.sequenceDelay == 0) {
var11 = NetSocket.SequenceDefinition_get(var0.sequence);
if (var11 != null && var11.frameIds != null) {
++var0.sequenceFrameCycle;
if (var0.sequenceFrame < var11.frameIds.length && var0.sequenceFrameCycle > var11.frameLengths[var0.sequenceFrame]) {
var0.sequenceFrameCycle = 1;
++var0.sequenceFrame;
GrandExchangeOfferOwnWorldComparator.addSequenceSoundEffect(var11, var0.sequenceFrame, var0.x, var0.y);
}
if (var0.sequenceFrame >= var11.frameIds.length) {
var0.sequenceFrame -= var11.frameCount;
++var0.field1000;
if (var0.field1000 >= var11.field3562) {
var0.sequence = -1;
} else if (var0.sequenceFrame >= 0 && var0.sequenceFrame < var11.frameIds.length) {
GrandExchangeOfferOwnWorldComparator.addSequenceSoundEffect(var11, var0.sequenceFrame, var0.x, var0.y);
} else {
var0.sequence = -1;
}
}
var0.isWalking = var11.field3558;
} else {
var0.sequence = -1;
}
}
if (var0.sequenceDelay > 0) {
--var0.sequenceDelay;
}
}
}