Server/Client/src/main/java/org/runite/client/TextureOperation37.java

308 lines
12 KiB
Java

package org.runite.client;
import org.rs09.client.config.GameConfig;
import org.rs09.client.net.Connection;
import java.io.IOException;
import java.net.Socket;
import java.util.Objects;
final class TextureOperation37 extends TextureOperation {
//Class3_Sub13_Sub21
private int anInt3253 = 0;
private int anInt3254 = 4096;
static int anInt3256;
private int anInt3257 = 12288;
private int anInt3258 = 0;
static int anInt3260 = -1;
static boolean aBoolean3261 = false;
private int anInt3262 = 2048;
static int anInt3263 = 0;
static Class3_Sub28_Sub3 aClass3_Sub28_Sub3_3264;
private int anInt3265 = 2048;
private int anInt3266 = 8192;
final void decode(int var1, DataBuffer var2) {
try {
if(var1 == 0) {
this.anInt3265 = var2.readUnsignedShort();
} else if(var1 == 1) {
this.anInt3253 = var2.readUnsignedShort();
} else if(var1 == 2) {
this.anInt3258 = var2.readUnsignedShort();
} else if(var1 == 3) {
this.anInt3262 = var2.readUnsignedShort();
} else if (var1 == 4) {
this.anInt3257 = var2.readUnsignedShort();
} else if (var1 == 5) {
this.anInt3254 = var2.readUnsignedShort();
} else if (var1 == 6) {
this.anInt3266 = var2.readUnsignedShort();
}
if(!true) {
this.anInt3266 = 85;
}
} catch (RuntimeException var5) {
throw ClientErrorException.clientError(var5, "mh.A(" + var1 + ',' + (var2 != null?"{...}":"null") + ',' + true + ')');
}
}
static void method267() {
try {
if(Unsorted.registryStage != 0) {
try {
if(++Class132.anInt1734 > 2000) {
if(null != Class3_Sub15.activeConnection) {
Class3_Sub15.activeConnection.close();
Class3_Sub15.activeConnection = null;
}
if(GraphicDefinition.anInt548 >= 1) {
Unsorted.anInt1711 = -5;
Unsorted.registryStage = 0;
return;
}
Unsorted.registryStage = 1;
Class132.anInt1734 = 0;
++GraphicDefinition.anInt548;
if(Class140_Sub6.accRegistryPort == Class162.anInt2036) {
Class140_Sub6.accRegistryPort = Client.currentPort;
} else {
Class140_Sub6.accRegistryPort = Class162.anInt2036;
}
}
if(Unsorted.registryStage == 1) {
//Ip & Port
Class3_Sub9.aClass64_2318 = Class38.gameSignlink.method1441((byte)8, Class38_Sub1.accRegistryIp, Class140_Sub6.accRegistryPort);
Unsorted.registryStage = 2;
}
int response;
if(Unsorted.registryStage == 2) {
if(Objects.requireNonNull(Class3_Sub9.aClass64_2318).anInt978 == 2) {
throw new IOException();
}
if(1 != Class3_Sub9.aClass64_2318.anInt978) {
return;
}
Class3_Sub15.activeConnection = new Connection((Socket)Class3_Sub9.aClass64_2318.anObject974, Class38.gameSignlink);
Class3_Sub9.aClass64_2318 = null;
Class3_Sub15.activeConnection.sendBytes(TextureOperation12.outgoingBuffer.buffer, TextureOperation12.outgoingBuffer.index);
if(WorldListEntry.aAudioChannel_2627 != null) {
WorldListEntry.aAudioChannel_2627.method2159();
}
if(null != Class3_Sub21.aAudioChannel_2491) {
Class3_Sub21.aAudioChannel_2491.method2159();
}
response = Class3_Sub15.activeConnection.readByte();
System.out.println("Response = " + response);
if(WorldListEntry.aAudioChannel_2627 != null) {
WorldListEntry.aAudioChannel_2627.method2159();
}
if(Class3_Sub21.aAudioChannel_2491 != null) {
Class3_Sub21.aAudioChannel_2491.method2159();
}
if(response != 21) {
Unsorted.anInt1711 = response;
Unsorted.registryStage = 0;
Class3_Sub15.activeConnection.close();
Class3_Sub15.activeConnection = null;
return;
}
Unsorted.registryStage = 3;
}
if(3 == Unsorted.registryStage) {
if(Class3_Sub15.activeConnection.availableBytes() < 1) {
return;
}
TextureOperation29.aClass94Array3391 = new RSString[Class3_Sub15.activeConnection.readByte()];
Unsorted.registryStage = 4;
}
if(Unsorted.registryStage == 4) {
if(8 * TextureOperation29.aClass94Array3391.length > Class3_Sub15.activeConnection.availableBytes()) {
return;
}
BufferedDataStream.incomingBuffer.index = 0;
Class3_Sub15.activeConnection.readBytes(BufferedDataStream.incomingBuffer.buffer, 0, 8 * TextureOperation29.aClass94Array3391.length);
for(response = 0; response < TextureOperation29.aClass94Array3391.length; ++response) {
TextureOperation29.aClass94Array3391[response] = Unsorted.method1052(BufferedDataStream.incomingBuffer.readLong());
}
Unsorted.anInt1711 = 21;
Unsorted.registryStage = 0;
Class3_Sub15.activeConnection.close();
Class3_Sub15.activeConnection = null;
return;
}
} catch (IOException var2) {
if(Class3_Sub15.activeConnection != null) {
Class3_Sub15.activeConnection.close();
Class3_Sub15.activeConnection = null;
}
if(GraphicDefinition.anInt548 < 1) {
++GraphicDefinition.anInt548;
if(Class162.anInt2036 == Class140_Sub6.accRegistryPort) {
Class140_Sub6.accRegistryPort = Client.currentPort;
} else {
Class140_Sub6.accRegistryPort = Class162.anInt2036;
}
Class132.anInt1734 = 0;
Unsorted.registryStage = 1;
} else {
Unsorted.anInt1711 = -4;
Unsorted.registryStage = 0;
}
}
}
} catch (RuntimeException var3) {
throw ClientErrorException.clientError(var3, "mh.Q(" + (byte) 36 + ')');
}
}
public TextureOperation37() {
super(0, true);
}
final int[] method154(int var1, byte var2) {
try {
int[] var3 = this.aClass114_2382.method1709(var1);
if(this.aClass114_2382.aBoolean1580) {
int var5 = -2048 + Class163_Sub3.anIntArray2999[var1];
for(int var6 = 0; var6 < Class113.anInt1559; ++var6) {
int var9 = var5 + this.anInt3253;
int var7 = Class102.anIntArray2125[var6] + -2048;
int var8 = this.anInt3265 + var7;
var9 = var9 < -2048 ?var9 - -4096:var9;
var9 = 2048 < var9?-4096 + var9:var9;
int var10 = var7 + this.anInt3258;
var8 = var8 < -2048?var8 + 4096:var8;
var8 = var8 <= 2048 ?var8:-4096 + var8;
var10 = var10 >= -2048 ?var10:4096 + var10;
var10 = var10 > 2048 ?var10 - 4096:var10;
int var11 = var5 - -this.anInt3262;
var11 = -2048 > var11?var11 + 4096:var11;
var11 = var11 > 2048 ?var11 - 4096:var11;
var3[var6] = !this.method271(var8, var9) && !this.method270(var10, var11)?0:4096;
}
}
return var3;
} catch (RuntimeException var12) {
throw ClientErrorException.clientError(var12, "mh.D(" + var1 + ',' + var2 + ')');
}
}
private boolean method270(int var2, int var3) {
try {
int var4 = this.anInt3257 * (var2 + var3) >> 12;
int var5 = Class75_Sub2.anIntArray2639[var4 * 255 >> 12 & 0xFF];
var5 = (var5 << 12) / this.anInt3257;
var5 = (var5 << 12) / this.anInt3266;
var5 = var5 * this.anInt3254 >> 12;
return var5 > -var2 + var3 && var3 + -var2 > -var5;
} catch (RuntimeException var6) {
throw ClientErrorException.clientError(var6, "mh.S(" + (byte) -44 + ',' + var2 + ',' + var3 + ')');
}
}
final void postDecode() {
try {
Class8.method844((byte)-9);
} catch (RuntimeException var3) {
throw ClientErrorException.clientError(var3, "mh.P(" + ')');
}
}
private boolean method271(int var1, int var2) {
try {
int var4 = (var2 - var1) * this.anInt3257 >> 12;
int var5 = Class75_Sub2.anIntArray2639[(1047948 & var4 * 255) >> 12];
var5 = (var5 << 12) / this.anInt3257;
var5 = (var5 << 12) / this.anInt3266;
var5 = var5 * this.anInt3254 >> 12;
return var5 > var2 + var1 && -var5 < var2 + var1;
} catch (RuntimeException var6) {
throw ClientErrorException.clientError(var6, "mh.F(" + var1 + ',' + var2 + ',' + (byte) 113 + ')');
}
}
static void displayNPCOnLoginRegion() {
try {
int var1 = TextureOperation35.aByteArrayArray3335.length;
for(int var2 = 0; var2 < var1; ++var2) {
if(TextureOperation35.aByteArrayArray3335[var2] != null) {
int var3 = -1;
for(int var4 = 0; TextureOperation11.anInt3244 > var4; ++var4) {
if(TextureOperation13.anIntArray3367[var4] == Class3_Sub24_Sub3.anIntArray3494[var2]) {
var3 = var4;
break;
}
}
if(var3 == -1) {
TextureOperation13.anIntArray3367[TextureOperation11.anInt3244] = Class3_Sub24_Sub3.anIntArray3494[var2];
var3 = TextureOperation11.anInt3244++;
}
int var5 = 0;
DataBuffer var16 = new DataBuffer(TextureOperation35.aByteArrayArray3335[var2]);
while(TextureOperation35.aByteArrayArray3335[var2].length > var16.index && 511 > var5) {
int var6 = var5++ << 6 | var3;
int var7 = var16.readUnsignedShort();
int var8 = var7 >> 14;
int var9 = 63 & var7 >> 7;
int var11 = var9 + 64 * (Class3_Sub24_Sub3.anIntArray3494[var2] >> 8) - Class131.anInt1716;
int var10 = var7 & 63;
int var12 = var10 + -Texture.anInt1152 + 64 * (255 & Class3_Sub24_Sub3.anIntArray3494[var2]);
int npcID = var16.readUnsignedShort();
if (GameConfig.EASTER_EVENT_ENABLED) {
npcID = 1321;
}
NPCDefinition var13 = NPCDefinition.getNPCDefinition(npcID);
if(NPC.npcs[var6] == null && (var13.aByte1267 & 1) > 0 && Class140_Sub3.anInt2745 == var8 && var11 >= 0 && 104 > var13.size + var11 && var12 >= 0 && 104 > var12 - -var13.size) {
NPC.npcs[var6] = new NPC();
NPC npc = NPC.npcs[var6];
AudioThread.localNPCIndexes[Class163.localNPCCount++] = var6;
npc.anInt2838 = Class44.anInt719;
npc.setDefinitions(var13);
npc.setSize(npc.definition.size, 2);
npc.anInt2806 = npc.anInt2785 = Class27.anIntArray510[npc.definition.aByte1268];
npc.anInt2779 = npc.definition.anInt1274;
if(npc.anInt2779 == 0) {
npc.anInt2785 = 0;
}
npc.renderAnimationId = npc.definition.renderAnimationId;
npc.method1967(npc.getSize(), var11, var12, true);
}
}
}
}
} catch (RuntimeException var15) {
throw ClientErrorException.clientError(var15, "mh.E(" + (byte) -124 + ')');
}
}
}