Server/Client/src/main/java/org/runite/client/Class41.java
Woah c1efb2a344 Renamed texture operations
Started separating out draw calls
2021-03-24 17:15:16 -04:00

220 lines
8.7 KiB
Java

package org.runite.client;
import java.io.EOFException;
import java.io.IOException;
final class Class41 {
static byte[] aByteArray2040 = new byte[520];
private final Class30 aClass30_681;
private final Class30 aClass30_683;
private final int anInt687;
int cacheIndex;
Class41(int var1, Class30 var2, Class30 var3, int var4) {
this.anInt687 = var4;
this.aClass30_683 = var3;
this.cacheIndex = var1;
this.aClass30_681 = var2;
}
public final String toString() {
return "Cache:" + this.cacheIndex;
}
final void write(int var1, int var2, byte[] var3) {
synchronized (this.aClass30_681) {
if (0 <= var2 && var2 <= this.anInt687) {
boolean var6 = this.method1054((byte) 87, var2, var1, var3, true);
if (!var6) {
var6 = this.method1054((byte) 87, var2, var1, var3, false);
}
} else {
throw new IllegalArgumentException();
}
}
}
final byte[] read(int var1) {
synchronized (this.aClass30_681) {
Object var10000;
try {
if ((long) (var1 * 6 + 6) > this.aClass30_683.method976(0)) {
var10000 = null;
return (byte[]) var10000;
}
this.aClass30_683.method984(-35, 6 * var1);
this.aClass30_683.method978(0, aByteArray2040, 6);
int var5 = ((255 & aByteArray2040[3]) << 16) - (-(aByteArray2040[4] << 8 & 65280) + -(255 & aByteArray2040[5]));
int var4 = (aByteArray2040[2] & 0xFF) + (65280 & aByteArray2040[1] << 8) + (16711680 & aByteArray2040[0] << 16);
if (this.anInt687 < var4) {
var10000 = null;
return (byte[]) var10000;
}
if (0 < var5 && this.aClass30_681.method976(0) / 520L >= (long) var5) {
byte[] var7 = new byte[var4];
int var8 = 0;
int var13;
for (int var9 = 0; var4 > var8; var5 = var13) {
if (0 == var5) {
var10000 = null;
return (byte[]) var10000;
}
int var10 = -var8 + var4;
this.aClass30_681.method984(-113, 520 * var5);
if (var10 > 512) {
var10 = 512;
}
this.aClass30_681.method978(0, aByteArray2040, 8 + var10);
int var11 = (aByteArray2040[0] << 8 & 65280) - -(255 & aByteArray2040[1]);
int var12 = (aByteArray2040[3] & 0xFF) + (65280 & aByteArray2040[2] << 8);
int var14 = 255 & aByteArray2040[7];
var13 = (aByteArray2040[6] & 0xFF) + (65280 & aByteArray2040[5] << 8) + (aByteArray2040[4] << 16 & 16711680);
if (var1 != var11 || var9 != var12 || this.cacheIndex != var14) {
var10000 = null;
return (byte[]) var10000;
}
if (var13 < 0 || (long) var13 > this.aClass30_681.method976(0) / 520L) {
var10000 = null;
return (byte[]) var10000;
}
for (int var15 = 0; var10 > var15; ++var15) {
var7[var8++] = aByteArray2040[var15 + 8];
}
++var9;
}
return var7;
}
var10000 = null;
} catch (IOException var17) {
return null;
}
return (byte[]) var10000;
}
}
private boolean method1054(byte var1, int var2, int var3, byte[] var4, boolean var5) {
synchronized (this.aClass30_681) {
try {
int var7;
if (var5) {
if (this.aClass30_683.method976(var1 ^ 87) < (long) (6 + var3 * 6)) {
return false;
}
this.aClass30_683.method984(-116, 6 * var3);
this.aClass30_683.method978(0, aByteArray2040, 6);
var7 = (16711680 & aByteArray2040[3] << 16) + (65280 & aByteArray2040[4] << 8) + (aByteArray2040[5] & 0xFF);
if (var7 <= 0 || (long) var7 > this.aClass30_681.method976(0) / 520L) {
return false;
}
} else {
var7 = (int) ((this.aClass30_681.method976(var1 + -87) - -519L) / 520L);
if (var7 == 0) {
var7 = 1;
}
}
aByteArray2040[0] = (byte) (var2 >> 16);
aByteArray2040[4] = (byte) (var7 >> 8);
int var8 = 0;
aByteArray2040[5] = (byte) var7;
aByteArray2040[2] = (byte) var2;
aByteArray2040[3] = (byte) (var7 >> 16);
if (var1 != 87) {
this.method1054((byte) 41, 108, -107, null, true);
}
int var9 = 0;
aByteArray2040[1] = (byte) (var2 >> 8);
this.aClass30_683.method984(-14, var3 * 6);
this.aClass30_683.method983(aByteArray2040, 0, var1 ^ -903171097, 6);
while (true) {
if (var2 > var8) {
label146:
{
int var10 = 0;
int var11;
if (var5) {
this.aClass30_681.method984(-116, 520 * var7);
try {
this.aClass30_681.method978(0, aByteArray2040, 8);
} catch (EOFException var15) {
break label146;
}
var10 = ((aByteArray2040[4] & 0xFF) << 16) + (65280 & aByteArray2040[5] << 8) - -(aByteArray2040[6] & 0xFF);
var11 = (255 & aByteArray2040[1]) + ((aByteArray2040[0] & 0xFF) << 8);
int var13 = 255 & aByteArray2040[7];
int var12 = (aByteArray2040[3] & 0xFF) + (aByteArray2040[2] << 8 & 65280);
if (var11 != var3 || var12 != var9 || var13 != this.cacheIndex) {
return false;
}
if (var10 < 0 || this.aClass30_681.method976(0) / 520L < (long) var10) {
return false;
}
}
var11 = -var8 + var2;
if (var10 == 0) {
var5 = false;
var10 = (int) ((this.aClass30_681.method976(0) - -519L) / 520L);
if (var10 == 0) {
++var10;
}
if (var7 == var10) {
++var10;
}
}
aByteArray2040[7] = (byte) this.cacheIndex;
aByteArray2040[0] = (byte) (var3 >> 8);
if (-var8 + var2 <= 512) {
var10 = 0;
}
aByteArray2040[4] = (byte) (var10 >> 16);
if (var11 > 512) {
var11 = 512;
}
aByteArray2040[1] = (byte) var3;
aByteArray2040[6] = (byte) var10;
aByteArray2040[2] = (byte) (var9 >> 8);
aByteArray2040[3] = (byte) var9;
++var9;
aByteArray2040[5] = (byte) (var10 >> 8);
this.aClass30_681.method984(var1 + -128, var7 * 520);
var7 = var10;
this.aClass30_681.method983(aByteArray2040, 0, -903171152, 8);
this.aClass30_681.method983(var4, var8, -903171152, var11);
var8 += var11;
continue;
}
}
return true;
}
} catch (IOException var16) {
return false;
}
}
}
}