forked from 2009Scape/Server
Fixed fog
This commit is contained in:
parent
13171d3d78
commit
157be0fab6
13 changed files with 141 additions and 136 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue