Server/Client/src/main/java/org/runite/client/Class37.java
2021-03-24 15:51:22 -04:00

187 lines
6.4 KiB
Java

package org.runite.client;
import org.rs09.client.LinkableInt;
import org.rs09.client.data.HashTable;
import javax.media.opengl.GL;
import java.nio.ByteBuffer;
final class Class37 {
int anInt651;
int anInt653;
int anInt655;
int anInt657;
private Class156 aClass156_642;
private int[] anIntArray643;
private byte[] aByteArray644;
private int[] anIntArray645;
private Class156 aClass156_646;
private ByteBuffer aByteBuffer647;
private int[] anIntArray648;
private int[] anIntArray649;
private byte[] aByteArray650;
private ByteBuffer aByteBuffer652;
private byte[] aByteArray654;
private HashTable aHashTable_656;
final int method1018(Class43 var1, int var2, int var3, int var4, float var5, float var6, float var7) {
long var8 = 0L;
if ((var2 & 127) == 0 || (var4 & 127) == 0) {
var8 = var2 + (var4 << 16);
LinkableInt var10 = (LinkableInt) this.aHashTable_656.get(var8);
if (var10 != null) {
return var10.value;
}
}
int var23 = var1.anInt713;
float var11 = (float) (var1.anInt703 - var2);
float var12 = (float) (var1.anInt697 - var3);
float var13 = (float) (var1.anInt708 - var4);
float var14 = (float) Math.sqrt(var11 * var11 + var12 * var12 + var13 * var13);
float var15 = 1.0F / var14;
var11 *= var15;
var12 *= var15;
var13 *= var15;
float var16 = var14 / (float) ((var1.anInt698 << 7) + 64);
float var17 = 1.0F - var16 * var16;
if (var17 < 0.0F) {
var17 = 0.0F;
}
float var18 = var11 * var5 + var12 * var6 + var13 * var7;
if (var18 < 0.0F) {
var18 = 0.0F;
}
float var19 = var18 * var17 * 2.0F;
if (var19 > 1.0F) {
var19 = 1.0F;
}
int var20 = (int) (var19 * (float) (var23 >> 16 & 255));
if (var20 > 255) {
var20 = 255;
}
int var21 = (int) (var19 * (float) (var23 >> 8 & 255));
if (var21 > 255) {
var21 = 255;
}
int var22 = (int) (var19 * (float) (var23 & 255));
if (var22 > 255) {
var22 = 255;
}
this.aByteArray654[this.anInt653] = (byte) var20;
this.aByteArray644[this.anInt653] = (byte) var21;
this.aByteArray650[this.anInt653] = (byte) var22;
this.anIntArray645[this.anInt653] = var2;
this.anIntArray649[this.anInt653] = var3;
this.anIntArray648[this.anInt653] = var4;
this.aHashTable_656.put(var8, new LinkableInt(this.anInt653));
return this.anInt653++;
}
final void method1019() {
DataBuffer var1 = new DataBuffer(this.anInt655 * 4);
DataBuffer var2 = new DataBuffer(this.anInt653 * 16);
int var3;
if (HDToolKit.aBoolean1790) {
for (var3 = 0; var3 < this.anInt653; ++var3) {
var2.writeByte(this.aByteArray654[var3]);
var2.writeByte(this.aByteArray644[var3]);
var2.writeByte(this.aByteArray650[var3]);
var2.writeByte(255);
var2.writeFloat((float) this.anIntArray645[var3]);
var2.writeFloat((float) this.anIntArray649[var3]);
var2.writeFloat((float) this.anIntArray648[var3]);
}
for (var3 = 0; var3 < this.anInt655; ++var3) {
var1.writeInt(this.anIntArray643[var3]);
}
} else {
for (var3 = 0; var3 < this.anInt653; ++var3) {
var2.writeByte(this.aByteArray654[var3]);
var2.writeByte(this.aByteArray644[var3]);
var2.writeByte(this.aByteArray650[var3]);
var2.writeByte(255);
var2.writeFloatLE((float) this.anIntArray645[var3]);
var2.writeFloatLE((float) this.anIntArray649[var3]);
var2.writeFloatLE((float) this.anIntArray648[var3]);
}
for (var3 = 0; var3 < this.anInt655; ++var3) {
var1.writeIntLE(this.anIntArray643[var3]);
}
}
if (HDToolKit.supportVertexBufferObject) {
this.aClass156_642 = new Class156();
ByteBuffer var4 = ByteBuffer.wrap(var2.buffer);
this.aClass156_642.method2172(var4);
this.aClass156_646 = new Class156();
var4 = ByteBuffer.wrap(var1.buffer);
this.aClass156_646.method2170(var4);
} else {
this.aByteBuffer647 = ByteBuffer.allocateDirect(var2.index);
this.aByteBuffer647.put(var2.buffer);
this.aByteBuffer647.flip();
this.aByteBuffer652 = ByteBuffer.allocateDirect(var1.index);
this.aByteBuffer652.put(var1.buffer);
this.aByteBuffer652.flip();
}
this.anIntArray645 = null;
this.anIntArray649 = null;
this.anIntArray648 = null;
this.aByteArray654 = null;
this.aByteArray644 = null;
this.aByteArray650 = null;
this.anIntArray643 = null;
this.aHashTable_656 = null;
}
final void method1020() {
this.anIntArray643 = new int[this.anInt651];
this.anIntArray645 = new int[this.anInt657];
this.anIntArray649 = new int[this.anInt657];
this.anIntArray648 = new int[this.anInt657];
this.aByteArray654 = new byte[this.anInt657];
this.aByteArray644 = new byte[this.anInt657];
this.aByteArray650 = new byte[this.anInt657];
this.aHashTable_656 = new HashTable(Class95.method1585((byte) 70, this.anInt657));
}
final void method1021() {
GL var1 = HDToolKit.gl;
if (HDToolKit.supportVertexBufferObject) {
this.aClass156_642.method2169();
var1.glInterleavedArrays(10787, 16, 0L);
HDToolKit.aBoolean1798 = false;
this.aClass156_646.method2171();
var1.glDrawElements(4, this.anInt655, 5125, 0L);
} else {
var1.glInterleavedArrays(10787, 16, this.aByteBuffer647);
HDToolKit.aBoolean1798 = false;
var1.glDrawElements(4, this.anInt655, 5125, this.aByteBuffer652);
}
}
final void method1022(int[] var1) {
for (int var2 = 1; var2 < var1.length - 1; ++var2) {
this.anIntArray643[this.anInt655++] = var1[0];
this.anIntArray643[this.anInt655++] = var1[var2];
this.anIntArray643[this.anInt655++] = var1[var2 + 1];
}
}
}