Fixed fog

This commit is contained in:
Ethan 2019-11-06 19:29:47 -05:00
parent 13171d3d78
commit 157be0fab6
13 changed files with 141 additions and 136 deletions

View file

@ -4,129 +4,136 @@ import javax.media.opengl.GL;
final class Class92 {
static float[] aFloatArray1312 = new float[4];
private static int anInt1313 = -1;
static int anInt1314;
static int anInt1315;
static int anInt1316 = 13156520;
private static float aFloat1317 = -1.0F;
private static float aFloat1318 = -1.0F;
static float[] aFloatArray1319 = new float[4];
private static float aFloat1320;
private static float[] aFloatArray1321 = new float[4];
static int anInt1322 = 16777215;
private static int anInt1323 = -1;
private static int anInt1324 = -1;
static float[] light0Position = new float[4];
private static int screenColorRgb = -1;
static int lightX;
static int lightY;
static int defaulFogColorRgb = 13156520;
private static float light0Diffuse = -1.0F;
private static float light1Diffuse = -1.0F;
static float[] fogColor = new float[4];
private static float lightModelAmbient;
private static float[] light1Position = new float[4];
static int defaultScreenColorRgb = 16777215;
private static int fogOffset = -1;
private static int fogColorRGB = -1;
static final void method1504() {
GL var0 = HDToolKit.gl;
var0.glLightfv(16384, 4611, aFloatArray1312, 0);
var0.glLightfv(16385, 4611, aFloatArray1321, 0);
GL gl = HDToolKit.gl;
gl.glLightfv(16384, 4611, light0Position, 0);
gl.glLightfv(16385, 4611, light1Position, 0);
}
static final float method1505() {
return aFloat1317;
static final float getLightingModelAmbient() {
return light0Diffuse;
}
static final void method1506(int var0, float var1, float var2, float var3) {
if(anInt1313 != var0 || aFloat1320 != var1 || aFloat1317 != var2 || aFloat1318 != var3) {
anInt1313 = var0;
aFloat1320 = var1;
aFloat1317 = var2;
aFloat1318 = var3;
javax.media.opengl.GL var4 = HDToolKit.gl;
float var5 = (float)(var0 >> 16 & 255) / 255.0F;
float var6 = (float)(var0 >> 8 & 255) / 255.0F;
float var7 = (float)(var0 & 255) / 255.0F;
float[] var8 = new float[]{var1 * var5, var1 * var6, var1 * var7, 1.0F};
var4.glLightModelfv(2899, var8, 0);
float[] var9 = new float[]{var2 * var5, var2 * var6, var2 * var7, 1.0F};
var4.glLightfv(16384, 4609, var9, 0);
float[] var10 = new float[]{-var3 * var5, -var3 * var6, -var3 * var7, 1.0F};
var4.glLightfv(16385, 4609, var10, 0);
}
static final void setLightParams(int color, float ambientMod, float l0Diffuse, float l1Diffuse) {
if (screenColorRgb != color || lightModelAmbient != ambientMod || light0Diffuse != l0Diffuse || light1Diffuse != l1Diffuse) {
screenColorRgb = color;
lightModelAmbient = ambientMod;
light0Diffuse = l0Diffuse;
light1Diffuse = l1Diffuse;
final GL gl = HDToolKit.gl;
final float red = (color >> 16 & 0xff) / 255.0F;
final float green = (color >> 8 & 0xff) / 255.0F;
final float blue = (color & 0xff) / 255.0F;
final float[] lightModelAmbientParams = { ambientMod * red, ambientMod * green, ambientMod * blue, 1.0F };
gl.glLightModelfv(2899, lightModelAmbientParams, 0);//LIGHT_MODEL_AMBIENT
final float[] light0Params = { l0Diffuse * red, l0Diffuse * green, l0Diffuse * blue, 1.0F };
gl.glLightfv(16384, 4609, light0Params, 0);//LIGHT0, DIFFUSE
final float[] light1Params = { -l1Diffuse * red, -l1Diffuse * green, -l1Diffuse * blue, 1.0F };
gl.glLightfv(16385, 4609, light1Params, 0);//LIGHT1, DIFFUSE
}
}
public static void method1507() {
aFloatArray1312 = null;
aFloatArray1321 = null;
aFloatArray1319 = null;
light0Position = null;
light1Position = null;
fogColor = null;
}
static final void method1508(int var0, int var1) {
if(anInt1324 != var0 || anInt1323 != var1) {
anInt1324 = var0;
anInt1323 = var1;
javax.media.opengl.GL var2 = HDToolKit.gl;
byte var3 = 50;
short var4 = 3584;
aFloatArray1319[0] = (float)(var0 >> 16 & 255) / 255.0F;
aFloatArray1319[1] = (float)(var0 >> 8 & 255) / 255.0F;
aFloatArray1319[2] = (float)(var0 & 255) / 255.0F;
var2.glFogi(2917, 9729);
var2.glFogf(2914, 0.95F);
var2.glHint(3156, 4353);
int var5 = var4 / 2/* - 512 - var1*/;
if(var5 < var3) {
var5 = var3;
static final void setFogValues(int fogCol, int fogOff) {
if(fogColorRGB != fogCol || fogOffset != fogOff) {
fogColorRGB = fogCol;
fogOffset = fogOff;
final GL gl = HDToolKit.gl;
byte lowestFogStart = 50;
//short baseFogStart = 3584; This is unused because it was originally this but to avoid math jagex simplified it.
fogColor[0] = (fogCol >> 16 & 0xff) / 255.0F;
fogColor[1] = (fogCol >> 8 & 0xff) / 255.0F;
fogColor[2] = (fogCol & 0xff) / 255.0F;
//2917 FOG_MODE
//9729 LINEAR
gl.glFogi(2917, 9729);
//FOG_DENSITY
gl.glFogf(2914, 0.95F);
//3156 = FOG_HINT
//4353 = FASTEST, 4354 = NICEST, 4352 = DONT_CARE
gl.glHint(3156, 4353);
int fogStart = 3072 - fogOff;//baseFogStart - 512 - fogOff
if (fogStart < lowestFogStart) {
fogStart = lowestFogStart;
}
var2.glFogf(2915, (float)var5);
var2.glFogf(2916, (float)(var4 - 256));
var2.glFogfv(2918, aFloatArray1319, 0);
//FOG_START
gl.glFogf(2915, fogStart);
//FOG_END
gl.glFogf(2916, 3328.0F);//baseFogStart - 256
//FOG_COLOR
gl.glFogfv(2918, fogColor, 0);
}
}
static final void method1509(float var0, float var1, float var2) {
if(aFloatArray1312[0] != var0 || aFloatArray1312[1] != var1 || aFloatArray1312[2] != var2) {
aFloatArray1312[0] = var0;
aFloatArray1312[1] = var1;
aFloatArray1312[2] = var2;
aFloatArray1321[0] = -var0;
aFloatArray1321[1] = -var1;
aFloatArray1321[2] = -var2;
anInt1314 = (int)(var0 * 256.0F / var1);
anInt1315 = (int)(var2 * 256.0F / var1);
static final void setLightPosition(float x, float y, float z) {
if(light0Position[0] != x || light0Position[1] != y || light0Position[2] != z) {
light0Position[0] = x;
light0Position[1] = y;
light0Position[2] = z;
light1Position[0] = -x;
light1Position[1] = -y;
light1Position[2] = -z;
lightX = (int)(x * 256.0F / y);
lightY = (int)(z * 256.0F / y);
}
}
static final int method1510() {
return anInt1313;
static final int screenColorRgb() {
return screenColorRgb;
}
static final void method1511() {
javax.media.opengl.GL var0 = HDToolKit.gl;
var0.glColorMaterial(1028, 5634);
var0.glEnable(2903);
float[] var1 = new float[]{0.0F, 0.0F, 0.0F, 1.0F};
var0.glLightfv(16384, 4608, var1, 0);
var0.glEnable(16384);
float[] var2 = new float[]{0.0F, 0.0F, 0.0F, 1.0F};
var0.glLightfv(16385, 4608, var2, 0);
var0.glEnable(16385);
anInt1313 = -1;
anInt1324 = -1;
method1513();
final GL gl = HDToolKit.gl;
gl.glColorMaterial(1028, 5634);//FRONT, AMBIENT_AND_DIFFUSE
gl.glEnable(2903);//COLOR_MATERIAL
final float[] light0Params = { 0.0F, 0.0F, 0.0F, 1.0F };
gl.glLightfv(16384, 4608, light0Params, 0);//LIGHT0, AMBIENT
gl.glEnable(16384);//LIGHT0
final float[] light1Params = { 0.0F, 0.0F, 0.0F, 1.0F };
gl.glLightfv(16385, 4608, light1Params, 0);//LIGHT1, AMBIENT
gl.glEnable(16385);//LIGHT1
screenColorRgb = -1;
fogColorRGB = -1;
initDefaults();
}
static final void method1512(float[] var0) {
if(var0 == null) {
var0 = aFloatArray1319;
var0 = fogColor;
}
javax.media.opengl.GL var1 = HDToolKit.gl;
var1.glFogfv(2918, var0, 0);
GL gl = HDToolKit.gl;
gl.glFogfv(2918, var0, 0);
}
private static final void method1513() {
method1506(anInt1322, 1.1523438F, 0.69921875F, 1.2F);
method1509(-50.0F, -60.0F, -50.0F);
method1508(anInt1316, 0);
private static final void initDefaults() {
setLightParams(defaultScreenColorRgb, 1.1523438F, 0.69921875F, 1.2F);
setLightPosition(-50.0F, -60.0F, -50.0F);
setFogValues(defaulFogColorRgb, 0);
}
static final float method1514() {
return aFloat1320;
return lightModelAmbient;
}
}