mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2026-08-10 13:11:01 -06:00
308 lines
12 KiB
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 + ')');
|
|
}
|
|
}
|
|
|
|
}
|