diff --git a/client/src/main/java/rt4/ClientProt.java b/client/src/main/java/rt4/ClientProt.java index 010c0fa..ac024d4 100644 --- a/client/src/main/java/rt4/ClientProt.java +++ b/client/src/main/java/rt4/ClientProt.java @@ -994,7 +994,7 @@ public class ClientProt { } } } - Static28.method792(GlRenderer.enabled ? 28 : 25, hasUnderWaterMap); + Static28.method792(GlRenderer.enabled ? GlobalConfig.TILE_DISTANCE : 25, hasUnderWaterMap); for (i = 0; i < 4; i++) { PathFinder.collisionMaps[i].resetFlags(); } diff --git a/client/src/main/java/rt4/GlModel.java b/client/src/main/java/rt4/GlModel.java index b0fafb1..8bab922 100644 --- a/client/src/main/java/rt4/GlModel.java +++ b/client/src/main/java/rt4/GlModel.java @@ -934,7 +934,7 @@ public final class GlModel extends Model { return; } @Pc(70) int local70 = local41 + (-local13 * arg2 + local17 * arg1 >> 16); - if (local70 >= 3584) { + if (local70 >= GlobalConfig.VIEW_DISTANCE) { return; } @Pc(84) int local84 = arg7 * arg3 + arg5 * arg4 >> 16; diff --git a/client/src/main/java/rt4/GlRenderer.java b/client/src/main/java/rt4/GlRenderer.java index f4b4d9a..e206f92 100644 --- a/client/src/main/java/rt4/GlRenderer.java +++ b/client/src/main/java/rt4/GlRenderer.java @@ -534,7 +534,7 @@ public final class GlRenderer { @Pc(35) int local35 = (arg1 + arg3 - arg5 << 8) / arg9; gl.glMatrixMode(GL2.GL_PROJECTION); gl.glLoadIdentity(); - method4175((float) local7 * aFloat34, (float) local17 * aFloat34, (float) -local35 * aFloat34, (float) -local25 * aFloat34, 50.0F, 3584.0F); + method4175((float) local7 * aFloat34, (float) local17 * aFloat34, (float) -local35 * aFloat34, (float) -local25 * aFloat34, 50.0F, (float) GlobalConfig.VIEW_DISTANCE); setViewportBounds(arg0, canvasHeight - arg1 - arg3, arg2, arg3); gl.glMatrixMode(GL2.GL_MODELVIEW); gl.glLoadIdentity(); @@ -767,7 +767,7 @@ public final class GlRenderer { @Pc(23) float local23 = (float) arg2 / 512.0F; @Pc(30) float local30 = local23 * (256.0F / (float) arg4); @Pc(37) float local37 = local23 * (256.0F / (float) arg5); - gl.glOrtho((double) ((float) local2 * local30), (double) ((float) local6 * local30), (double) ((float) -local13 * local37), (double) ((float) -local9 * local37), (double) (50 - arg3), (double) (3584 - arg3)); + gl.glOrtho((double) ((float) local2 * local30), (double) ((float) local6 * local30), (double) ((float) -local13 * local37), (double) ((float) -local9 * local37), (double) (50 - arg3), (double) (GlobalConfig.VIEW_DISTANCE - arg3)); setViewportBounds(0, 0, canvasWidth, canvasHeight); gl.glMatrixMode(GL2.GL_MODELVIEW); gl.glLoadIdentity(); diff --git a/client/src/main/java/rt4/GlobalConfig.java b/client/src/main/java/rt4/GlobalConfig.java index c79c78f..e8f9764 100644 --- a/client/src/main/java/rt4/GlobalConfig.java +++ b/client/src/main/java/rt4/GlobalConfig.java @@ -41,7 +41,9 @@ public class GlobalConfig { public static boolean USE_ISAAC = false; //endregion - public static boolean ANIMATED_SD_BACKGROUND = true; + // default distance is 28 + public static int TILE_DISTANCE = 56; + public static int VIEW_DISTANCE = TILE_DISTANCE * 128; public static boolean USE_TWEENING = true; diff --git a/client/src/main/java/rt4/Static120.java b/client/src/main/java/rt4/Static120.java index a2819ab..c2cb539 100644 --- a/client/src/main/java/rt4/Static120.java +++ b/client/src/main/java/rt4/Static120.java @@ -423,7 +423,7 @@ public final class Static120 { local4.glTexEnvi(GL2.GL_TEXTURE_ENV, GL2.GL_OPERAND0_RGB, GL2.GL_SRC_COLOR); local4.glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA); local4.glDepthMask(true); - local4.glFogfv(GL2.GL_FOG_COLOR, Static161.aFloatArray19, 0); + local4.glFogfv(GL2.GL_FOG_COLOR, Static161.fogColor, 0); local4.glEnableClientState(GL2.GL_TEXTURE_COORD_ARRAY); GlRenderer.method4173(); } diff --git a/client/src/main/java/rt4/Static156.java b/client/src/main/java/rt4/Static156.java index e7158ef..8199f3a 100644 --- a/client/src/main/java/rt4/Static156.java +++ b/client/src/main/java/rt4/Static156.java @@ -52,7 +52,7 @@ public final class Static156 { } @Pc(99) short local99; if (GlRenderer.enabled) { - local99 = 3584; + local99 = (short)GlobalConfig.VIEW_DISTANCE; } else { local99 = 3500; } @@ -110,7 +110,7 @@ public final class Static156 { GlRenderer.setLightingEnabled(false); local1.glDisable(GL2.GL_DEPTH_TEST); local1.glPushAttrib(GL2.GL_FOG_BIT); - local1.glFogf(GL2.GL_FOG_START, 3072.0F); + local1.glFogf(GL2.GL_FOG_START, (float) GlobalConfig.VIEW_DISTANCE - 512.0f); GlRenderer.disableDepthMask(); for (@Pc(19) int local19 = 0; local19 < Static36.surfaceHdTiles[0].length; local19++) { @Pc(31) GlTile local31 = Static36.surfaceHdTiles[0][local19]; diff --git a/client/src/main/java/rt4/Static161.java b/client/src/main/java/rt4/Static161.java index c86c0dc..23c584a 100644 --- a/client/src/main/java/rt4/Static161.java +++ b/client/src/main/java/rt4/Static161.java @@ -32,7 +32,7 @@ public final class Static161 { private static float aFloat20 = -1.0F; @OriginalMember(owner = "client!mk", name = "h", descriptor = "[F") - public static final float[] aFloatArray19 = new float[4]; + public static final float[] fogColor = new float[4]; @OriginalMember(owner = "client!mk", name = "j", descriptor = "[F") private static final float[] aFloatArray20 = new float[4]; @@ -41,10 +41,10 @@ public final class Static161 { public static int anInt3923 = 16777215; @OriginalMember(owner = "client!mk", name = "l", descriptor = "I") - private static int anInt3924 = -1; + private static int fogOffset = -1; @OriginalMember(owner = "client!mk", name = "m", descriptor = "I") - private static int anInt3925 = -1; + private static int fogColorRGB = -1; @OriginalMember(owner = "client!mk", name = "a", descriptor = "()V") public static void method3058() { @@ -80,26 +80,27 @@ public final class Static161 { } @OriginalMember(owner = "client!mk", name = "a", descriptor = "(II)V") - public static void method3062(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1) { - if (anInt3925 == arg0 && anInt3924 == arg1) { + public static void method3062(@OriginalArg(0) int color, @OriginalArg(1) int offset) { + if (fogColorRGB == color && fogOffset == offset) { return; } - anInt3925 = arg0; - anInt3924 = arg1; - @Pc(12) GL2 local12 = GlRenderer.gl; - aFloatArray19[0] = (float) (arg0 >> 16 & 0xFF) / 255.0F; - aFloatArray19[1] = (float) (arg0 >> 8 & 0xFF) / 255.0F; - aFloatArray19[2] = (float) (arg0 & 0xFF) / 255.0F; - local12.glFogi(GL2.GL_FOG_MODE, GL2.GL_LINEAR); - local12.glFogf(GL2.GL_FOG_DENSITY, 0.95F); - local12.glHint(GL2.GL_FOG_HINT, GL2.GL_FASTEST); - @Pc(65) int local65 = 3072 - arg1; - if (local65 < 50) { - local65 = 50; + fogColorRGB = color; + fogOffset = offset; + @Pc(12) GL2 gl = GlRenderer.gl; + fogColor[0] = (float) (color >> 16 & 0xFF) / 255.0F; + fogColor[1] = (float) (color >> 8 & 0xFF) / 255.0F; + fogColor[2] = (float) (color & 0xFF) / 255.0F; + gl.glFogi(GL2.GL_FOG_MODE, GL2.GL_LINEAR); + gl.glFogf(GL2.GL_FOG_DENSITY, 0.95F); + gl.glHint(GL2.GL_FOG_HINT, GL2.GL_FASTEST); + int fogEnd = GlobalConfig.VIEW_DISTANCE; + @Pc(65) int fogStart = fogEnd - 512 - offset; + if (fogStart < 50) { + fogStart = 50; } - local12.glFogf(GL2.GL_FOG_START, (float) local65); - local12.glFogf(GL2.GL_FOG_END, (float) 3328); - local12.glFogfv(GL2.GL_FOG_COLOR, aFloatArray19, 0); + gl.glFogf(GL2.GL_FOG_START, (float) fogStart); + gl.glFogf(GL2.GL_FOG_END, (float) fogEnd - 256.0f); + gl.glFogfv(GL2.GL_FOG_COLOR, fogColor, 0); } @OriginalMember(owner = "client!mk", name = "a", descriptor = "(FFF)V") @@ -134,14 +135,14 @@ public final class Static161 { local1.glLightfv(GL2.GL_LIGHT1, GL2.GL_AMBIENT, local55, 0); local1.glEnable(GL2.GL_LIGHT1); anInt3919 = -1; - anInt3925 = -1; + fogColorRGB = -1; method3067(); } @OriginalMember(owner = "client!mk", name = "a", descriptor = "([F)V") public static void method3066(@OriginalArg(0) float[] arg0) { if (arg0 == null) { - arg0 = aFloatArray19; + arg0 = fogColor; } @Pc(5) GL2 local5 = GlRenderer.gl; local5.glFogfv(GL2.GL_FOG_COLOR, arg0, 0); diff --git a/client/src/main/java/rt4/WaterMaterialRenderer.java b/client/src/main/java/rt4/WaterMaterialRenderer.java index c265836..05850e5 100644 --- a/client/src/main/java/rt4/WaterMaterialRenderer.java +++ b/client/src/main/java/rt4/WaterMaterialRenderer.java @@ -176,13 +176,14 @@ public final class WaterMaterialRenderer implements MaterialRenderer { local1.glCallList(this.anInt4440); @Pc(12) float local12 = 2662.4001F; local12 += (float) (Static254.anInt5559 - 128) * 0.5F; - if (local12 >= 3328.0F) { - local12 = 3327.0F; + float max = (float) GlobalConfig.VIEW_DISTANCE - 256.0f; + if (local12 >= max) { + local12 = max - 1.0f; } this.aFloatArray23[0] = 0.0F; this.aFloatArray23[1] = 0.0F; - this.aFloatArray23[2] = 1.0F / (local12 - 3328.0F); - this.aFloatArray23[3] = local12 / (local12 - 3328.0F); + this.aFloatArray23[2] = 1.0F / (local12 - max); + this.aFloatArray23[3] = local12 / (local12 - max); local1.glTexGenfv(GL2.GL_S, GL2.GL_EYE_PLANE, this.aFloatArray23, 0); local1.glPopMatrix(); local1.glActiveTexture(GL2.GL_TEXTURE0);