rt4-client/client/src/main/java/client.java

1006 lines
41 KiB
Java

import java.awt.Container;
import java.awt.Graphics;
import java.awt.Insets;
import java.io.IOException;
import java.net.Socket;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.openrs2.deob.annotation.OriginalArg;
import org.openrs2.deob.annotation.OriginalClass;
import org.openrs2.deob.annotation.OriginalMember;
import org.openrs2.deob.annotation.Pc;
@OriginalClass("client!client")
public final class client extends GameShell {
@OriginalMember(owner = "client!client", name = "main", descriptor = "([Ljava/lang/String;)V")
public static void main(@OriginalArg(0) String[] arg0) {
try {
if (arg0.length != 4) {
arg0 = new String[4];
arg0[0] = "1";
arg0[1] = "live";
arg0[2] = "english";
arg0[3] = "game0";
// Static131.method2577("argument count");
}
@Pc(15) int local15 = -1;
Static187.worldListId = Integer.parseInt(arg0[0]);
Static83.modeWhere = 2;
if (arg0[1].equals("live")) {
Static81.modeWhat = 0;
} else if (arg0[1].equals("rc")) {
Static81.modeWhat = 1;
} else if (arg0[1].equals("wip")) {
Static81.modeWhat = 2;
} else {
Static131.method2577("modewhat");
}
Static249.aBoolean282 = false;
try {
@Pc(63) byte[] local63 = arg0[2].getBytes("ISO-8859-1");
local15 = Static101.method2053(Static10.decodeString(local63, local63.length, 0));
} catch (@Pc(74) Exception local74) {
}
if (local15 != -1) {
Static141.anInt3470 = local15;
} else if (arg0[2].equals("english")) {
Static141.anInt3470 = 0;
} else if (arg0[2].equals("german")) {
Static141.anInt3470 = 1;
} else {
Static131.method2577("language");
}
Static3.method4659(Static141.anInt3470);
Static233.aBoolean254 = false;
Static150.aBoolean175 = false;
if (arg0[3].equals("game0")) {
Static266.game = 0;
} else if (arg0[3].equals("game1")) {
Static266.game = 1;
} else {
Static131.method2577("game");
}
Static279.anInt5880 = 0;
Static178.aBoolean203 = false;
Static204.anInt4760 = 0;
Static47.aClass100_991 = Static186.EMPTY_FILE;
@Pc(146) client local146 = new client();
Static215.aClient1 = local146;
local146.startApplication(Static81.modeWhat + 32, "runescape");
GameShell.frame.setLocation(40, 40);
} catch (@Pc(167) Exception local167) {
Static89.report(null, local167);
}
}
@OriginalMember(owner = "client!client", name = "f", descriptor = "(I)V")
@Override
protected final void mainRedraw() {
if (Static244.gameState == 1000) {
return;
}
@Pc(15) boolean local15 = Static138.method2699();
if (local15 && Static144.aBoolean173 && Static11.musicChannel != null) {
Static11.musicChannel.method3570();
}
if ((Static244.gameState == 30 || Static244.gameState == 10) && (GameShell.replaceCanvas || Static97.aLong89 != 0L && Static97.aLong89 < MonotonicClock.currentTimeMillis())) {
Static241.setWindowMode(GameShell.replaceCanvas, Static144.method2736(), Static114.anInt5831, Static22.anInt729);
}
@Pc(80) int local80;
@Pc(84) int local84;
if (GameShell.fullScreenFrame == null) {
@Pc(65) Container local65;
if (GameShell.fullScreenFrame != null) {
local65 = GameShell.fullScreenFrame;
} else if (GameShell.frame == null) {
local65 = GameShell.signLink.applet;
} else {
local65 = GameShell.frame;
}
local80 = local65.getSize().width;
local84 = local65.getSize().height;
if (local65 == GameShell.frame) {
@Pc(90) Insets local90 = GameShell.frame.getInsets();
local80 -= local90.right + local90.left;
local84 -= local90.top + local90.bottom;
}
if (local80 != GameShell.frameWidth || local84 != GameShell.frameHeight) {
Static203.method3662();
Static97.aLong89 = MonotonicClock.currentTimeMillis() + 500L;
}
}
if (GameShell.fullScreenFrame != null && !GameShell.focus && (Static244.gameState == 30 || Static244.gameState == 10)) {
Static241.setWindowMode(false, Static214.windowMode, -1, -1);
}
@Pc(158) boolean local158 = false;
if (GameShell.fullRedraw) {
local158 = true;
GameShell.fullRedraw = false;
}
if (local158) {
Static139.method2704();
}
if (GlRenderer.enabled) {
for (local80 = 0; local80 < 100; local80++) {
Static186.aBooleanArray100[local80] = true;
}
}
if (Static244.gameState == 0) {
Static13.method473(null, local158, Static126.mainLoadSecondaryText, Static199.mainLoadPercentage);
} else if (Static244.gameState == 5) {
Static182.method3359(false, Static280.aClass3_Sub2_Sub9_43);
} else if (Static244.gameState == 10) {
Static126.method2460();
} else if (Static244.gameState == 25 || Static244.gameState == 28) {
if (Static233.loadingScreenState == 1) {
if (Static230.anInt5150 < Static175.mapFilesMissingCount) {
Static230.anInt5150 = Static175.mapFilesMissingCount;
}
local80 = (Static230.anInt5150 - Static175.mapFilesMissingCount) * 50 / Static230.anInt5150;
Static114.drawTextOnScreen(false, Static34.concatenate(new JagString[] { LocalizedText.LOADING, Static229.aClass100_974, Static123.parseInt(local80), Static14.aClass100_80 }));
} else if (Static233.loadingScreenState == 2) {
if (Static38.anInt1196 < Static271.anInt5804) {
Static38.anInt1196 = Static271.anInt5804;
}
local80 = (Static38.anInt1196 - Static271.anInt5804) * 50 / Static38.anInt1196 + 50;
Static114.drawTextOnScreen(false, Static34.concatenate(new JagString[] { LocalizedText.LOADING, Static229.aClass100_974, Static123.parseInt(local80), Static14.aClass100_80 }));
} else {
Static114.drawTextOnScreen(false, LocalizedText.LOADING);
}
} else if (Static244.gameState == 30) {
Static89.method1841();
} else if (Static244.gameState == 40) {
Static114.drawTextOnScreen(false, Static34.concatenate(new JagString[] { LocalizedText.CONLOST, Static269.aClass100_556, LocalizedText.ATTEMPT_TO_REESTABLISH}));
}
if (GlRenderer.enabled && Static244.gameState != 0) {
GlRenderer.method4153();
for (local80 = 0; local80 < Static24.anInt766; local80++) {
Static31.aBooleanArray29[local80] = false;
}
} else {
@Pc(388) Graphics local388;
if ((Static244.gameState == 30 || Static244.gameState == 10) && Static199.anInt4672 == 0 && !local158) {
try {
local388 = GameShell.canvas.getGraphics();
for (local84 = 0; local84 < Static24.anInt766; local84++) {
if (Static31.aBooleanArray29[local84]) {
Static260.frameBuffer.drawAt(Static224.anIntArray443[local84], Static264.anIntArray410[local84], Static67.anIntArray320[local84], local388, Static50.anIntArray133[local84]);
Static31.aBooleanArray29[local84] = false;
}
}
} catch (@Pc(423) Exception local423) {
GameShell.canvas.repaint();
}
} else if (Static244.gameState != 0) {
try {
local388 = GameShell.canvas.getGraphics();
Static260.frameBuffer.draw(local388);
for (local84 = 0; local84 < Static24.anInt766; local84++) {
Static31.aBooleanArray29[local84] = false;
}
} catch (@Pc(453) Exception local453) {
GameShell.canvas.repaint();
}
}
}
if (Static107.clean) {
Static213.method3729();
}
if (Static164.safeMode && Static244.gameState == 10 && Static154.topLevelInterface != -1) {
Static164.safeMode = false;
Static203.savePreferences(GameShell.signLink);
}
}
@OriginalMember(owner = "client!client", name = "c", descriptor = "(B)V")
@Override
protected final void mainQuit() {
if (GlRenderer.enabled) {
GlRenderer.quit();
}
if (GameShell.fullScreenFrame != null) {
Static25.method714(GameShell.fullScreenFrame, GameShell.signLink);
GameShell.fullScreenFrame = null;
}
if (GameShell.signLink != null) {
GameShell.signLink.unloadGlNatives(this.getClass());
}
if (Static178.instance != null) {
Static178.instance.aBoolean151 = false;
}
Static178.instance = null;
if (Static124.socket != null) {
Static124.socket.close();
Static124.socket = null;
}
Keyboard.stop(GameShell.canvas);
Static223.method3866(GameShell.canvas);
if (Static71.mouseWheel != null) {
Static71.mouseWheel.method3291(GameShell.canvas);
}
Static6.method82();
Static251.method4277();
Static71.mouseWheel = null;
if (Static11.musicChannel != null) {
Static11.musicChannel.method3575();
}
if (Static147.soundChannel != null) {
Static147.soundChannel.method3575();
}
Static107.js5NetQueue.method2329();
Static86.js5CacheQueue.method2466();
try {
if (Static172.cacheData != null) {
Static172.cacheData.method1455();
}
if (Static47.cacheIndexes != null) {
for (@Pc(95) int local95 = 0; local95 < Static47.cacheIndexes.length; local95++) {
if (Static47.cacheIndexes[local95] != null) {
Static47.cacheIndexes[local95].method1455();
}
}
}
if (Static190.cacheMasterIndex != null) {
Static190.cacheMasterIndex.method1455();
}
if (Static121.uid != null) {
Static121.uid.method1455();
}
} catch (@Pc(129) IOException local129) {
}
}
@OriginalMember(owner = "client!client", name = "init", descriptor = "()V")
@Override
public final void init() {
if (!this.isHostnameValid()) {
return;
}
Static187.worldListId = Integer.parseInt(this.getParameter("worldid"));
Static83.modeWhere = Integer.parseInt(this.getParameter("modewhere"));
if (Static83.modeWhere < 0 || Static83.modeWhere > 1) {
Static83.modeWhere = 0;
}
Static81.modeWhat = Integer.parseInt(this.getParameter("modewhat"));
if (Static81.modeWhat < 0 || Static81.modeWhat > 2) {
Static81.modeWhat = 0;
}
@Pc(50) String local50 = this.getParameter("advertsuppressed");
if (local50 != null && local50.equals("1")) {
Static249.aBoolean282 = true;
} else {
Static249.aBoolean282 = false;
}
try {
Static141.anInt3470 = Integer.parseInt(this.getParameter("lang"));
} catch (@Pc(69) Exception local69) {
Static141.anInt3470 = 0;
}
Static3.method4659(Static141.anInt3470);
@Pc(78) String local78 = this.getParameter("objecttag");
if (local78 != null && local78.equals("1")) {
Static233.aBoolean254 = true;
} else {
Static233.aBoolean254 = false;
}
@Pc(94) String local94 = this.getParameter("js");
if (local94 != null && local94.equals("1")) {
Static150.aBoolean175 = true;
} else {
Static150.aBoolean175 = false;
}
@Pc(111) String local111 = this.getParameter("game");
if (local111 != null && local111.equals("1")) {
Static266.game = 1;
} else {
Static266.game = 0;
}
try {
Static204.anInt4760 = Integer.parseInt(this.getParameter("affid"));
} catch (@Pc(130) Exception local130) {
Static204.anInt4760 = 0;
}
Static47.aClass100_991 = Static227.aClass100_966.method3153(this);
if (Static47.aClass100_991 == null) {
Static47.aClass100_991 = Static186.EMPTY_FILE;
}
@Pc(146) String local146 = this.getParameter("country");
if (local146 != null) {
try {
Static279.anInt5880 = Integer.parseInt(local146);
} catch (@Pc(153) Exception local153) {
Static279.anInt5880 = 0;
}
}
@Pc(159) String local159 = this.getParameter("haveie6");
if (local159 != null && local159.equals("1")) {
Static178.aBoolean203 = true;
} else {
Static178.aBoolean203 = false;
}
Static215.aClient1 = this;
this.startApplet(Static81.modeWhat + 32);
}
@OriginalMember(owner = "client!client", name = "g", descriptor = "(I)V")
@Override
protected final void mainInit() {
Static203.method3662();
Static86.js5CacheQueue = new Js5CacheQueue();
Static107.js5NetQueue = new Js5NetQueue();
if (Static81.modeWhat != 0) {
Static51.aByteArrayArray8 = new byte[50][];
}
Static80.read(GameShell.signLink); // preferences
if (Static83.modeWhere == 0) {
Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // this.getCodeBase().getHost();
Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + 1;
Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + 1;
} else if (Static83.modeWhere == 1) {
Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // this.getCodeBase().getHost();
Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + Static187.worldListId;
Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + Static187.worldListId;
} else if (Static83.modeWhere == 2) {
Static143.worldListHostname = GlobalConfig.DEFAULT_HOSTNAME; // "127.0.0.1";
Static97.worldListAlternatePort = GlobalConfig.ALTERNATE_PORT + Static187.worldListId;
Static249.worldListDefaultPort = GlobalConfig.DEFAULT_PORT + Static187.worldListId;
}
if (Static266.game == 1) {
Static172.shiftClick = true;
Static161.anInt3923 = 16777215;
Static161.anInt3922 = 0;
Static33.aShortArrayArray2 = Static198.aShortArrayArray4;
Static172.aShortArrayArray7 = Static32.aShortArrayArray1;
Static200.aShortArray65 = Static2.aShortArray1;
Static160.aShortArray41 = Static20.aShortArray5;
} else {
Static33.aShortArrayArray2 = Static154.aShortArrayArray6;
Static160.aShortArray41 = Static195.aShortArray64;
Static172.aShortArrayArray7 = Static43.aShortArrayArray5;
Static200.aShortArray65 = Static260.aShortArray71;
}
Static55.alternatePort = Static97.worldListAlternatePort;
Static271.defaultPort = Static249.worldListDefaultPort;
Static60.hostname = Static143.worldListHostname;
Static208.worldListPort = Static249.worldListDefaultPort;
Static259.aShortArray88 = Static62.aShortArray19 = Static232.aShortArray74 = Static259.aShortArray87 = new short[256];
Static209.port = Static208.worldListPort;
if ((SignLink.anInt5928 == 3 && Static83.modeWhere != 2) || GlobalConfig.SELECT_DEFAULT_WORLD) {
Static125.worldId = Static187.worldListId;
}
Keyboard.init(); // keyboard
Keyboard.start(GameShell.canvas); // keyboard
Static88.start(GameShell.canvas); // mouse
Static71.mouseWheel = Static44.create();
if (Static71.mouseWheel != null) {
Static71.mouseWheel.start(GameShell.canvas);
}
Static7.anInt986 = SignLink.anInt5928;
try {
if (GameShell.signLink.cacheData != null) {
Static172.cacheData = new BufferedFile(GameShell.signLink.cacheData, 5200, 0);
for (@Pc(162) int i = 0; i < 28; i++) {
Static47.cacheIndexes[i] = new BufferedFile(GameShell.signLink.cacheIndexes[i], 6000, 0);
}
Static190.cacheMasterIndex = new BufferedFile(GameShell.signLink.cacheMasterIndex, 6000, 0);
Static148.masterCache = new Cache(255, Static172.cacheData, Static190.cacheMasterIndex, 500000);
Static121.uid = new BufferedFile(GameShell.signLink.uid, 24, 0);
GameShell.signLink.cacheIndexes = null;
GameShell.signLink.cacheMasterIndex = null;
GameShell.signLink.uid = null;
GameShell.signLink.cacheData = null;
}
} catch (@Pc(220) IOException ex) {
Static121.uid = null;
Static172.cacheData = null;
Static190.cacheMasterIndex = null;
Static148.masterCache = null;
}
Static278.mainLoadPrimaryText = LocalizedText.GAME0_LOADING;
if (Static83.modeWhere != 0) {
Static43.displayFps = true;
}
}
@OriginalMember(owner = "client!client", name = "c", descriptor = "(I)V")
@Override
protected final void reset() {
}
@OriginalMember(owner = "client!client", name = "a", descriptor = "(ZI)V")
private void setJs5Response(@OriginalArg(1) int arg0) {
Static107.js5NetQueue.errors++;
Static37.js5SocketRequest = null;
Static107.js5NetQueue.response = arg0;
Static206.js5Socket = null;
Static4.js5ConnectState = 0;
}
@OriginalMember(owner = "client!client", name = "d", descriptor = "(B)V")
private void method943() {
for (Static182.keyQueueSize = 0; Keyboard.nextKey() && Static182.keyQueueSize < 128; Static182.keyQueueSize++) {
Static227.keyCodes[Static182.keyQueueSize] = Keyboard.keyCode;
Static205.keyChars[Static182.keyQueueSize] = Keyboard.keyChar;
}
Static178.anInt4247++;
if (Static154.topLevelInterface != -1) {
Static57.method1320(0, 0, 0, GameShell.canvasWidth, Static154.topLevelInterface, 0, GameShell.canvasHeight);
}
Static119.transmitTimer++;
if (GlRenderer.enabled) {
label191: for (@Pc(57) int local57 = 0; local57 < 32768; local57++) {
@Pc(66) Npc local66 = Static175.aClass8_Sub4_Sub2Array1[local57];
if (local66 != null) {
@Pc(73) byte local73 = local66.aClass96_1.aByte10;
if ((local73 & 0x2) > 0 && local66.anInt3409 == 0 && Math.random() * 1000.0D < 10.0D) {
@Pc(98) int local98 = (int) Math.round(Math.random() * 2.0D - 1.0D);
@Pc(106) int local106 = (int) Math.round(Math.random() * 2.0D - 1.0D);
if (local98 != 0 || local106 != 0) {
local66.aByteArray48[0] = 1;
local66.movementQueueX[0] = local98 + (local66.anInt3412 >> 7);
local66.movementQueueZ[0] = local106 + (local66.anInt3421 >> 7);
Static148.collisionMaps[Static55.level].method3056(local66.anInt3412 >> 7, local66.method2693(), false, 0, local66.method2693(), local66.anInt3421 >> 7);
if (local66.movementQueueX[0] >= 0 && local66.movementQueueX[0] <= 104 - local66.method2693() && local66.movementQueueZ[0] >= 0 && local66.movementQueueZ[0] <= 104 - local66.method2693() && Static148.collisionMaps[Static55.level].method3054(local66.anInt3421 >> 7, local66.movementQueueZ[0], local66.movementQueueX[0], local66.anInt3412 >> 7)) {
if (local66.method2693() > 1) {
for (@Pc(226) int local226 = local66.movementQueueX[0]; local66.movementQueueX[0] + local66.method2693() > local226; local226++) {
for (@Pc(246) int local246 = local66.movementQueueZ[0]; local66.movementQueueZ[0] + local66.method2693() > local246; local246++) {
if ((Static148.collisionMaps[Static55.level].anIntArrayArray30[local226][local246] & 0x12401FF) != 0) {
continue label191;
}
}
}
}
local66.anInt3409 = 1;
}
}
}
Static104.method2247(local66);
Static37.method949(local66);
Static34.method879(local66);
Static148.collisionMaps[Static55.level].method3043(local66.anInt3412 >> 7, false, local66.anInt3421 >> 7, local66.method2693(), local66.method2693());
}
}
}
if (!GlRenderer.enabled) {
Static269.updateFlames();
} else if (Static184.loginStep == 0 && Static179.accountCreationStep == 0) {
if (Static227.cameraType == 2) {
Static125.updateLockedCamera();
} else {
Static40.updateLoginScreenCamera();
}
if (Static138.renderX >> 7 < 14 || Static138.renderX >> 7 >= 90 || Static134.renderZ >> 7 < 14 || Static134.renderZ >> 7 >= 90) {
Static26.setupLoadingScreenRegion();
}
}
while (true) {
@Pc(374) HookRequest priorityRequest;
@Pc(379) Component prioritySource;
@Pc(387) Component priorityComponent;
do {
priorityRequest = (HookRequest) Static4.highPriorityRequests.removeHead();
if (priorityRequest == null) {
while (true) {
do {
priorityRequest = (HookRequest) Static115.mediumPriorityRequests.removeHead();
if (priorityRequest == null) {
while (true) {
do {
priorityRequest = (HookRequest) Static185.lowPriorityRequests.removeHead();
if (priorityRequest == null) {
if (Static105.aClass13_14 != null) {
Static4.method28();
}
if (Static33.openUrlRequest != null && Static33.openUrlRequest.status == 1) {
if (Static33.openUrlRequest.result != null) {
Static169.openUrl(Static175.url, Static164.newTab);
}
Static164.newTab = false;
Static175.url = null;
Static33.openUrlRequest = null;
}
if (Static83.loop % 1500 == 0) {
Static123.topBannerRefresh();
}
return;
}
prioritySource = priorityRequest.source;
if (prioritySource.createdComponentId < 0) {
break;
}
priorityComponent = Static5.getComponent(prioritySource.layer);
} while (priorityComponent == null || priorityComponent.createdComponents == null || priorityComponent.createdComponents.length <= prioritySource.createdComponentId || prioritySource != priorityComponent.createdComponents[prioritySource.createdComponentId]);
Static82.method1767(priorityRequest);
}
}
prioritySource = priorityRequest.source;
if (prioritySource.createdComponentId < 0) {
break;
}
priorityComponent = Static5.getComponent(prioritySource.layer);
} while (priorityComponent == null || priorityComponent.createdComponents == null || prioritySource.createdComponentId >= priorityComponent.createdComponents.length || prioritySource != priorityComponent.createdComponents[prioritySource.createdComponentId]);
Static82.method1767(priorityRequest);
}
}
prioritySource = priorityRequest.source;
if (prioritySource.createdComponentId < 0) {
break;
}
priorityComponent = Static5.getComponent(prioritySource.layer);
} while (priorityComponent == null || priorityComponent.createdComponents == null || priorityComponent.createdComponents.length <= prioritySource.createdComponentId || prioritySource != priorityComponent.createdComponents[prioritySource.createdComponentId]);
Static82.method1767(priorityRequest);
}
}
@OriginalMember(owner = "client!client", name = "d", descriptor = "(Z)V")
private void js5NetworkLoop() {
@Pc(3) boolean idle = Static107.js5NetQueue.loop();
if (!idle) {
this.js5Connect();
}
}
@OriginalMember(owner = "client!client", name = "h", descriptor = "(I)V")
private void js5Connect() {
if (Static233.js5PrevErrors < Static107.js5NetQueue.errors) {
Static22.js5ConnectDelay = 5 * 50 * (Static107.js5NetQueue.errors - 1);
if (Static271.defaultPort == Static209.port) {
Static209.port = Static55.alternatePort;
} else {
Static209.port = Static271.defaultPort;
}
if (Static22.js5ConnectDelay > 3000) {
Static22.js5ConnectDelay = 3000;
}
if (Static107.js5NetQueue.errors >= 2 && Static107.js5NetQueue.response == 6) {
this.error("js5connect_outofdate");
Static244.gameState = 1000;
return;
}
if (Static107.js5NetQueue.errors >= 4 && Static107.js5NetQueue.response == -1) {
this.error("js5crc");
Static244.gameState = 1000;
return;
}
if (Static107.js5NetQueue.errors >= 4 && (Static244.gameState == 0 || Static244.gameState == 5)) {
if (Static107.js5NetQueue.response == 7 || Static107.js5NetQueue.response == 9) {
this.error("js5connect_full");
} else if (Static107.js5NetQueue.response > 0) {
this.error("js5connect");
} else {
this.error("js5io");
}
Static244.gameState = 1000;
return;
}
}
Static233.js5PrevErrors = Static107.js5NetQueue.errors;
if (Static22.js5ConnectDelay > 0) {
Static22.js5ConnectDelay--;
return;
}
try {
if (Static4.js5ConnectState == 0) {
Static37.js5SocketRequest = GameShell.signLink.openSocket(Static60.hostname, Static209.port);
Static4.js5ConnectState++;
}
if (Static4.js5ConnectState == 1) {
if (Static37.js5SocketRequest.status == 2) {
this.setJs5Response(1000);
return;
}
if (Static37.js5SocketRequest.status == 1) {
Static4.js5ConnectState++;
}
}
if (Static4.js5ConnectState == 2) {
Static206.js5Socket = new BufferedSocket((Socket) Static37.js5SocketRequest.result, GameShell.signLink);
@Pc(194) Buffer buffer = new Buffer(5);
buffer.p1(15);
buffer.p4(530);
Static206.js5Socket.write(buffer.data, 5);
Static4.js5ConnectState++;
Static217.js5ConnectTime = MonotonicClock.currentTimeMillis();
}
if (Static4.js5ConnectState == 3) {
if (Static244.gameState == 0 || Static244.gameState == 5 || Static206.js5Socket.available() > 0) {
@Pc(258) int response = Static206.js5Socket.read();
if (response != 0) {
this.setJs5Response(response);
return;
}
Static4.js5ConnectState++;
} else if (MonotonicClock.currentTimeMillis() - Static217.js5ConnectTime > 30000L) {
this.setJs5Response(1001);
return;
}
}
if (Static4.js5ConnectState == 4) {
@Pc(296) boolean loggedOut = Static244.gameState == 5 || Static244.gameState == 10 || Static244.gameState == 28;
Static107.js5NetQueue.loggedOut(!loggedOut, Static206.js5Socket);
Static206.js5Socket = null;
Static37.js5SocketRequest = null;
Static4.js5ConnectState = 0;
}
} catch (@Pc(315) IOException ex) {
this.setJs5Response(1002);
}
}
@OriginalMember(owner = "client!client", name = "i", descriptor = "(I)V")
private void mainLoad() {
if (!Static164.safeMode) {
noSafeMode: while (true) {
do {
if (!Keyboard.nextKey()) {
break noSafeMode;
}
} while (Keyboard.keyChar != 115 && Keyboard.keyChar != 83);
Static164.safeMode = true;
}
}
@Pc(43) int i;
if (Static166.mainLoadState == 0) {
@Pc(34) Runtime runtime = Runtime.getRuntime();
i = (int) (0L / 1024L);
@Pc(46) long now = MonotonicClock.currentTimeMillis();
if (Static175.firstGc == 0L) {
Static175.firstGc = now;
}
if (i > 16384 && now - Static175.firstGc < 5000L) {
if (now - Static160.prevGc > 1000L) {
System.gc();
Static160.prevGc = now;
}
Static199.mainLoadPercentage = 5;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD0;
} else {
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD0B;
Static166.mainLoadState = 10;
Static199.mainLoadPercentage = 5;
}
return;
}
@Pc(98) int percentage;
if (Static166.mainLoadState == 10) {
Static120.method2392();
for (percentage = 0; percentage < 4; percentage++) {
Static148.collisionMaps[percentage] = new CollisionMap(104, 104);
}
Static199.mainLoadPercentage = 10;
Static166.mainLoadState = 30;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD10B;
} else if (Static166.mainLoadState == 30) {
if (Static257.js5MasterIndex == null) {
Static257.js5MasterIndex = new Js5MasterIndex(Static107.js5NetQueue, Static86.js5CacheQueue);
}
if (Static257.js5MasterIndex.method178()) {
Static213.js5Archive0 = Static9.createJs5(false, true, true, 0);
Static249.js5Archive1 = Static9.createJs5(false, true, true, 1);
Static274.js5Archive2 = Static9.createJs5(true, true, false, 2);
Static41.js5Archive3 = Static9.createJs5(false, true, true, 3);
Static248.js5Archive4 = Static9.createJs5(false, true, true, 4);
Static26.js5Archive5 = Static9.createJs5(true, true, true, 5);
Static130.js5Archive6 = Static9.createJs5(true, false, true, 6);
Static267.js5Archive7 = Static9.createJs5(false, true, true, 7);
Static209.js5Archive8 = Static9.createJs5(false, true, true, 8);
Static195.js5Archive9 = Static9.createJs5(false, true, true, 9);
Static184.js5Archive10 = Static9.createJs5(false, true, true, 10);
Static214.js5Archive11 = Static9.createJs5(false, true, true, 11);
Static16.js5Archive12 = Static9.createJs5(false, true, true, 12);
Static261.js5Archive13 = Static9.createJs5(false, true, true, 13);
Static137.js5Archive14 = Static9.createJs5(false, false, true, 14);
Static138.js5Archive15 = Static9.createJs5(false, true, true, 15);
Static280.js5Archive16 = Static9.createJs5(false, true, true, 16);
Static138.js5Archive17 = Static9.createJs5(false, true, true, 17);
Static172.js5Archive18 = Static9.createJs5(false, true, true, 18);
Static171.js5Archive19 = Static9.createJs5(false, true, true, 19);
Static253.js5Archive20 = Static9.createJs5(false, true, true, 20);
Static122.js5Archive21 = Static9.createJs5(false, true, true, 21);
Static156.js5Archive22 = Static9.createJs5(false, true, true, 22);
Static227.js5Archive23 = Static9.createJs5(true, true, true, 23);
Static254.js5Archive24 = Static9.createJs5(false, true, true, 24);
Static28.js5Archive25 = Static9.createJs5(false, true, true, 25);
Static167.js5Archive26 = Static9.createJs5(true, true, true, 26);
Static226.js5Archive27 = Static9.createJs5(false, true, true, 27);
Static199.mainLoadPercentage = 15;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD30B;
Static166.mainLoadState = 40;
} else {
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD30;
Static199.mainLoadPercentage = 12;
}
} else if (Static166.mainLoadState == 40) {
percentage = 0;
for (i = 0; i < 28; i++) {
percentage += Static269.js5Providers[i].getIndexPercentageComplete() * Static170.JS5_ARCHIVE_WEIGHTS[i] / 100;
}
if (percentage == 100) {
Static199.mainLoadPercentage = 20;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD40B;
Static75.init(Static209.js5Archive8);
Static167.init(Static209.js5Archive8);
Static81.init(Static209.js5Archive8);
Static166.mainLoadState = 45;
} else {
if (percentage != 0) {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.CHECKING_FOR_UPDATES, Static123.parseInt(percentage), Static49.PERCENT_SIGN});
}
Static199.mainLoadPercentage = 20;
}
} else if (Static166.mainLoadState == 45) {
AudioChannel.init(Static99.stereo);
Static148.musicStream = new MidiPcmStream();
Static148.musicStream.init();
Static11.musicChannel = AudioChannel.create(22050, GameShell.signLink, GameShell.canvas, 0);
Static11.musicChannel.setStream(Static148.musicStream);
Static34.init(Static148.musicStream, Static138.js5Archive15, Static137.js5Archive14, Static248.js5Archive4);
Static147.soundChannel = AudioChannel.create(2048, GameShell.signLink, GameShell.canvas, 1);
Static204.soundStream = new MixerPcmStream();
Static147.soundChannel.setStream(Static204.soundStream);
Static56.resampler = new Resampler(22050, Static44.sampleRate);
Static250.titleSong = Static130.js5Archive6.getGroupId(Static1.TITLE_SONG);
Static199.mainLoadPercentage = 30;
Static166.mainLoadState = 50;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD45B;
} else if (Static166.mainLoadState == 50) {
percentage = Static74.getReady(Static209.js5Archive8, Static261.js5Archive13);
i = Static143.getTotal();
if (percentage >= i) {
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD50B;
Static199.mainLoadPercentage = 35;
Static166.mainLoadState = 60;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD50, Static123.parseInt(percentage * 100 / i), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 35;
}
} else if (Static166.mainLoadState == 60) {
percentage = Static150.getReady(Static209.js5Archive8);
i = Static104.getTotal();
if (i <= percentage) {
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD60B;
Static166.mainLoadState = 65;
Static199.mainLoadPercentage = 40;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD60, Static123.parseInt(percentage * 100 / i), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 40;
}
} else if (Static166.mainLoadState == 65) {
Static102.load(Static261.js5Archive13, Static209.js5Archive8);
Static199.mainLoadPercentage = 45;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD65B;
Static196.setGameState(5);
Static166.mainLoadState = 70;
} else if (Static166.mainLoadState == 70) {
Static274.js5Archive2.fetchAll();
percentage = Static274.js5Archive2.getPercentageComplete();
Static280.js5Archive16.fetchAll();
percentage += Static280.js5Archive16.getPercentageComplete();
Static138.js5Archive17.fetchAll();
percentage += Static138.js5Archive17.getPercentageComplete();
Static172.js5Archive18.fetchAll();
percentage += Static172.js5Archive18.getPercentageComplete();
Static171.js5Archive19.fetchAll();
percentage += Static171.js5Archive19.getPercentageComplete();
Static253.js5Archive20.fetchAll();
percentage += Static253.js5Archive20.getPercentageComplete();
Static122.js5Archive21.fetchAll();
percentage += Static122.js5Archive21.getPercentageComplete();
Static156.js5Archive22.fetchAll();
percentage += Static156.js5Archive22.getPercentageComplete();
Static254.js5Archive24.fetchAll();
percentage += Static254.js5Archive24.getPercentageComplete();
Static28.js5Archive25.fetchAll();
percentage += Static28.js5Archive25.getPercentageComplete();
Static226.js5Archive27.fetchAll();
percentage += Static226.js5Archive27.getPercentageComplete();
if (percentage >= 1100) {
Static226.init(Static274.js5Archive2);
Static199.init(Static274.js5Archive2);
Static91.init(Static274.js5Archive2);
Static125.init(Static267.js5Archive7, Static274.js5Archive2);
Static181.init(Static280.js5Archive16, Static267.js5Archive7);
Static88.init(Static267.js5Archive7, Static172.js5Archive18);
Static241.init(Static171.js5Archive19, Static265.p11FullSoftware, Static267.js5Archive7);
Static58.init(Static274.js5Archive2);
Static141.init(Static249.js5Archive1, Static253.js5Archive20, Static213.js5Archive0);
Static79.init(Static274.js5Archive2);
Static266.init(Static267.js5Archive7, Static122.js5Archive21);
Static180.init(Static156.js5Archive22);
Static230.init(Static274.js5Archive2);
Static3.init(Static261.js5Archive13, Static209.js5Archive8, Static41.js5Archive3, Static267.js5Archive7);
Static119.init(Static274.js5Archive2);
Static85.init(Static138.js5Archive17);
Static59.init(Static28.js5Archive25, Static254.js5Archive24, new Js5QuickChatCommandDecoder());
Static115.init(Static28.js5Archive25, Static254.js5Archive24);
Static107.init(Static274.js5Archive2);
Static246.init(Static274.js5Archive2, Static209.js5Archive8);
Static180.init(Static274.js5Archive2, Static209.js5Archive8);
Static199.mainLoadPercentage = 50;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD70B;
Static58.init();
Static166.mainLoadState = 80;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD70, Static123.parseInt(percentage / 11), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 50;
}
} else if (Static166.mainLoadState == 80) {
percentage = Static28.getReady(Static209.js5Archive8);
i = Static62.total();
if (i > percentage) {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD80, Static123.parseInt(percentage * 100 / i), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 60;
} else {
Static30.load(Static209.js5Archive8);
Static166.mainLoadState = 90;
Static199.mainLoadPercentage = 60;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD80B;
}
} else if (Static166.mainLoadState == 90) {
if (Static167.js5Archive26.fetchAll()) {
@Pc(951) Js5GlTextureProvider textureProvider = new Js5GlTextureProvider(Static195.js5Archive9, Static167.js5Archive26, Static209.js5Archive8, 20, !Static53.highDetailTextures);
Rasteriser.unpackTextures(textureProvider);
if (Static113.brightness == 1) {
Rasteriser.setBrightness(0.9F);
}
if (Static113.brightness == 2) {
Rasteriser.setBrightness(0.8F);
}
if (Static113.brightness == 3) {
Rasteriser.setBrightness(0.7F);
}
if (Static113.brightness == 4) {
Rasteriser.setBrightness(0.6F);
}
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD90B;
Static166.mainLoadState = 100;
Static199.mainLoadPercentage = 70;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD90, Static123.parseInt(Static167.js5Archive26.getPercentageComplete()), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 70;
}
} else if (Static166.mainLoadState == 100) {
if (Static231.isReady(Static209.js5Archive8)) {
Static166.mainLoadState = 110;
}
} else if (Static166.mainLoadState == 110) {
Static178.instance = new MouseRecorder();
GameShell.signLink.startThread(10, Static178.instance);
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD110B;
Static199.mainLoadPercentage = 75;
Static166.mainLoadState = 120;
} else if (Static166.mainLoadState == 120) {
if (Static184.js5Archive10.isFileReady(Static186.EMPTY_FILE, Static252.HUFFMAN_GROUP)) {
@Pc(1060) HuffmanCodec codec = new HuffmanCodec(Static184.js5Archive10.fetchFile(Static186.EMPTY_FILE, Static252.HUFFMAN_GROUP));
Static1.method1(codec);
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD120B;
Static166.mainLoadState = 130;
Static199.mainLoadPercentage = 80;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD120, Static206.aClass100_899 });
Static199.mainLoadPercentage = 80;
}
} else if (Static166.mainLoadState == 130) {
if (!Static41.js5Archive3.fetchAll()) {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD130, Static123.parseInt(Static41.js5Archive3.getPercentageComplete() * 3 / 4), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 85;
} else if (!Static16.js5Archive12.fetchAll()) {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD130, Static123.parseInt(Static16.js5Archive12.getPercentageComplete() / 10 + 75), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 85;
} else if (!Static261.js5Archive13.fetchAll()) {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD130, Static123.parseInt(Static261.js5Archive13.getPercentageComplete() / 20 + 85), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 85;
} else if (Static227.js5Archive23.allFilesComplete(Static165.DETAILS)) {
Static234.method4018(Static173.aClass3_Sub2_Sub1_Sub1Array9, Static227.js5Archive23);
Static199.mainLoadPercentage = 95;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD130B;
Static166.mainLoadState = 135;
} else {
Static126.mainLoadSecondaryText = Static34.concatenate(new JagString[] { LocalizedText.MAINLOAD130, Static123.parseInt(Static227.js5Archive23.method4478(Static165.DETAILS) / 10 + 90), Static49.PERCENT_SIGN});
Static199.mainLoadPercentage = 85;
}
} else if (Static166.mainLoadState == 135) {
percentage = Static207.fetch();
if (percentage == -1) {
Static199.mainLoadPercentage = 95;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD135;
} else if (percentage == 7 || percentage == 9) {
this.error("worldlistfull");
Static196.setGameState(1000);
} else if (Static61.aBoolean109) {
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD135B;
Static166.mainLoadState = 140;
Static199.mainLoadPercentage = 96;
} else {
this.error("worldlistio_" + percentage);
Static196.setGameState(1000);
}
} else if (Static166.mainLoadState == 140) {
Static156.loginScreenId = Static41.js5Archive3.getGroupId(Static138.LOGINSCREEN);
Static26.js5Archive5.discardNames(false);
Static130.js5Archive6.discardNames(true);
Static209.js5Archive8.discardNames(true);
Static261.js5Archive13.discardNames(true);
Static184.js5Archive10.discardNames(true);
Static41.js5Archive3.discardNames(true);
Static199.mainLoadPercentage = 97;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD140;
Static166.mainLoadState = 150;
Static107.clean = true;
} else if (Static166.mainLoadState == 150) {
Static151.method2807();
if (Static164.safeMode) {
Static102.windowMode = 0;
Static186.antiAliasingMode = 0;
Static214.windowMode = 0;
Static141.buildArea = 0;
}
Static164.safeMode = true;
Static203.savePreferences(GameShell.signLink);
Static241.setWindowMode(false, Static214.windowMode, -1, -1);
Static199.mainLoadPercentage = 100;
Static166.mainLoadState = 160;
Static126.mainLoadSecondaryText = LocalizedText.MAINLOAD150B;
} else if (Static166.mainLoadState == 160) {
Static73.method1596(true);
}
}
@OriginalMember(owner = "client!client", name = "a", descriptor = "(B)V")
@Override
protected final void mainLoop() {
if (Static244.gameState == 1000) {
return;
}
Static83.loop++;
if (Static83.loop % 1000 == 1) {
@Pc(24) GregorianCalendar gregorianCalendar = new GregorianCalendar();
Static60.gregorianDateSeed = gregorianCalendar.get(Calendar.HOUR_OF_DAY) * 600 + gregorianCalendar.get(Calendar.MINUTE) * 10 + gregorianCalendar.get(Calendar.SECOND) / 6;
Static39.aRandom1.setSeed(Static60.gregorianDateSeed);
}
this.js5NetworkLoop();
if (Static257.js5MasterIndex != null) {
Static257.js5MasterIndex.method179();
}
Static230.method3948();
Static107.method2261();
Keyboard.loop();
Static111.handleMouse();
if (GlRenderer.enabled) {
Static63.process();
}
if (Static71.mouseWheel != null) {
@Pc(75) int wheelRotation = Static71.mouseWheel.getRotation();
Static58.wheelRotation = wheelRotation;
}
if (Static244.gameState == 0) {
this.mainLoad();
Static234.method4020();
} else if (Static244.gameState == 5) {
this.mainLoad();
Static234.method4020();
} else if (Static244.gameState == 25 || Static244.gameState == 28) {
Static78.rebuildMap();
}
if (Static244.gameState == 10) {
this.method943();
Static158.handleAccountCreation();
Static31.method848();
Static216.handleLogin();
} else if (Static244.gameState == 30) {
Static81.method1756();
} else if (Static244.gameState == 40) {
Static216.handleLogin();
if (Static266.returnCode != -3) {
if (Static266.returnCode == 15) {
Static44.method1146();
} else if (Static266.returnCode != 2) {
Static278.processLogout();
}
}
}
}
}