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

161 lines
5.4 KiB
Java

package org.runite.client;
import javax.media.opengl.GL;
import java.nio.ByteBuffer;
final class WaterMovementShader implements ShaderInterface {
private int anInt2177 = -1;
private static final float[] color = new float[]{0.1F, 0.1F, 0.15F, 0.1F};
private final float[] aFloatArray2179 = new float[4];
private int textureId = -1;
private int anInt2181 = -1;
private void method1699() {
byte[] var1 = new byte[]{(byte)0, (byte)-1};
GL var2 = HDToolKit.gl;
int[] var3 = new int[1];
var2.glGenTextures(1, var3, 0);
var2.glBindTexture(3552, var3[0]);
var2.glTexImage1D(3552, 0, 6406, 2, 0, 6406, 5121, ByteBuffer.wrap(var1));
var2.glTexParameteri(3552, 10241, 9729);
var2.glTexParameteri(3552, 10240, 9729);
var2.glTexParameteri(3552, 10242, '\u812f');
this.textureId = var3[0];
}
private void method1701() {
GL var1 = HDToolKit.gl;
this.anInt2177 = var1.glGenLists(2);
var1.glNewList(this.anInt2177, 4864);
var1.glTexEnvi(8960, '\u8590', 768);
var1.glTexEnvi(8960, '\u8581', '\u8576');
var1.glTexEnvf(8960, '\u8573', 2.0F);
var1.glTexEnvi(8960, '\u8589', '\u8576');
var1.glTexGeni(8192, 9472, 9217);
var1.glTexGeni(8193, 9472, 9217);
var1.glTexGenfv(8192, 9473, new float[]{9.765625E-4F, 0.0F, 0.0F, 0.0F}, 0);
var1.glTexGenfv(8193, 9473, new float[]{0.0F, 0.0F, 9.765625E-4F, 0.0F}, 0);
var1.glEnable(3168);
var1.glEnable(3169);
if(Class88.Texture3DEnabled) {
var1.glBindTexture('\u806f', Class88.anInt1228);
var1.glTexGeni(8194, 9472, 9217);
var1.glTexGeni(8195, 9472, 9217);
var1.glTexGenfv(8195, 9473, new float[]{0.0F, 0.0F, 0.0F, 1.0F}, 0);
var1.glEnable(3170);
var1.glEnable(3171);
var1.glEnable('\u806f');
}
var1.glActiveTexture('\u84c1');
var1.glEnable(3552);
var1.glBindTexture(3552, this.textureId);
var1.glTexEnvi(8960, '\u8571', '\u8575');
var1.glTexEnvi(8960, '\u8580', '\u8576');
var1.glTexEnvi(8960, '\u8582', 5890);
var1.glTexEnvi(8960, '\u8572', '\u8575');
var1.glTexEnvi(8960, '\u8588', '\u8576');
var1.glTexEnvi(8960, '\u858a', 5890);
var1.glEnable(3168);
var1.glTexGeni(8192, 9472, 9216);
var1.glPushMatrix();
var1.glLoadIdentity();
var1.glEndList();
var1.glNewList(this.anInt2177 + 1, 4864);
var1.glActiveTexture('\u84c1');
var1.glDisable(3552);
var1.glDisable(3168);
var1.glTexEnvi(8960, '\u8571', 8448);
var1.glTexEnvi(8960, '\u8580', 5890);
var1.glTexEnvi(8960, '\u8582', '\u8576');
var1.glTexEnvi(8960, '\u8572', 8448);
var1.glTexEnvi(8960, '\u8588', 5890);
var1.glTexEnvi(8960, '\u858a', '\u8576');
var1.glActiveTexture('\u84c0');
var1.glTexEnvi(8960, '\u8590', 768);
var1.glTexEnvi(8960, '\u8581', '\u8578');
var1.glTexEnvf(8960, '\u8573', 1.0F);
var1.glTexEnvi(8960, '\u8589', '\u8578');
var1.glDisable(3168);
var1.glDisable(3169);
if(Class88.Texture3DEnabled) {
var1.glDisable(3170);
var1.glDisable(3171);
var1.glDisable('\u806f');
}
var1.glEndList();
}
public final void method21() {
HDToolKit.gl.glCallList(this.anInt2177 + 1);
}
public final void method23(int var1) {
GL var2 = HDToolKit.gl;
var2.glActiveTexture('\u84c1');
var2.glTexEnvfv(8960, 8705, Unsorted.aFloatArray1934, 0);
var2.glActiveTexture('\u84c0');
if((var1 & 1) == 1) {
if(Class88.Texture3DEnabled) {
if(this.anInt2181 != HDToolKit.anInt1791) {
this.aFloatArray2179[0] = 0.0F;
this.aFloatArray2179[1] = 0.0F;
this.aFloatArray2179[2] = 0.0F;
this.aFloatArray2179[3] = (float)HDToolKit.anInt1791 * 0.0050F;//Water moving speed?
var2.glTexGenfv(8194, 9473, this.aFloatArray2179, 0);//R, OBJECT_PLANE
this.anInt2181 = HDToolKit.anInt1791;
}
} else {
HDToolKit.bindTexture2D(Class88.anIntArray1224[HDToolKit.anInt1791 * 64 / 100 % 64]);
}
} else if(Class88.Texture3DEnabled) {
this.aFloatArray2179[0] = 0.0F;
this.aFloatArray2179[1] = 0.0F;
this.aFloatArray2179[2] = 0.0F;
this.aFloatArray2179[3] = 0.0F;
var2.glTexGenfv(8194, 9473, this.aFloatArray2179, 0);
} else {
HDToolKit.bindTexture2D(Class88.anIntArray1224[0]);
}
}
public final void method22() {
GL var1 = HDToolKit.gl;
HDToolKit.method1856(2);
HDToolKit.method1847(2);
HDToolKit.method1823();
var1.glCallList(this.anInt2177);
float var2 = 2662.4001F;
var2 += (float)(Class140_Sub7.anInt2938 - 128) * 0.5F;
if(var2 >= 3328.0F) {
var2 = 3327.0F;
}
this.aFloatArray2179[0] = 0.0F;
this.aFloatArray2179[1] = 0.0F;
this.aFloatArray2179[2] = 1.0F / (var2 - 3328.0F);
this.aFloatArray2179[3] = var2 / (var2 - 3328.0F);
var1.glTexGenfv(8192, 9474, this.aFloatArray2179, 0);//GL_ENABLE_BIT, GL_EYE_PLANE
var1.glPopMatrix();
var1.glActiveTexture('\u84c0');//GL_TEXTURE0
var1.glTexEnvfv(8960, 8705, color, 0);//GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR
}
public final int method24() {
return 15;
}
public WaterMovementShader() {
this.method1699();
this.method1701();
}
}