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

372 lines
14 KiB
Java

import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import com.jogamp.opengl.*;
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!hg")
public final class Class3_Sub14 extends Node {
@OriginalMember(owner = "client!hg", name = "s", descriptor = "Ljava/nio/ByteBuffer;")
private ByteBuffer aByteBuffer3;
@OriginalMember(owner = "client!hg", name = "t", descriptor = "[F")
private float[] aFloatArray4;
@OriginalMember(owner = "client!hg", name = "v", descriptor = "[I")
private int[] anIntArray226;
@OriginalMember(owner = "client!hg", name = "w", descriptor = "[I")
private int[] anIntArray227;
@OriginalMember(owner = "client!hg", name = "x", descriptor = "[I")
private int[] anIntArray228;
@OriginalMember(owner = "client!hg", name = "z", descriptor = "[I")
private int[] anIntArray229;
@OriginalMember(owner = "client!hg", name = "A", descriptor = "Lclient!sc;")
private HashTable aClass133_8;
@OriginalMember(owner = "client!hg", name = "B", descriptor = "[F")
private float[] aFloatArray5;
@OriginalMember(owner = "client!hg", name = "E", descriptor = "[[I")
private int[][] anIntArrayArray17;
@OriginalMember(owner = "client!hg", name = "F", descriptor = "[I")
private int[] anIntArray230;
@OriginalMember(owner = "client!hg", name = "I", descriptor = "[[I")
private int[][] anIntArrayArray18;
@OriginalMember(owner = "client!hg", name = "L", descriptor = "Lclient!vi;")
private GlVertexBufferObject aClass155_3;
@OriginalMember(owner = "client!hg", name = "N", descriptor = "[F")
private float[] aFloatArray6;
@OriginalMember(owner = "client!hg", name = "P", descriptor = "[I")
private int[] anIntArray231;
@OriginalMember(owner = "client!hg", name = "R", descriptor = "[F")
private float[] aFloatArray7;
@OriginalMember(owner = "client!hg", name = "S", descriptor = "[Z")
private boolean[] aBooleanArray54;
@OriginalMember(owner = "client!hg", name = "T", descriptor = "[I")
private int[] anIntArray232;
@OriginalMember(owner = "client!hg", name = "p", descriptor = "I")
public int anInt2482 = 0;
@OriginalMember(owner = "client!hg", name = "D", descriptor = "I")
private int anInt2487 = 0;
@OriginalMember(owner = "client!hg", name = "G", descriptor = "I")
private int anInt2488 = 0;
@OriginalMember(owner = "client!hg", name = "q", descriptor = "I")
public int anInt2483 = 0;
@OriginalMember(owner = "client!hg", name = "r", descriptor = "I")
public int anInt2484 = 0;
@OriginalMember(owner = "client!hg", name = "O", descriptor = "I")
private int anInt2489 = 0;
@OriginalMember(owner = "client!hg", name = "y", descriptor = "I")
public final int anInt2485;
@OriginalMember(owner = "client!hg", name = "V", descriptor = "F")
private final float aFloat12;
@OriginalMember(owner = "client!hg", name = "M", descriptor = "Z")
public final boolean aBoolean140;
@OriginalMember(owner = "client!hg", name = "u", descriptor = "Z")
private final boolean aBoolean139;
@OriginalMember(owner = "client!hg", name = "C", descriptor = "I")
public final int anInt2486;
@OriginalMember(owner = "client!hg", name = "<init>", descriptor = "(IFZZI)V")
public Class3_Sub14(@OriginalArg(0) int arg0, @OriginalArg(1) float arg1, @OriginalArg(2) boolean arg2, @OriginalArg(3) boolean arg3, @OriginalArg(4) int arg4) {
this.anInt2485 = arg0;
this.aFloat12 = arg1;
this.aBoolean140 = arg2;
this.aBoolean139 = arg3;
this.anInt2486 = arg4;
}
@OriginalMember(owner = "client!hg", name = "b", descriptor = "()V")
public final void method1940() {
this.anIntArray232 = new int[this.anInt2482];
this.anIntArray230 = new int[this.anInt2482];
this.anIntArray229 = new int[this.anInt2482];
if (this.aBoolean139) {
this.aFloatArray4 = new float[this.anInt2482];
}
this.anIntArray226 = new int[this.anInt2482];
this.aFloatArray7 = new float[this.anInt2482];
this.aFloatArray6 = new float[this.anInt2482];
this.aFloatArray5 = new float[this.anInt2482];
this.anIntArray228 = new int[this.anInt2484];
this.anIntArray227 = new int[this.anInt2484];
this.anIntArray231 = new int[this.anInt2484];
this.anIntArrayArray17 = new int[this.anInt2484][];
this.aClass133_8 = new HashTable(Static165.clp2(this.anInt2482));
if (this.aBoolean140) {
this.anIntArrayArray18 = new int[this.anInt2484][];
this.aBooleanArray54 = new boolean[this.anInt2484];
}
}
@OriginalMember(owner = "client!hg", name = "a", descriptor = "(IIIFFFIF)I")
public final int method1941(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) float arg3, @OriginalArg(4) float arg4, @OriginalArg(5) float arg5, @OriginalArg(6) int arg6, @OriginalArg(7) float arg7) {
@Pc(1) long local1 = 0L;
if ((arg0 & 0x7F) == 0 || (arg2 & 0x7F) == 0) {
local1 = (long) (arg0 + (arg2 << 16)) + ((long) arg6 << 32);
@Pc(28) IntNode local28 = (IntNode) this.aClass133_8.method3863(local1);
if (local28 != null) {
if (arg1 < this.anIntArray230[local28.anInt3141]) {
this.anIntArray230[local28.anInt3141] = arg1;
}
return local28.anInt3141;
}
}
this.anIntArray232[this.anInt2483] = arg0;
this.anIntArray230[this.anInt2483] = arg1;
this.anIntArray229[this.anInt2483] = arg2;
if (this.aBoolean139) {
this.aFloatArray4[this.anInt2483] = arg7;
}
this.aFloatArray7[this.anInt2483] = arg3;
this.aFloatArray6[this.anInt2483] = arg4;
this.aFloatArray5[this.anInt2483] = arg5;
this.anIntArray226[this.anInt2483] = arg6;
if (local1 != 0L) {
this.aClass133_8.method3862(new IntNode(this.anInt2483), local1);
}
return this.anInt2483++;
}
@OriginalMember(owner = "client!hg", name = "d", descriptor = "()V")
public final void method1943() {
@Pc(12) Buffer local12 = new Buffer((this.aBoolean139 ? 40 : 36) * this.anInt2483);
for (@Pc(14) int local14 = 0; local14 < this.anInt2483; local14++) {
if (GlRenderer.bigEndian) {
local12.pFloat((float) this.anIntArray232[local14]);
local12.pFloat((float) this.anIntArray230[local14]);
local12.pFloat((float) this.anIntArray229[local14]);
local12.p4(this.anIntArray226[local14]);
local12.pFloat(this.aFloatArray7[local14]);
local12.pFloat(this.aFloatArray6[local14]);
local12.pFloat(this.aFloatArray5[local14]);
local12.pFloat((float) this.anIntArray232[local14] / this.aFloat12);
local12.pFloat((float) this.anIntArray229[local14] / this.aFloat12);
if (this.aBoolean139) {
local12.pFloat(this.aFloatArray4[local14]);
}
} else {
local12.gFloat((float) this.anIntArray232[local14]);
local12.gFloat((float) this.anIntArray230[local14]);
local12.gFloat((float) this.anIntArray229[local14]);
local12.p4(this.anIntArray226[local14]);
local12.gFloat(this.aFloatArray7[local14]);
local12.gFloat(this.aFloatArray6[local14]);
local12.gFloat(this.aFloatArray5[local14]);
local12.gFloat((float) this.anIntArray232[local14] / this.aFloat12);
local12.gFloat((float) this.anIntArray229[local14] / this.aFloat12);
if (this.aBoolean139) {
local12.gFloat(this.aFloatArray4[local14]);
}
}
}
if (GlRenderer.arbVboSupported) {
@Pc(200) ByteBuffer local200 = ByteBuffer.wrap(local12.data, 0, local12.offset);
this.aClass155_3 = new GlVertexBufferObject();
this.aClass155_3.method4519(local200);
} else {
this.aByteBuffer3 = ByteBuffer.allocateDirect(local12.offset).order(ByteOrder.nativeOrder());
this.aByteBuffer3.put(local12.data, 0, local12.offset);
this.aByteBuffer3.flip();
}
this.anIntArray232 = null;
this.anIntArray230 = null;
this.anIntArray229 = null;
this.anIntArray226 = null;
this.aFloatArray7 = null;
this.aFloatArray6 = null;
this.aFloatArray5 = null;
this.aClass133_8 = null;
this.aFloatArray4 = null;
}
@OriginalMember(owner = "client!hg", name = "a", descriptor = "([[[Lclient!bj;FZ)V")
public final void method1944(@OriginalArg(0) Tile[][][] arg0, @OriginalArg(1) float arg1, @OriginalArg(2) boolean arg2) {
if (Static95.aClass3_Sub15_3 == null || Static95.aClass3_Sub15_3.data.length < this.anInt2488 * 4) {
Static95.aClass3_Sub15_3 = new Buffer(this.anInt2488 * 4);
} else {
Static95.aClass3_Sub15_3.offset = 0;
}
if (Static95.aClass3_Sub15_2 == null || Static95.aClass3_Sub15_2.data.length < this.anInt2487 * 4) {
Static95.aClass3_Sub15_2 = new Buffer(this.anInt2487 * 4);
} else {
Static95.aClass3_Sub15_2.offset = 0;
}
@Pc(47) int local47;
@Pc(68) Tile local68;
@Pc(111) Buffer local111;
@Pc(78) int[] local78;
@Pc(86) int[] local86;
@Pc(90) int local90;
@Pc(116) int local116;
if (GlRenderer.bigEndian) {
for (local47 = 0; local47 < this.anInt2489; local47++) {
local68 = arg0[this.anIntArray231[local47]][this.anIntArray228[local47]][this.anIntArray227[local47]];
if (local68 != null && local68.aBoolean45) {
local78 = this.anIntArrayArray17[local47];
if (this.aBoolean140) {
local86 = this.anIntArrayArray18[local47];
if (local86 != null) {
for (local90 = 0; local90 < local86.length; local90++) {
Static95.aClass3_Sub15_2.p4(local86[local90]);
}
}
local111 = this.aBooleanArray54[local47] ? Static95.aClass3_Sub15_2 : Static95.aClass3_Sub15_3;
} else {
local111 = Static95.aClass3_Sub15_3;
}
for (local116 = 1; local116 < local78.length - 1; local116++) {
local111.p4(local78[0]);
local111.p4(local78[local116]);
local111.p4(local78[local116 + 1]);
}
}
}
} else {
for (local47 = 0; local47 < this.anInt2489; local47++) {
local68 = arg0[this.anIntArray231[local47]][this.anIntArray228[local47]][this.anIntArray227[local47]];
if (local68 != null && local68.aBoolean45) {
local78 = this.anIntArrayArray17[local47];
if (this.aBoolean140) {
local86 = this.anIntArrayArray18[local47];
if (local86 != null) {
for (local90 = 0; local90 < local86.length; local90++) {
Static95.aClass3_Sub15_2.p4le(local86[local90]);
}
}
local111 = this.aBooleanArray54[local47] ? Static95.aClass3_Sub15_2 : Static95.aClass3_Sub15_3;
} else {
local111 = Static95.aClass3_Sub15_3;
}
for (local116 = 1; local116 < local78.length - 1; local116++) {
local111.p4le(local78[0]);
local111.p4le(local78[local116]);
local111.p4le(local78[local116 + 1]);
}
}
}
}
if (Static95.aClass3_Sub15_3.offset == 0 && Static95.aClass3_Sub15_2.offset == 0) {
return;
}
@Pc(257) GL2 local257 = GlRenderer.gl;
if (this.anInt2485 == -1 || arg2) {
GlRenderer.setTextureId(-1);
Static27.setMaterial(0, 0);
} else {
Rasteriser.anInterface1_2.method3227(this.anInt2485);
}
@Pc(282) int local282 = this.aBoolean139 ? 40 : 36;
if (this.aClass155_3 == null) {
if (GlRenderer.arbVboSupported) {
local257.glBindBuffer(GL2.GL_ARRAY_BUFFER, 0);
}
this.aByteBuffer3.position(0);
local257.glVertexPointer(3, GL2.GL_FLOAT, local282, this.aByteBuffer3);
this.aByteBuffer3.position(12);
local257.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, local282, this.aByteBuffer3);
if (Static178.highDetailLighting) {
this.aByteBuffer3.position(16);
local257.glNormalPointer(GL2.GL_FLOAT, local282, this.aByteBuffer3);
}
this.aByteBuffer3.position(28);
local257.glTexCoordPointer(2, GL2.GL_FLOAT, local282, this.aByteBuffer3);
if (this.aBoolean139) {
local257.glClientActiveTexture(Static275.method4607());
this.aByteBuffer3.position(36);
local257.glTexCoordPointer(1, GL2.GL_FLOAT, local282, this.aByteBuffer3);
local257.glClientActiveTexture(GL2.GL_TEXTURE0);
}
} else {
this.aClass155_3.method4516();
local257.glVertexPointer(3, GL2.GL_FLOAT, local282, 0L);
local257.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, local282, 12L);
if (Static178.highDetailLighting) {
local257.glNormalPointer(GL2.GL_FLOAT, local282, 16L);
}
local257.glTexCoordPointer(2, GL2.GL_FLOAT, local282, 28L);
if (this.aBoolean139) {
local257.glClientActiveTexture(Static275.method4607());
local257.glTexCoordPointer(1, GL2.GL_FLOAT, local282, 36L);
local257.glClientActiveTexture(GL2.GL_TEXTURE0);
}
}
if (GlRenderer.arbVboSupported) {
local257.glBindBuffer(GL2.GL_ELEMENT_ARRAY_BUFFER, 0);
}
if (Static95.aClass3_Sub15_3.offset != 0) {
if (Static95.aByteBuffer5 == null || Static95.aByteBuffer5.capacity() < Static95.aClass3_Sub15_3.offset) {
Static95.aByteBuffer5 = ByteBuffer.allocateDirect(Static95.aClass3_Sub15_3.offset).order(ByteOrder.nativeOrder());
} else {
Static95.aByteBuffer5.clear();
}
Static95.aByteBuffer5.put(Static95.aClass3_Sub15_3.data, 0, Static95.aClass3_Sub15_3.offset);
Static95.aByteBuffer5.flip();
GlRenderer.method4159(arg1);
local257.glDrawElements(GL2.GL_TRIANGLES, Static95.aClass3_Sub15_3.offset / 4, GL2.GL_UNSIGNED_INT, Static95.aByteBuffer5);
}
if (Static95.aClass3_Sub15_2.offset == 0) {
return;
}
if (Static95.aByteBuffer4 == null || Static95.aByteBuffer4.capacity() < Static95.aClass3_Sub15_2.offset) {
Static95.aByteBuffer4 = ByteBuffer.allocateDirect(Static95.aClass3_Sub15_2.offset).order(ByteOrder.nativeOrder());
} else {
Static95.aByteBuffer4.clear();
}
Static95.aByteBuffer4.put(Static95.aClass3_Sub15_2.data, 0, Static95.aClass3_Sub15_2.offset);
Static95.aByteBuffer4.flip();
GlRenderer.method4159(arg1 - 100.0F);
GlRenderer.disableDepthMask();
local257.glDrawElements(GL2.GL_TRIANGLES, Static95.aClass3_Sub15_2.offset / 4, GL2.GL_UNSIGNED_INT, Static95.aByteBuffer4);
GlRenderer.enableDepthMask();
}
@OriginalMember(owner = "client!hg", name = "a", descriptor = "(III[I[IZ)I")
public final int method1945(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int[] arg3, @OriginalArg(4) int[] arg4, @OriginalArg(5) boolean arg5) {
if (this.aBoolean140) {
this.anIntArrayArray18[this.anInt2489] = arg4;
this.aBooleanArray54[this.anInt2489] = arg5;
if (arg4 != null) {
this.anInt2487 += arg4.length;
}
if (arg5) {
this.anInt2487 += (arg3.length - 2) * 3;
} else {
this.anInt2488 += (arg3.length - 2) * 3;
}
} else {
this.anInt2488 += (arg3.length - 2) * 3;
}
this.anIntArray231[this.anInt2489] = arg0;
this.anIntArray228[this.anInt2489] = arg1;
this.anIntArray227[this.anInt2489] = arg2;
this.anIntArrayArray17[this.anInt2489] = arg3;
return this.anInt2489++;
}
}