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

@ -1,7 +1,5 @@
package org.runite;
import org.crandor.game.node.entity.player.link.ConfigurationManager;
import org.crandor.net.packet.out.Config;
import org.runite.jagex.GameShell;
/**

View file

@ -35,8 +35,8 @@ final class Class114 {
static final float[] method1705(int var0, int var1) {
try {
float var2 = Class92.method1514() + Class92.method1505();
int var3 = Class92.method1510();
float var2 = Class92.method1514() + Class92.getLightingModelAmbient();
int var3 = Class92.screenColorRgb();
float var7 = 0.58823526F;
MouseListeningClass.aFloatArray1919[3] = 1.0F;
float var4 = (float)(var3 >> 16 & 255) / 255.0F;

View file

@ -1879,9 +1879,9 @@ final class Class140_Sub1_Sub1 extends Model {
if(var3) {
if(!Class106.aBoolean1441) {
var7 = (int)Class92.aFloatArray1312[0];
var8 = (int)Class92.aFloatArray1312[1];
var9 = (int)Class92.aFloatArray1312[2];
var7 = (int)Class92.light0Position[0];
var8 = (int)Class92.light0Position[1];
var9 = (int)Class92.light0Position[2];
var10 = (int)Math.sqrt((double)(var7 * var7 + var8 * var8 + var9 * var9));
var11 = (int)((float)this.aShort3849 * 1.3F);
var12 = this.aShort3819 * var10 >> 8;
@ -3113,22 +3113,22 @@ final class Class140_Sub1_Sub1 extends Model {
int var2;
int var3;
if(Class92.anInt1314 > 0) {
var2 = this.aClass6_3835.aShort95 - (this.aClass6_3835.aShort92 * Class92.anInt1314 >> 8) >> 3;
var3 = this.aClass6_3835.aShort94 - (this.aClass6_3835.aShort91 * Class92.anInt1314 >> 8) >> 3;
if(Class92.lightX > 0) {
var2 = this.aClass6_3835.aShort95 - (this.aClass6_3835.aShort92 * Class92.lightX >> 8) >> 3;
var3 = this.aClass6_3835.aShort94 - (this.aClass6_3835.aShort91 * Class92.lightX >> 8) >> 3;
} else {
var2 = this.aClass6_3835.aShort95 - (this.aClass6_3835.aShort91 * Class92.anInt1314 >> 8) >> 3;
var3 = this.aClass6_3835.aShort94 - (this.aClass6_3835.aShort92 * Class92.anInt1314 >> 8) >> 3;
var2 = this.aClass6_3835.aShort95 - (this.aClass6_3835.aShort91 * Class92.lightX >> 8) >> 3;
var3 = this.aClass6_3835.aShort94 - (this.aClass6_3835.aShort92 * Class92.lightX >> 8) >> 3;
}
int var4;
int var5;
if(Class92.anInt1315 > 0) {
var4 = this.aClass6_3835.aShort97 - (this.aClass6_3835.aShort92 * Class92.anInt1315 >> 8) >> 3;
var5 = this.aClass6_3835.aShort96 - (this.aClass6_3835.aShort91 * Class92.anInt1315 >> 8) >> 3;
if(Class92.lightY > 0) {
var4 = this.aClass6_3835.aShort97 - (this.aClass6_3835.aShort92 * Class92.lightY >> 8) >> 3;
var5 = this.aClass6_3835.aShort96 - (this.aClass6_3835.aShort91 * Class92.lightY >> 8) >> 3;
} else {
var4 = this.aClass6_3835.aShort97 - (this.aClass6_3835.aShort91 * Class92.anInt1315 >> 8) >> 3;
var5 = this.aClass6_3835.aShort96 - (this.aClass6_3835.aShort92 * Class92.anInt1315 >> 8) >> 3;
var4 = this.aClass6_3835.aShort97 - (this.aClass6_3835.aShort91 * Class92.lightY >> 8) >> 3;
var5 = this.aClass6_3835.aShort96 - (this.aClass6_3835.aShort92 * Class92.lightY >> 8) >> 3;
}
int var6 = var3 - var2 + 1;
@ -3156,8 +3156,8 @@ final class Class140_Sub1_Sub1 extends Model {
int var14;
int var15;
while(var9 < this.anInt3823) {
int var10 = (this.anIntArray3822[var9] - (this.anIntArray3845[var9] * Class92.anInt1314 >> 8) >> 3) - var2;
int var11 = (this.anIntArray3848[var9] - (this.anIntArray3845[var9] * Class92.anInt1315 >> 8) >> 3) - var4;
int var10 = (this.anIntArray3822[var9] - (this.anIntArray3845[var9] * Class92.lightX >> 8) >> 3) - var2;
int var11 = (this.anIntArray3848[var9] - (this.anIntArray3845[var9] * Class92.lightY >> 8) >> 3) - var4;
int var12 = this.anIntArray3838[var9];
var13 = this.anIntArray3838[var9 + 1];
var14 = var12;

View file

@ -107,8 +107,8 @@ final class Class141 {
int var10 = var4 << 7;
int var11 = var6 + var7 + var8 + var9 >> 2;
int var12 = var5 << 7;
int var13 = var10 - (var11 * Class92.anInt1314 >> 8) >> 3;
int var14 = var12 - (var11 * Class92.anInt1315 >> 8) >> 3;
int var13 = var10 - (var11 * Class92.lightX >> 8) >> 3;
int var14 = var12 - (var11 * Class92.lightY >> 8) >> 3;
if(var0 != 0 && var0 != 1 && (var2 || var3)) {
method2050(aClass109_Sub1Array1843[var0], aClass109_Sub1_1840, var13 + 1, var14 + 1, var1, var2);
} else {
@ -373,8 +373,8 @@ final class Class141 {
static final void method2047(LDIndexedSprite var0, int var1, int var2, int var3) {
if(var0 != null) {
int var4 = var1 - (var2 * Class92.anInt1314 >> 8) >> 3;
int var5 = var3 - (var2 * Class92.anInt1315 >> 8) >> 3;
int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3;
int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3;
method2042(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1);
}
}
@ -406,8 +406,8 @@ final class Class141 {
if(var0 == null) {
return false;
} else {
int var4 = var1 - (var2 * Class92.anInt1314 >> 8) >> 3;
int var5 = var3 - (var2 * Class92.anInt1315 >> 8) >> 3;
int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3;
int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3;
return method2040(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1);
}
}
@ -449,8 +449,8 @@ final class Class141 {
static final void method2051(LDIndexedSprite var0, int var1, int var2, int var3) {
if(var0 != null) {
int var4 = var1 - (var2 * Class92.anInt1314 >> 8) >> 3;
int var5 = var3 - (var2 * Class92.anInt1315 >> 8) >> 3;
int var4 = var1 - (var2 * Class92.lightX >> 8) >> 3;
int var5 = var3 - (var2 * Class92.lightY >> 8) >> 3;
method2034(var0, aClass109_Sub1_1840, var4 + 1, var5 + 1);
}
}

View file

@ -167,9 +167,9 @@ final class Class158_Sub1 extends Class158 implements ImageProducer, ImageObserv
int var24;
if(HDToolKit.highDetail) {
if(!Class106.aBoolean1441) {
var10 = (int)Class92.aFloatArray1312[0];
var11 = (int)Class92.aFloatArray1312[1];
var37 = (int)Class92.aFloatArray1312[2];
var10 = (int)Class92.light0Position[0];
var11 = (int)Class92.light0Position[1];
var37 = (int)Class92.light0Position[2];
var13 = (int)Math.sqrt((double)(var11 * var11 + (var10 * var10 - -(var37 * var37))));
var14 = 1024 * var13 >> 8;

View file

@ -140,7 +140,7 @@ final class Class3_Sub13_Sub11 extends Class3_Sub13 {
}
Class86.anInt1191 = Class115.aClass86ArrayArray1581[var2][var1].anInt1178;
Class92.method1509((float)Class46.anInt741, (float)Class3_Sub13_Sub22.anInt3274, (float)Class86.anInt1191);
Class92.setLightPosition((float)Class46.anInt741, (float)Class3_Sub13_Sub22.anInt3274, (float)Class86.anInt1191);
} catch (RuntimeException var4) {
throw Class44.method1067(var4, "fm.C(" + var0 + ',' + var1 + ',' + var2 + ')');
}

View file

@ -104,9 +104,9 @@ static RSString aClass94_3397 = aClass94_3400;
static final void method324(int var0, boolean var1) {
try {
Class92.method1506(Class92.anInt1322, (0.7F + (float)var0 * 0.1F) * 1.1523438F, 0.69921875F, 0.69921875F);
Class92.method1509(-50.0F, -60.0F, -50.0F);
Class92.method1508(Class92.anInt1316, 0);
Class92.setLightParams(Class92.defaultScreenColorRgb, (0.7F + (float)var0 * 0.1F) * 1.1523438F, 0.69921875F, 0.69921875F);
Class92.setLightPosition(-50.0F, -60.0F, -50.0F);
Class92.setFogValues(Class92.defaulFogColorRgb, 0);
Class92.method1504();
if(var1) {
aByteArrayArrayArray3390 = (byte[][][])((byte[][][])null);

View file

@ -942,13 +942,13 @@ final class Class3_Sub30_Sub1 extends RSByteBuffer {
Class41.anInt689 = var13 * Class132.anInt1736 + var12 * Class100.anInt1407 >> 8;
}
Class92.method1506(CacheIndex.anInt1950, Class30.aFloat578, Class3_Sub13_Sub36.aFloat3424, Class12.aFloat319);
Class92.method1508(Class3_Sub28_Sub12.anInt3652, Class41.anInt689);
Class92.setLightParams(CacheIndex.anInt1950, Class30.aFloat578, Class3_Sub13_Sub36.aFloat3424, Class12.aFloat319);
Class92.setFogValues(Class3_Sub28_Sub12.anInt3652, Class41.anInt689);
if(var4 != 1) {
aClass94_3807 = (RSString)null;
}
Class92.method1509((float)Class46.anInt741, (float)Class3_Sub13_Sub22.anInt3274, (float)Class86.anInt1191);
Class92.setLightPosition((float)Class46.anInt741, (float)Class3_Sub13_Sub22.anInt3274, (float)Class86.anInt1191);
Class92.method1504();
return Class3_Sub28_Sub12.anInt3652;
} catch (RuntimeException var16) {

View file

@ -460,7 +460,7 @@ final class Class68 {
var3.glTexEnvi(8960, '\u8590', 768);
var3.glBlendFunc(770, 771);
var3.glDepthMask(true);
var3.glFogfv(2918, Class92.aFloatArray1319, 0);
var3.glFogfv(2918, Class92.fogColor, 0);
var3.glEnableClientState('\u8078');
HDToolKit.method1846();
}

View file

@ -236,8 +236,8 @@ final class Class72 {
static final float[] method1297(byte var0) {
try {
float var1 = Class92.method1514() + Class92.method1505();
int var2 = Class92.method1510();
float var1 = Class92.method1514() + Class92.getLightingModelAmbient();
int var2 = Class92.screenColorRgb();
float var3 = (float)(255 & var2 >> 16) / 255.0F;
MouseListeningClass.aFloatArray1919[3] = 1.0F;
if(var0 != -50) {

View file

@ -107,11 +107,11 @@ final class Class86 {
public Class86() {
try {
this.anInt1177 = Class92.anInt1322;
this.anInt1177 = Class92.defaultScreenColorRgb;
this.aFloat1189 = 1.2F;
this.anInt1178 = -50;
this.aFloat1187 = 1.1523438F;
this.anInt1175 = Class92.anInt1316;
this.anInt1175 = Class92.defaulFogColorRgb;
this.anInt1181 = -60;
this.aFloat1190 = 0.69921875F;
this.anInt1184 = 0;
@ -125,7 +125,7 @@ final class Class86 {
try {
int var2 = var1.getByte((byte)-92);
if(~(var2 & 1) == -1) {
this.anInt1177 = Class92.anInt1322;
this.anInt1177 = Class92.defaultScreenColorRgb;
} else {
this.anInt1177 = var1.getInt();
}
@ -159,7 +159,7 @@ final class Class86 {
}
if((32 & var2) == 0) {
this.anInt1175 = Class92.anInt1316;
this.anInt1175 = Class92.defaulFogColorRgb;
} else {
this.anInt1175 = var1.getInt();
}

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;
}
}

View file

@ -406,8 +406,8 @@ public final class Client extends GameShell {
Class3_Sub25.aShortArray2548 = Class164_Sub1.aShortArray3011;
} else {
Class101.aBoolean1419 = true;
Class92.anInt1322 = 16777215;
Class92.anInt1316 = 0;
Class92.defaultScreenColorRgb = 16777215;
Class92.defaulFogColorRgb = 0;
Class15.aShortArrayArray344 = Class118.aShortArrayArray1619;
Class101.aShortArrayArray1429 = Class75_Sub1.aShortArrayArray2634;
Class3_Sub25.aShortArray2548 = Class2.aShortArray63;