mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-14 18:40:18 -07:00
363 lines
14 KiB
Java
363 lines
14 KiB
Java
package org.runite.client;
|
|
|
|
import org.rs09.client.util.ArrayUtils;
|
|
|
|
import java.io.EOFException;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
final class Class30 {
|
|
|
|
static int[] anIntArray574 = new int[14];
|
|
static float aFloat578;
|
|
static boolean loadedWorldList = false;
|
|
private final byte[] aByteArray564;
|
|
private final byte[] aByteArray572;
|
|
private final RandomAccessFileWrapper aRandomAccessFileWrapper_573;
|
|
private long aLong563;
|
|
private int anInt566 = 0;
|
|
private long aLong568;
|
|
private long aLong569;
|
|
private long aLong570;
|
|
private long aLong571 = -1L;
|
|
private int anInt575;
|
|
private long aLong576 = -1L;
|
|
|
|
|
|
Class30(RandomAccessFileWrapper var1, int var2) throws IOException {
|
|
try {
|
|
this.aRandomAccessFileWrapper_573 = var1;
|
|
this.aLong568 = this.aLong563 = var1.getLength();
|
|
this.aByteArray572 = new byte[0];
|
|
this.aByteArray564 = new byte[var2];
|
|
this.aLong569 = 0L;
|
|
} catch (RuntimeException var5) {
|
|
throw ClientErrorException.clientError(var5, "en.<init>(" + (var1 != null ? "{...}" : "null") + ',' + var2 + ',' + 0 + ')');
|
|
}
|
|
}
|
|
|
|
static void method979(int var0, int var1, int var2) {
|
|
try {
|
|
RSString var4 = RSString.stringCombiner(new RSString[]{TextCore.aClass94_853, RSString.stringAnimator(var2), TextCore.aClass94_3268, RSString.stringAnimator(var0 >> 6), TextCore.aClass94_3268, RSString.stringAnimator(var1 >> 6), TextCore.aClass94_3268, RSString.stringAnimator(var0 & 63), TextCore.aClass94_3268, RSString.stringAnimator(63 & var1)});
|
|
|
|
ClientCommands.ClientCommands(var4);
|
|
} catch (RuntimeException var5) {
|
|
throw ClientErrorException.clientError(var5, "en.I(" + var0 + ',' + var1 + ',' + var2 + ',' + (byte) -4 + ')');
|
|
}
|
|
}
|
|
|
|
private void method975(byte var1) throws IOException {
|
|
try {
|
|
if (-1L != this.aLong571) {
|
|
if (this.aLong571 != this.aLong570) {
|
|
this.aRandomAccessFileWrapper_573.seek(this.aLong571);
|
|
this.aLong570 = this.aLong571;
|
|
}
|
|
|
|
this.aRandomAccessFileWrapper_573.write(this.aByteArray572, this.anInt566, 0);
|
|
long var3 = -1L;
|
|
if (this.aLong571 >= this.aLong576 && this.aLong571 < this.aLong576 + (long) this.anInt575) {
|
|
var3 = this.aLong571;
|
|
} else if (this.aLong571 <= this.aLong576 && this.aLong571 - -((long) this.anInt566) > this.aLong576) {
|
|
var3 = this.aLong576;
|
|
}
|
|
|
|
this.aLong570 += this.anInt566;
|
|
if (this.aLong563 < this.aLong570) {
|
|
this.aLong563 = this.aLong570;
|
|
}
|
|
|
|
long var5 = -1L;
|
|
if (this.aLong576 < this.aLong571 - -((long) this.anInt566) && (long) this.anInt575 + this.aLong576 >= (long) this.anInt566 + this.aLong571) {
|
|
var5 = this.aLong571 - -((long) this.anInt566);
|
|
} else if (this.aLong571 < this.aLong576 - -((long) this.anInt575) && (long) this.anInt566 + this.aLong571 >= (long) this.anInt575 + this.aLong576) {
|
|
var5 = (long) this.anInt575 + this.aLong576;
|
|
}
|
|
|
|
if (-1L < var3 && var3 < var5) {
|
|
int var7 = (int) (-var3 + var5);
|
|
ArrayUtils.arraycopy(this.aByteArray572, (int) (var3 - this.aLong571), this.aByteArray564, (int) (var3 + -this.aLong576), var7);
|
|
}
|
|
|
|
this.anInt566 = 0;
|
|
this.aLong571 = -1L;
|
|
}
|
|
|
|
} catch (RuntimeException var8) {
|
|
throw ClientErrorException.clientError(var8, "en.C(" + var1 + ')');
|
|
}
|
|
}
|
|
|
|
final long method976(int var1) {
|
|
try {
|
|
if (var1 != 0) {
|
|
this.method976(19);
|
|
}
|
|
|
|
return this.aLong568;
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "en.J(" + var1 + ')');
|
|
}
|
|
}
|
|
|
|
private File method977() {
|
|
try {
|
|
|
|
return this.aRandomAccessFileWrapper_573.getPath();
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "en.D(" + 281669816 + ')');
|
|
}
|
|
}
|
|
|
|
final void method978(int var1, byte[] var2, int var3) throws IOException {
|
|
try {
|
|
try {
|
|
if (var1 - -var3 > var2.length) {
|
|
throw new ArrayIndexOutOfBoundsException(var3 + var1 - var2.length);
|
|
}
|
|
|
|
if (-1L != this.aLong571 && this.aLong569 >= this.aLong571 && (long) this.anInt566 + this.aLong571 >= (long) var3 + this.aLong569) {
|
|
ArrayUtils.arraycopy(this.aByteArray572, (int) (-this.aLong571 + this.aLong569), var2, var1, var3);
|
|
this.aLong569 += var3;
|
|
return;
|
|
}
|
|
|
|
long var5 = this.aLong569;
|
|
int var8 = var3;
|
|
int var9;
|
|
if (this.aLong576 <= this.aLong569 && this.aLong576 + (long) this.anInt575 > this.aLong569) {
|
|
var9 = (int) ((long) this.anInt575 - this.aLong569 + this.aLong576);
|
|
if (var3 < var9) {
|
|
var9 = var3;
|
|
}
|
|
|
|
ArrayUtils.arraycopy(this.aByteArray564, (int) (this.aLong569 - this.aLong576), var2, var1, var9);
|
|
var1 += var9;
|
|
var3 -= var9;
|
|
this.aLong569 += var9;
|
|
}
|
|
|
|
if (var3 > this.aByteArray564.length) {
|
|
this.aRandomAccessFileWrapper_573.seek(this.aLong569);
|
|
|
|
for (this.aLong570 = this.aLong569; 0 < var3; this.aLong569 += var9) {
|
|
var9 = this.aRandomAccessFileWrapper_573.read(var2, var1, var3, 0);
|
|
if (var9 == -1) {
|
|
break;
|
|
}
|
|
|
|
this.aLong570 += var9;
|
|
var3 -= var9;
|
|
var1 += var9;
|
|
}
|
|
} else if (var3 > 0) {
|
|
this.method981();
|
|
var9 = var3;
|
|
if (var3 > this.anInt575) {
|
|
var9 = this.anInt575;
|
|
}
|
|
|
|
ArrayUtils.arraycopy(this.aByteArray564, 0, var2, var1, var9);
|
|
var3 -= var9;
|
|
var1 += var9;
|
|
this.aLong569 += var9;
|
|
}
|
|
|
|
if (-1L != this.aLong571) {
|
|
if (this.aLong569 < this.aLong571 && var3 > 0) {
|
|
var9 = (int) (-this.aLong569 + this.aLong571) + var1;
|
|
if (var9 > var1 - -var3) {
|
|
var9 = var1 + var3;
|
|
}
|
|
|
|
while (var1 < var9) {
|
|
var2[var1++] = 0;
|
|
++this.aLong569;
|
|
--var3;
|
|
}
|
|
}
|
|
|
|
long var16 = -1L;
|
|
long var11 = -1L;
|
|
if ((long) this.anInt566 + this.aLong571 > var5 && (long) var8 + var5 >= (long) this.anInt566 + this.aLong571) {
|
|
var11 = (long) this.anInt566 + this.aLong571;
|
|
} else if ((long) var8 + var5 > this.aLong571 && (long) var8 + var5 <= (long) this.anInt566 + this.aLong571) {
|
|
var11 = (long) var8 + var5;
|
|
}
|
|
|
|
if (this.aLong571 >= var5 && this.aLong571 < var5 - -((long) var8)) {
|
|
var16 = this.aLong571;
|
|
} else if (this.aLong571 <= var5 && var5 < (long) this.anInt566 + this.aLong571) {
|
|
var16 = var5;
|
|
}
|
|
|
|
if (-1L < var16 && var11 > var16) {
|
|
int var13 = (int) (var11 + -var16);
|
|
ArrayUtils.arraycopy(this.aByteArray572, (int) (var16 + -this.aLong571), var2, (int) (var16 + -var5) + var1, var13);
|
|
if (this.aLong569 < var11) {
|
|
var3 = (int) ((long) var3 - (-this.aLong569 + var11));
|
|
this.aLong569 = var11;
|
|
}
|
|
}
|
|
}
|
|
} catch (IOException var14) {
|
|
this.aLong570 = -1L;
|
|
throw var14;
|
|
}
|
|
|
|
if (0 < var3) {
|
|
throw new EOFException();
|
|
}
|
|
} catch (RuntimeException var15) {
|
|
throw ClientErrorException.clientError(var15, "en.F(" + var1 + ',' + (var2 != null ? "{...}" : "null") + ',' + var3 + ',' + 0 + ')');
|
|
}
|
|
}
|
|
|
|
final void method980() throws IOException {
|
|
try {
|
|
this.method975((byte) -75);
|
|
this.aRandomAccessFileWrapper_573.close();
|
|
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "en.K(" + false + ')');
|
|
}
|
|
}
|
|
|
|
private void method981() throws IOException {
|
|
try {
|
|
this.anInt575 = 0;
|
|
|
|
if (this.aLong570 != this.aLong569) {
|
|
this.aRandomAccessFileWrapper_573.seek(this.aLong569);
|
|
this.aLong570 = this.aLong569;
|
|
}
|
|
|
|
int var3;
|
|
for (this.aLong576 = this.aLong569; this.aByteArray564.length > this.anInt575; this.anInt575 += var3) {
|
|
int var2 = this.aByteArray564.length + -this.anInt575;
|
|
if (var2 > 200000000) {
|
|
var2 = 200000000;
|
|
}
|
|
|
|
var3 = this.aRandomAccessFileWrapper_573.read(this.aByteArray564, this.anInt575, var2, 0);
|
|
if (var3 == -1) {
|
|
break;
|
|
}
|
|
|
|
this.aLong570 += var3;
|
|
}
|
|
|
|
} catch (RuntimeException var4) {
|
|
throw ClientErrorException.clientError(var4, "en.A(" + 4393 + ')');
|
|
}
|
|
}
|
|
|
|
final void method982(byte[] var2) throws IOException {
|
|
try {
|
|
|
|
this.method978(0, var2, var2.length);
|
|
} catch (RuntimeException var4) {
|
|
throw ClientErrorException.clientError(var4, "en.B(" + false + ',' + (var2 != null ? "{...}" : "null") + ')');
|
|
}
|
|
}
|
|
|
|
final void method983(byte[] var1, int var2, int var3, int var4) throws IOException {
|
|
try {
|
|
try {
|
|
if ((long) var4 + this.aLong569 > this.aLong568) {
|
|
this.aLong568 = (long) var4 + this.aLong569;
|
|
}
|
|
|
|
if (this.aLong571 != -1 && (this.aLong571 > this.aLong569 || (long) this.anInt566 + this.aLong571 < this.aLong569)) {
|
|
this.method975((byte) 124);
|
|
}
|
|
|
|
if (this.aLong571 != -1 && (long) this.aByteArray572.length + this.aLong571 < (long) var4 + this.aLong569) {
|
|
int var5 = (int) ((long) this.aByteArray572.length - this.aLong569 + this.aLong571);
|
|
var4 -= var5;
|
|
ArrayUtils.arraycopy(var1, var2, this.aByteArray572, (int) (this.aLong569 + -this.aLong571), var5);
|
|
this.aLong569 += var5;
|
|
this.anInt566 = this.aByteArray572.length;
|
|
this.method975((byte) 93);
|
|
var2 += var5;
|
|
}
|
|
|
|
if (var4 > this.aByteArray572.length) {
|
|
if (this.aLong570 != this.aLong569) {
|
|
this.aRandomAccessFileWrapper_573.seek(this.aLong569);
|
|
this.aLong570 = this.aLong569;
|
|
}
|
|
|
|
this.aRandomAccessFileWrapper_573.write(var1, var4, var2);
|
|
long var12 = -1L;
|
|
if (this.aLong576 <= this.aLong569 && this.aLong569 < (long) this.anInt575 + this.aLong576) {
|
|
var12 = this.aLong569;
|
|
} else if (this.aLong576 >= this.aLong569 && this.aLong576 < (long) var4 + this.aLong569) {
|
|
var12 = this.aLong576;
|
|
}
|
|
|
|
this.aLong570 += var4;
|
|
long var7 = -1L;
|
|
if (this.aLong563 < this.aLong570) {
|
|
this.aLong563 = this.aLong570;
|
|
}
|
|
|
|
if (this.aLong569 + (long) var4 > this.aLong576 && this.aLong576 - -((long) this.anInt575) >= this.aLong569 - -((long) var4)) {
|
|
var7 = (long) var4 + this.aLong569;
|
|
} else if (this.aLong569 < this.aLong576 + (long) this.anInt575 && this.aLong569 + (long) var4 >= (long) this.anInt575 + this.aLong576) {
|
|
var7 = (long) this.anInt575 + this.aLong576;
|
|
}
|
|
|
|
if (var12 > -1 && var7 > var12) {
|
|
int var9 = (int) (-var12 + var7);
|
|
ArrayUtils.arraycopy(var1, (int) (-this.aLong569 + var12 + (long) var2), this.aByteArray564, (int) (-this.aLong576 + var12), var9);
|
|
}
|
|
|
|
this.aLong569 += var4;
|
|
return;
|
|
}
|
|
|
|
if (0 < var4) {
|
|
if (this.aLong571 == -1L) {
|
|
this.aLong571 = this.aLong569;
|
|
}
|
|
|
|
ArrayUtils.arraycopy(var1, var2, this.aByteArray572, (int) (this.aLong569 + -this.aLong571), var4);
|
|
this.aLong569 += var4;
|
|
if (-this.aLong571 + this.aLong569 > (long) this.anInt566) {
|
|
this.anInt566 = (int) (-this.aLong571 + this.aLong569);
|
|
}
|
|
|
|
return;
|
|
}
|
|
} catch (IOException var10) {
|
|
this.aLong570 = -1L;
|
|
throw var10;
|
|
}
|
|
|
|
if (var3 != -903171152) {
|
|
this.aLong563 = -28L;
|
|
}
|
|
|
|
} catch (RuntimeException var11) {
|
|
throw ClientErrorException.clientError(var11, "en.H(" + (var1 != null ? "{...}" : "null") + ',' + var2 + ',' + var3 + ',' + var4 + ')');
|
|
}
|
|
}
|
|
|
|
final void method984(int var1, long var2) throws IOException {
|
|
try {
|
|
if (var2 >= 0L) {
|
|
this.aLong569 = var2;
|
|
if (var1 > -6) {
|
|
this.aLong569 = 89L;
|
|
}
|
|
|
|
} else {
|
|
throw new IOException("Invalid seek to " + var2 + " in file " + this.method977());
|
|
}
|
|
} catch (RuntimeException var5) {
|
|
throw ClientErrorException.clientError(var5, "en.E(" + var1 + ',' + var2 + ')');
|
|
}
|
|
}
|
|
|
|
}
|