import java.nio.ByteBuffer; 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!fj") public final class Class45 { @OriginalMember(owner = "client!fj", name = "a", descriptor = "Lclient!vi;") private GlVertexBufferObject aClass155_1; @OriginalMember(owner = "client!fj", name = "b", descriptor = "[I") private int[] anIntArray177; @OriginalMember(owner = "client!fj", name = "c", descriptor = "[B") private byte[] aByteArray23; @OriginalMember(owner = "client!fj", name = "d", descriptor = "[I") private int[] anIntArray178; @OriginalMember(owner = "client!fj", name = "e", descriptor = "Lclient!vi;") private GlVertexBufferObject aClass155_2; @OriginalMember(owner = "client!fj", name = "f", descriptor = "Ljava/nio/ByteBuffer;") private ByteBuffer aByteBuffer1; @OriginalMember(owner = "client!fj", name = "g", descriptor = "[I") private int[] anIntArray179; @OriginalMember(owner = "client!fj", name = "h", descriptor = "[I") private int[] anIntArray180; @OriginalMember(owner = "client!fj", name = "i", descriptor = "[B") private byte[] aByteArray24; @OriginalMember(owner = "client!fj", name = "j", descriptor = "I") public int anInt2016; @OriginalMember(owner = "client!fj", name = "k", descriptor = "Ljava/nio/ByteBuffer;") private ByteBuffer aByteBuffer2; @OriginalMember(owner = "client!fj", name = "l", descriptor = "I") public int anInt2017; @OriginalMember(owner = "client!fj", name = "m", descriptor = "[B") private byte[] aByteArray25; @OriginalMember(owner = "client!fj", name = "n", descriptor = "I") public int anInt2018; @OriginalMember(owner = "client!fj", name = "o", descriptor = "Lclient!sc;") private HashTable aClass133_4; @OriginalMember(owner = "client!fj", name = "p", descriptor = "I") public int anInt2019; @OriginalMember(owner = "client!fj", name = "a", descriptor = "(Lclient!gi;IIIFFF)I") public final int method1553(@OriginalArg(0) Light arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) float arg4, @OriginalArg(5) float arg5, @OriginalArg(6) float arg6) { @Pc(1) long local1 = 0L; if ((arg1 & 0x7F) == 0 || (arg3 & 0x7F) == 0) { local1 = arg1 + (arg3 << 16); @Pc(23) IntNode local23 = (IntNode) this.aClass133_4.method3863(local1); if (local23 != null) { return local23.anInt3141; } } @Pc(31) int local31 = arg0.anInt2247; @Pc(37) float local37 = (float) (arg0.anInt2240 - arg1); @Pc(43) float local43 = (float) (arg0.anInt2235 - arg2); @Pc(49) float local49 = (float) (arg0.anInt2245 - arg3); @Pc(64) float local64 = (float) Math.sqrt((double) (local37 * local37 + local43 * local43 + local49 * local49)); @Pc(68) float local68 = 1.0F / local64; @Pc(72) float local72 = local37 * local68; @Pc(76) float local76 = local43 * local68; @Pc(80) float local80 = local49 * local68; @Pc(90) float local90 = local64 / (float) ((arg0.anInt2236 << 7) + 64); @Pc(96) float local96 = 1.0F - local90 * local90; if (local96 < 0.0F) { local96 = 0.0F; } @Pc(114) float local114 = local72 * arg4 + local76 * arg5 + local80 * arg6; if (local114 < 0.0F) { local114 = 0.0F; } @Pc(126) float local126 = local114 * local96 * 2.0F; if (local126 > 1.0F) { local126 = 1.0F; } @Pc(142) int local142 = (int) (local126 * (float) (local31 >> 16 & 0xFF)); if (local142 > 255) { local142 = 255; } @Pc(157) int local157 = (int) (local126 * (float) (local31 >> 8 & 0xFF)); if (local157 > 255) { local157 = 255; } @Pc(170) int local170 = (int) (local126 * (float) (local31 & 0xFF)); if (local170 > 255) { local170 = 255; } this.aByteArray25[this.anInt2017] = (byte) local142; this.aByteArray23[this.anInt2017] = (byte) local157; this.aByteArray24[this.anInt2017] = (byte) local170; this.anIntArray178[this.anInt2017] = arg1; this.anIntArray180[this.anInt2017] = arg2; this.anIntArray179[this.anInt2017] = arg3; this.aClass133_4.method3862(new IntNode(this.anInt2017), local1); return this.anInt2017++; } @OriginalMember(owner = "client!fj", name = "a", descriptor = "()V") public final void method1554() { @Pc(7) Buffer local7 = new Buffer(this.anInt2018 * 4); @Pc(15) Buffer local15 = new Buffer(this.anInt2017 * 16); @Pc(19) int local19; if (GlRenderer.bigEndian) { for (local19 = 0; local19 < this.anInt2017; local19++) { local15.p1(this.aByteArray25[local19]); local15.p1(this.aByteArray23[local19]); local15.p1(this.aByteArray24[local19]); local15.p1(255); local15.pFloat((float) this.anIntArray178[local19]); local15.pFloat((float) this.anIntArray180[local19]); local15.pFloat((float) this.anIntArray179[local19]); } for (local19 = 0; local19 < this.anInt2018; local19++) { local7.p4(this.anIntArray177[local19]); } } else { for (local19 = 0; local19 < this.anInt2017; local19++) { local15.p1(this.aByteArray25[local19]); local15.p1(this.aByteArray23[local19]); local15.p1(this.aByteArray24[local19]); local15.p1(255); local15.gFloat((float) this.anIntArray178[local19]); local15.gFloat((float) this.anIntArray180[local19]); local15.gFloat((float) this.anIntArray179[local19]); } for (local19 = 0; local19 < this.anInt2018; local19++) { local7.p4le(this.anIntArray177[local19]); } } if (GlRenderer.arbVboSupported) { this.aClass155_1 = new GlVertexBufferObject(); @Pc(173) ByteBuffer local173 = ByteBuffer.wrap(local15.data); this.aClass155_1.method4519(local173); this.aClass155_2 = new GlVertexBufferObject(); @Pc(186) ByteBuffer local186 = ByteBuffer.wrap(local7.data); this.aClass155_2.method4517(local186); } else { this.aByteBuffer1 = ByteBuffer.allocateDirect(local15.offset); this.aByteBuffer1.put(local15.data); this.aByteBuffer1.flip(); this.aByteBuffer2 = ByteBuffer.allocateDirect(local7.offset); this.aByteBuffer2.put(local7.data); this.aByteBuffer2.flip(); } this.anIntArray178 = null; this.anIntArray180 = null; this.anIntArray179 = null; this.aByteArray25 = null; this.aByteArray23 = null; this.aByteArray24 = null; this.anIntArray177 = null; this.aClass133_4 = null; } @OriginalMember(owner = "client!fj", name = "b", descriptor = "()V") public final void method1555() { this.anIntArray177 = new int[this.anInt2016]; this.anIntArray178 = new int[this.anInt2019]; this.anIntArray180 = new int[this.anInt2019]; this.anIntArray179 = new int[this.anInt2019]; this.aByteArray25 = new byte[this.anInt2019]; this.aByteArray23 = new byte[this.anInt2019]; this.aByteArray24 = new byte[this.anInt2019]; this.aClass133_4 = new HashTable(Static165.clp2(this.anInt2019)); } @OriginalMember(owner = "client!fj", name = "c", descriptor = "()V") public final void method1556() { @Pc(1) GL2 local1 = GlRenderer.gl; if (GlRenderer.arbVboSupported) { this.aClass155_1.method4516(); local1.glInterleavedArrays(GL2.GL_C4UB_V3F, 16, 0L); GlRenderer.normalArrayEnabled = false; this.aClass155_2.method4518(); local1.glDrawElements(GL2.GL_TRIANGLES, this.anInt2018, GL2.GL_UNSIGNED_INT, 0L); return; } if (GlRenderer.arbVboSupported) { local1.glBindBuffer(GL2.GL_ARRAY_BUFFER, 0); local1.glBindBuffer(GL2.GL_ELEMENT_ARRAY_BUFFER, 0); } local1.glInterleavedArrays(GL2.GL_C4UB_V3F, 16, this.aByteBuffer1); GlRenderer.normalArrayEnabled = false; local1.glDrawElements(GL2.GL_TRIANGLES, this.anInt2018, GL2.GL_UNSIGNED_INT, this.aByteBuffer2); } @OriginalMember(owner = "client!fj", name = "a", descriptor = "([I)V") public final void method1557(@OriginalArg(0) int[] arg0) { for (@Pc(1) int local1 = 1; local1 < arg0.length - 1; local1++) { this.anIntArray177[this.anInt2018++] = arg0[0]; this.anIntArray177[this.anInt2018++] = arg0[local1]; this.anIntArray177[this.anInt2018++] = arg0[local1 + 1]; } } }