mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2025-12-09 16:45:46 -07:00
Fixed crash when closing the worldmap sometimes
This commit is contained in:
parent
8dc27ef51e
commit
77bfb744bc
23 changed files with 111 additions and 108 deletions
|
|
@ -67,4 +67,19 @@ public class ColorUtils {
|
|||
}
|
||||
return (local188 >> 2 << 10) + (local159 >> 5 << 7) + (local164 >> 1);
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!pf", name = "a", descriptor = "(II)[F")
|
||||
public static float[] getRgbFloat(@OriginalArg(0) int arg0) {
|
||||
@Pc(7) float local7 = Static161.method3068() + Static161.method3059();
|
||||
@Pc(9) int local9 = Static161.method3064();
|
||||
@Pc(11) float local11 = 0.58823526F;
|
||||
Static251.aFloatArray28[3] = 1.0F;
|
||||
@Pc(24) float local24 = (float) (local9 >> 16 & 0xFF) / 255.0F;
|
||||
@Pc(33) float local33 = (float) (local9 >> 8 & 0xFF) / 255.0F;
|
||||
Static251.aFloatArray28[1] = local7 * (float) (arg0 >> 8 & 0xFF) / 255.0F * local33 * local11;
|
||||
Static251.aFloatArray28[0] = local7 * local11 * local24 * ((float) (arg0 >> 16 & 0xFF) / 255.0F);
|
||||
@Pc(74) float local74 = (float) (local9 & 0xFF) / 255.0F;
|
||||
Static251.aFloatArray28[2] = (float) (arg0 & 0xFF) / 255.0F * local74 * local11 * local7;
|
||||
return Static251.aFloatArray28;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -206,7 +206,7 @@ public final class GlModel extends Model {
|
|||
if (arg0.aShortArray23 != null) {
|
||||
local135 = arg0.aShortArray23[local125];
|
||||
if (local135 != -1) {
|
||||
local131 = Rasteriser.textureProvider.method3237(local135 & 0xFFFF);
|
||||
local131 = Rasteriser.textureProvider.getMaterialType(local135 & 0xFFFF);
|
||||
local133 = Rasteriser.textureProvider.method3228(local135 & 0xFFFF);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -566,7 +566,7 @@ public final class GlRenderer {
|
|||
}
|
||||
|
||||
@OriginalMember(owner = "client!tf", name = "p", descriptor = "()V")
|
||||
public static void method4173() {
|
||||
public static void restoreLighting() {
|
||||
if (Preferences.highDetailLighting) {
|
||||
setLightingEnabled(true);
|
||||
setNormalArrayEnabled(true);
|
||||
|
|
|
|||
|
|
@ -89,27 +89,27 @@ public final class GlTile extends Node {
|
|||
private int anInt2489 = 0;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "y", descriptor = "I")
|
||||
public final int anInt2485;
|
||||
public final int texture;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "V", descriptor = "F")
|
||||
private final float aFloat12;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "M", descriptor = "Z")
|
||||
public final boolean aBoolean140;
|
||||
public final boolean blend;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "u", descriptor = "Z")
|
||||
private final boolean aBoolean139;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "C", descriptor = "I")
|
||||
public final int anInt2486;
|
||||
public final int underwaterColor;
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "<init>", descriptor = "(IFZZI)V")
|
||||
public GlTile(@OriginalArg(0) int arg0, @OriginalArg(1) float arg1, @OriginalArg(2) boolean arg2, @OriginalArg(3) boolean arg3, @OriginalArg(4) int arg4) {
|
||||
this.anInt2485 = arg0;
|
||||
this.texture = arg0;
|
||||
this.aFloat12 = arg1;
|
||||
this.aBoolean140 = arg2;
|
||||
this.blend = arg2;
|
||||
this.aBoolean139 = arg3;
|
||||
this.anInt2486 = arg4;
|
||||
this.underwaterColor = arg4;
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "a", descriptor = "()V")
|
||||
|
|
@ -137,7 +137,7 @@ public final class GlTile extends Node {
|
|||
this.anIntArray231 = new int[this.anInt2484];
|
||||
this.anIntArrayArray17 = new int[this.anInt2484][];
|
||||
this.aClass133_8 = new HashTable(Static165.clp2(this.anInt2482));
|
||||
if (this.aBoolean140) {
|
||||
if (this.blend) {
|
||||
this.anIntArrayArray18 = new int[this.anInt2484][];
|
||||
this.aBooleanArray54 = new boolean[this.anInt2484];
|
||||
}
|
||||
|
|
@ -248,7 +248,7 @@ public final class GlTile extends Node {
|
|||
local68 = arg0[this.anIntArray231[local47]][this.anIntArray228[local47]][this.anIntArray227[local47]];
|
||||
if (local68 != null && local68.aBoolean45) {
|
||||
local78 = this.anIntArrayArray17[local47];
|
||||
if (this.aBoolean140) {
|
||||
if (this.blend) {
|
||||
local86 = this.anIntArrayArray18[local47];
|
||||
if (local86 != null) {
|
||||
for (local90 = 0; local90 < local86.length; local90++) {
|
||||
|
|
@ -271,7 +271,7 @@ public final class GlTile extends Node {
|
|||
local68 = arg0[this.anIntArray231[local47]][this.anIntArray228[local47]][this.anIntArray227[local47]];
|
||||
if (local68 != null && local68.aBoolean45) {
|
||||
local78 = this.anIntArrayArray17[local47];
|
||||
if (this.aBoolean140) {
|
||||
if (this.blend) {
|
||||
local86 = this.anIntArrayArray18[local47];
|
||||
if (local86 != null) {
|
||||
for (local90 = 0; local90 < local86.length; local90++) {
|
||||
|
|
@ -293,50 +293,50 @@ public final class GlTile extends Node {
|
|||
if (aClass3_Sub15_3.offset == 0 && aClass3_Sub15_2.offset == 0) {
|
||||
return;
|
||||
}
|
||||
@Pc(257) GL2 local257 = GlRenderer.gl;
|
||||
if (this.anInt2485 == -1 || arg2) {
|
||||
@Pc(257) GL2 gl = GlRenderer.gl;
|
||||
if (this.texture == -1 || arg2) {
|
||||
GlRenderer.setTextureId(-1);
|
||||
MaterialManager.setMaterial(0, 0);
|
||||
} else {
|
||||
Rasteriser.textureProvider.method3227(this.anInt2485);
|
||||
Rasteriser.textureProvider.method3227(this.texture);
|
||||
}
|
||||
@Pc(282) int local282 = this.aBoolean139 ? 40 : 36;
|
||||
@Pc(282) int i = this.aBoolean139 ? 40 : 36;
|
||||
if (this.aClass155_3 == null) {
|
||||
if (GlRenderer.arbVboSupported) {
|
||||
local257.glBindBuffer(GL2.GL_ARRAY_BUFFER, 0);
|
||||
gl.glBindBuffer(GL2.GL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
this.aByteBuffer3.position(0);
|
||||
local257.glVertexPointer(3, GL2.GL_FLOAT, local282, this.aByteBuffer3);
|
||||
gl.glVertexPointer(3, GL2.GL_FLOAT, i, this.aByteBuffer3);
|
||||
this.aByteBuffer3.position(12);
|
||||
local257.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, local282, this.aByteBuffer3);
|
||||
gl.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, i, this.aByteBuffer3);
|
||||
if (Preferences.highDetailLighting) {
|
||||
this.aByteBuffer3.position(16);
|
||||
local257.glNormalPointer(GL2.GL_FLOAT, local282, this.aByteBuffer3);
|
||||
gl.glNormalPointer(GL2.GL_FLOAT, i, this.aByteBuffer3);
|
||||
}
|
||||
this.aByteBuffer3.position(28);
|
||||
local257.glTexCoordPointer(2, GL2.GL_FLOAT, local282, this.aByteBuffer3);
|
||||
gl.glTexCoordPointer(2, GL2.GL_FLOAT, i, this.aByteBuffer3);
|
||||
if (this.aBoolean139) {
|
||||
local257.glClientActiveTexture(UnderwaterMaterialRenderer.method4607());
|
||||
gl.glClientActiveTexture(UnderwaterMaterialRenderer.method4607());
|
||||
this.aByteBuffer3.position(36);
|
||||
local257.glTexCoordPointer(1, GL2.GL_FLOAT, local282, this.aByteBuffer3);
|
||||
local257.glClientActiveTexture(GL2.GL_TEXTURE0);
|
||||
gl.glTexCoordPointer(1, GL2.GL_FLOAT, i, this.aByteBuffer3);
|
||||
gl.glClientActiveTexture(GL2.GL_TEXTURE0);
|
||||
}
|
||||
} else {
|
||||
this.aClass155_3.method4516();
|
||||
local257.glVertexPointer(3, GL2.GL_FLOAT, local282, 0L);
|
||||
local257.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, local282, 12L);
|
||||
gl.glVertexPointer(3, GL2.GL_FLOAT, i, 0L);
|
||||
gl.glColorPointer(4, GL2.GL_UNSIGNED_BYTE, i, 12L);
|
||||
if (Preferences.highDetailLighting) {
|
||||
local257.glNormalPointer(GL2.GL_FLOAT, local282, 16L);
|
||||
gl.glNormalPointer(GL2.GL_FLOAT, i, 16L);
|
||||
}
|
||||
local257.glTexCoordPointer(2, GL2.GL_FLOAT, local282, 28L);
|
||||
gl.glTexCoordPointer(2, GL2.GL_FLOAT, i, 28L);
|
||||
if (this.aBoolean139) {
|
||||
local257.glClientActiveTexture(UnderwaterMaterialRenderer.method4607());
|
||||
local257.glTexCoordPointer(1, GL2.GL_FLOAT, local282, 36L);
|
||||
local257.glClientActiveTexture(GL2.GL_TEXTURE0);
|
||||
gl.glClientActiveTexture(UnderwaterMaterialRenderer.method4607());
|
||||
gl.glTexCoordPointer(1, GL2.GL_FLOAT, i, 36L);
|
||||
gl.glClientActiveTexture(GL2.GL_TEXTURE0);
|
||||
}
|
||||
}
|
||||
if (GlRenderer.arbVboSupported) {
|
||||
local257.glBindBuffer(GL2.GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||
gl.glBindBuffer(GL2.GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||
}
|
||||
if (aClass3_Sub15_3.offset != 0) {
|
||||
if (aByteBuffer5 == null || aByteBuffer5.capacity() < aClass3_Sub15_3.offset) {
|
||||
|
|
@ -347,7 +347,7 @@ public final class GlTile extends Node {
|
|||
aByteBuffer5.put(aClass3_Sub15_3.data, 0, aClass3_Sub15_3.offset);
|
||||
aByteBuffer5.flip();
|
||||
GlRenderer.method4159(arg1);
|
||||
local257.glDrawElements(GL2.GL_TRIANGLES, aClass3_Sub15_3.offset / 4, GL2.GL_UNSIGNED_INT, aByteBuffer5);
|
||||
gl.glDrawElements(GL2.GL_TRIANGLES, aClass3_Sub15_3.offset / 4, GL2.GL_UNSIGNED_INT, aByteBuffer5);
|
||||
}
|
||||
if (aClass3_Sub15_2.offset == 0) {
|
||||
return;
|
||||
|
|
@ -361,13 +361,13 @@ public final class GlTile extends Node {
|
|||
aByteBuffer4.flip();
|
||||
GlRenderer.method4159(arg1 - 100.0F);
|
||||
GlRenderer.disableDepthMask();
|
||||
local257.glDrawElements(GL2.GL_TRIANGLES, aClass3_Sub15_2.offset / 4, GL2.GL_UNSIGNED_INT, aByteBuffer4);
|
||||
gl.glDrawElements(GL2.GL_TRIANGLES, aClass3_Sub15_2.offset / 4, GL2.GL_UNSIGNED_INT, aByteBuffer4);
|
||||
GlRenderer.enableDepthMask();
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!hg", name = "a", descriptor = "(III[I[IZ)I")
|
||||
public final int method1945(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int[] arg3, @OriginalArg(4) int[] arg4, @OriginalArg(5) boolean arg5) {
|
||||
if (this.aBoolean140) {
|
||||
if (this.blend) {
|
||||
this.anIntArrayArray18[this.anInt2489] = arg4;
|
||||
this.aBooleanArray54[this.anInt2489] = arg5;
|
||||
if (arg4 != null) {
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ public final class Js5GlTextureProvider implements TextureProvider {
|
|||
|
||||
@OriginalMember(owner = "client!nk", name = "g", descriptor = "(II)I")
|
||||
@Override
|
||||
public final int method3237(@OriginalArg(0) int arg0) {
|
||||
public final int getMaterialType(@OriginalArg(0) int arg0) {
|
||||
return this.aByteArray62[arg0] & 0xFF;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -415,7 +415,7 @@ public class LightingManager {
|
|||
local4.glDepthMask(true);
|
||||
local4.glFogfv(GL2.GL_FOG_COLOR, Static161.fogColor, 0);
|
||||
local4.glEnableClientState(GL2.GL_TEXTURE_COORD_ARRAY);
|
||||
GlRenderer.method4173();
|
||||
GlRenderer.restoreLighting();
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!jf", name = "a", descriptor = "(ILclient!gi;III)V")
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import org.openrs2.deob.annotation.OriginalMember;
|
|||
import org.openrs2.deob.annotation.Pc;
|
||||
|
||||
public class MaterialManager {
|
||||
public static final int WATER = 4;
|
||||
|
||||
@OriginalMember(owner = "client!dl", name = "c", descriptor = "I")
|
||||
public static int currentType = 0;
|
||||
@OriginalMember(owner = "client!je", name = "R", descriptor = "Z")
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ public class SceneGraph {
|
|||
public static Scenery[] aClass31Array3;
|
||||
@OriginalMember(owner = "client!c", name = "bb", descriptor = "[Lclient!ec;")
|
||||
public static Scenery[] aClass31Array2;
|
||||
@OriginalMember(owner = "client!gf", name = "O", descriptor = "[[[I")
|
||||
public static int[][][] underwaterTileHeights;
|
||||
|
||||
@OriginalMember(owner = "client!km", name = "f", descriptor = "(I)Z")
|
||||
public static boolean allLevelsAreVisible() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class Static105 {
|
|||
|
||||
@OriginalMember(owner = "client!ib", name = "a", descriptor = "(IIIIIIIILclient!th;IZJ)Z")
|
||||
public static boolean method2256(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) int arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) Entity arg8, @OriginalArg(9) int arg9, @OriginalArg(10) boolean arg10, @OriginalArg(11) long arg11) {
|
||||
@Pc(6) boolean local6 = SceneGraph.tileHeights == Static80.underWaterTileHeightMap;
|
||||
@Pc(6) boolean local6 = SceneGraph.tileHeights == SceneGraph.underwaterTileHeights;
|
||||
@Pc(8) int local8 = 0;
|
||||
@Pc(17) int local17;
|
||||
for (@Pc(10) int local10 = arg1; local10 < arg1 + arg3; local10++) {
|
||||
|
|
|
|||
|
|
@ -66,10 +66,10 @@ public final class Static156 {
|
|||
@Pc(152) int local152 = Static193.anInt4539 + local113 - Static277.tileVisibilityDistance;
|
||||
if (local146 >= 0 && local152 >= 0 && local146 < SceneGraph.mapSizeX && local152 < SceneGraph.mapSizeZ) {
|
||||
@Pc(176) int local176;
|
||||
if (Static80.underWaterTileHeightMap == null) {
|
||||
if (SceneGraph.underwaterTileHeights == null) {
|
||||
local176 = SceneGraph.surfaceTileHeights[0][local146][local152] + 128 - Static123.anInt3947;
|
||||
} else {
|
||||
local176 = Static80.underWaterTileHeightMap[0][local146][local152] + 128 - Static123.anInt3947;
|
||||
local176 = SceneGraph.underwaterTileHeights[0][local146][local152] + 128 - Static123.anInt3947;
|
||||
}
|
||||
@Pc(201) int local201 = SceneGraph.surfaceTileHeights[3][local146][local152] - Static123.anInt3947 - 1000;
|
||||
Static89.aBooleanArrayArray3[local104][local113] = Static160.method3049(local130, local201, local176, local140, local99);
|
||||
|
|
@ -103,30 +103,6 @@ public final class Static156 {
|
|||
Static248.method3292(arg0, arg1, arg2, arg5, arg11, arg12, arg13, arg14);
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!mf", name = "a", descriptor = "()V")
|
||||
public static void method2959() {
|
||||
@Pc(1) GL2 local1 = GlRenderer.gl;
|
||||
local1.glDisableClientState(GL2.GL_COLOR_ARRAY);
|
||||
GlRenderer.setLightingEnabled(false);
|
||||
local1.glDisable(GL2.GL_DEPTH_TEST);
|
||||
local1.glPushAttrib(GL2.GL_FOG_BIT);
|
||||
local1.glFogf(GL2.GL_FOG_START, (float) GlobalConfig.VIEW_DISTANCE - (GlobalConfig.VIEW_FADE_DISTANCE * 2.0f));
|
||||
GlRenderer.disableDepthMask();
|
||||
for (@Pc(19) int local19 = 0; local19 < SceneGraph.surfaceHdTiles[0].length; local19++) {
|
||||
@Pc(31) GlTile local31 = SceneGraph.surfaceHdTiles[0][local19];
|
||||
if (local31.anInt2485 >= 0 && Rasteriser.textureProvider.method3237(local31.anInt2485) == 4) {
|
||||
local1.glColor4fv(Static190.method3441(local31.anInt2486), 0);
|
||||
@Pc(57) float local57 = 201.5F - (local31.aBoolean140 ? 1.0F : 0.5F);
|
||||
local31.method1944(SceneGraph.tiles, local57, true);
|
||||
}
|
||||
}
|
||||
local1.glEnableClientState(GL2.GL_COLOR_ARRAY);
|
||||
GlRenderer.method4173();
|
||||
local1.glEnable(GL2.GL_DEPTH_TEST);
|
||||
local1.glPopAttrib();
|
||||
GlRenderer.enableDepthMask();
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!mf", name = "a", descriptor = "(BLclient!wa;)Lclient!ta;")
|
||||
public static TextureOp29SubOp4 method2960(@OriginalArg(1) Buffer arg0) {
|
||||
return new TextureOp29SubOp4(arg0.g2s(), arg0.g2s(), arg0.g2s(), arg0.g2s(), arg0.g3(), arg0.g3(), arg0.g1());
|
||||
|
|
|
|||
|
|
@ -6,21 +6,6 @@ import org.openrs2.deob.annotation.Pc;
|
|||
|
||||
public final class Static190 {
|
||||
|
||||
@OriginalMember(owner = "client!pf", name = "a", descriptor = "(II)[F")
|
||||
public static float[] method3441(@OriginalArg(0) int arg0) {
|
||||
@Pc(7) float local7 = Static161.method3068() + Static161.method3059();
|
||||
@Pc(9) int local9 = Static161.method3064();
|
||||
@Pc(11) float local11 = 0.58823526F;
|
||||
Static251.aFloatArray28[3] = 1.0F;
|
||||
@Pc(24) float local24 = (float) (local9 >> 16 & 0xFF) / 255.0F;
|
||||
@Pc(33) float local33 = (float) (local9 >> 8 & 0xFF) / 255.0F;
|
||||
Static251.aFloatArray28[1] = local7 * (float) (arg0 >> 8 & 0xFF) / 255.0F * local33 * local11;
|
||||
Static251.aFloatArray28[0] = local7 * local11 * local24 * ((float) (arg0 >> 16 & 0xFF) / 255.0F);
|
||||
@Pc(74) float local74 = (float) (local9 & 0xFF) / 255.0F;
|
||||
Static251.aFloatArray28[2] = (float) (arg0 & 0xFF) / 255.0F * local74 * local11 * local7;
|
||||
return Static251.aFloatArray28;
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!pf", name = "a", descriptor = "(IIZIII)Lclient!qf;")
|
||||
public static Sprite method3443(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) boolean arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4) {
|
||||
@Pc(27) int local27 = (arg2 ? 65536 : 0) + arg1 + (arg0 << 17) + (arg4 << 19);
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ public final class Static242 {
|
|||
}
|
||||
local1.glEnableClientState(GL2.GL_COLOR_ARRAY);
|
||||
local1.glDepthMask(true);
|
||||
GlRenderer.method4173();
|
||||
GlRenderer.restoreLighting();
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!tj", name = "a", descriptor = "([BIIIII)Z")
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ public final class Static247 {
|
|||
local31 = SceneGraph.tiles[local24];
|
||||
@Pc(33) float local33 = 0.0F;
|
||||
if (GlRenderer.enabled) {
|
||||
if (Static80.underWaterTileHeightMap == SceneGraph.tileHeights) {
|
||||
if (SceneGraph.underwaterTileHeights == SceneGraph.tileHeights) {
|
||||
var9 = Static62.anIntArrayArray11[local18][local21];
|
||||
var10 = var9 & 0xFFFFFF;
|
||||
if (var10 != Static152.anInt3604) {
|
||||
|
|
|
|||
|
|
@ -74,13 +74,13 @@ public final class Static248 {
|
|||
}
|
||||
}
|
||||
}
|
||||
@Pc(240) boolean local240 = SceneGraph.tileHeights == Static80.underWaterTileHeightMap;
|
||||
@Pc(240) boolean local240 = SceneGraph.tileHeights == SceneGraph.underwaterTileHeights;
|
||||
if (GlRenderer.enabled) {
|
||||
@Pc(244) GL2 local244 = GlRenderer.gl;
|
||||
local244.glPushMatrix();
|
||||
local244.glTranslatef((float) -arg0, (float) -arg1, (float) -arg2);
|
||||
@Pc(244) GL2 gl = GlRenderer.gl;
|
||||
gl.glPushMatrix();
|
||||
gl.glTranslatef((float) -arg0, (float) -arg1, (float) -arg2);
|
||||
if (local240) {
|
||||
Static156.method2959();
|
||||
UnderwaterMaterialRenderer.applyFogFade();
|
||||
MaterialManager.setMaterial(-1, 3);
|
||||
MaterialManager.renderingUnderwater = true;
|
||||
UnderwaterMaterialRenderer.method4609();
|
||||
|
|
@ -88,10 +88,10 @@ public final class Static248 {
|
|||
Static22.anInt730 = -1;
|
||||
for (local32 = 0; local32 < Static182.aClass3_Sub14ArrayArray2[0].length; local32++) {
|
||||
@Pc(285) GlTile local285 = Static182.aClass3_Sub14ArrayArray2[0][local32];
|
||||
@Pc(294) float local294 = 251.5F - (local285.aBoolean140 ? 1.0F : 0.5F);
|
||||
if (local285.anInt2486 != Static152.anInt3604) {
|
||||
Static152.anInt3604 = local285.anInt2486;
|
||||
WaterMaterialRenderer.method619(local285.anInt2486);
|
||||
@Pc(294) float local294 = 251.5F - (local285.blend ? 1.0F : 0.5F);
|
||||
if (local285.underwaterColor != Static152.anInt3604) {
|
||||
Static152.anInt3604 = local285.underwaterColor;
|
||||
WaterMaterialRenderer.method619(local285.underwaterColor);
|
||||
Static161.method3066(WaterMaterialRenderer.method2422());
|
||||
}
|
||||
local285.method1944(SceneGraph.tiles, local294, false);
|
||||
|
|
@ -106,9 +106,9 @@ public final class Static248 {
|
|||
}
|
||||
for (local37 = 0; local37 < Static182.aClass3_Sub14ArrayArray2[local32].length; local37++) {
|
||||
@Pc(336) GlTile local336 = Static182.aClass3_Sub14ArrayArray2[local32][local37];
|
||||
@Pc(350) float local350 = 201.5F - (float) local32 * 50.0F - (local336.aBoolean140 ? 1.0F : 0.5F);
|
||||
if (local336.anInt2485 != -1 && Rasteriser.textureProvider.method3237(local336.anInt2485) == 4 && Preferences.highWaterDetail) {
|
||||
WaterMaterialRenderer.method619(local336.anInt2486);
|
||||
@Pc(350) float local350 = 201.5F - (float) local32 * 50.0F - (local336.blend ? 1.0F : 0.5F);
|
||||
if (local336.texture != -1 && Rasteriser.textureProvider.getMaterialType(local336.texture) == MaterialManager.WATER && Preferences.highWaterDetail) {
|
||||
WaterMaterialRenderer.method619(local336.underwaterColor);
|
||||
}
|
||||
local336.method1944(SceneGraph.tiles, local350, false);
|
||||
}
|
||||
|
|
@ -119,7 +119,7 @@ public final class Static248 {
|
|||
local32++;
|
||||
}
|
||||
}
|
||||
local244.glPopMatrix();
|
||||
gl.glPopMatrix();
|
||||
}
|
||||
@Pc(434) int local434;
|
||||
@Pc(438) int local438;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ public final class Static253 {
|
|||
client.audioLoop();
|
||||
@Pc(387) byte local387 = Static236.method4047() == 2 ? (byte) Static136.anInt3325 : 1;
|
||||
if (GlRenderer.enabled) {
|
||||
GlRenderer.method4173();
|
||||
GlRenderer.restoreLighting();
|
||||
GlRenderer.setDepthTestEnabled(true);
|
||||
GlRenderer.setFogEnabled(true);
|
||||
if (client.gameState == 10) {
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public final class Static278 {
|
|||
public static void setRenderTiles(@OriginalArg(0) boolean arg0) {
|
||||
if (arg0) {
|
||||
SceneGraph.tiles = SceneGraph.underWaterGroundTiles;
|
||||
SceneGraph.tileHeights = Static80.underWaterTileHeightMap;
|
||||
SceneGraph.tileHeights = SceneGraph.underwaterTileHeights;
|
||||
Static182.aClass3_Sub14ArrayArray2 = SceneGraph.underWaterHdTiles;
|
||||
} else {
|
||||
SceneGraph.tiles = SceneGraph.surfaceGroundTiles;
|
||||
|
|
|
|||
|
|
@ -18,14 +18,14 @@ public final class Static28 {
|
|||
if (hasUnderWaterMap) {
|
||||
SceneGraph.underWaterGroundTiles = new Tile[1][SceneGraph.mapSizeX][SceneGraph.mapSizeZ];
|
||||
Static62.anIntArrayArray11 = new int[SceneGraph.mapSizeX][SceneGraph.mapSizeZ];
|
||||
Static80.underWaterTileHeightMap = new int[1][SceneGraph.mapSizeX + 1][SceneGraph.mapSizeZ + 1];
|
||||
SceneGraph.underwaterTileHeights = new int[1][SceneGraph.mapSizeX + 1][SceneGraph.mapSizeZ + 1];
|
||||
if (GlRenderer.enabled) {
|
||||
SceneGraph.underWaterHdTiles = new GlTile[1][];
|
||||
}
|
||||
} else {
|
||||
SceneGraph.underWaterGroundTiles = null;
|
||||
Static62.anIntArrayArray11 = null;
|
||||
Static80.underWaterTileHeightMap = null;
|
||||
SceneGraph.underwaterTileHeights = null;
|
||||
SceneGraph.underWaterHdTiles = null;
|
||||
}
|
||||
Static278.setRenderTiles(false);
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ public final class Static45 {
|
|||
@Pc(1834) int local1834 = SceneGraph.tileOverlays[local152][local322][local1794] & 0xFF;
|
||||
if (local1834 != 0) {
|
||||
@Pc(1842) FloType local1842 = FloTypeList.method4395(local1834 - 1);
|
||||
if (local1842.texture != -1 && Rasteriser.textureProvider.method3237(local1842.texture) == 4) {
|
||||
if (local1842.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1842.texture) == MaterialManager.WATER) {
|
||||
Static62.anIntArrayArray11[local168][local173] = local1842.anInt5889 + (local1842.anInt5898 << 24);
|
||||
continue label771;
|
||||
}
|
||||
|
|
@ -248,7 +248,7 @@ public final class Static45 {
|
|||
@Pc(1353) int local1353;
|
||||
@Pc(1288) int local1288;
|
||||
if (GlRenderer.enabled && !underwater && Static62.anIntArrayArray11 != null && local152 == 0) {
|
||||
if (local1248.texture != -1 && Rasteriser.textureProvider.method3237(local1248.texture) == 4) {
|
||||
if (local1248.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1248.texture) == MaterialManager.WATER) {
|
||||
Static62.anIntArrayArray11[local168][local173] = (local1248.anInt5898 << 24) + local1248.anInt5889;
|
||||
} else {
|
||||
label737: for (local1288 = local168 - 1; local1288 <= local168 + 1; local1288++) {
|
||||
|
|
@ -257,7 +257,7 @@ public final class Static45 {
|
|||
local1353 = SceneGraph.tileOverlays[local152][local1288][local1301] & 0xFF;
|
||||
if (local1353 != 0) {
|
||||
@Pc(1366) FloType local1366 = FloTypeList.method4395(local1353 - 1);
|
||||
if (local1366.texture != -1 && Rasteriser.textureProvider.method3237(local1366.texture) == 4) {
|
||||
if (local1366.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1366.texture) == MaterialManager.WATER) {
|
||||
Static62.anIntArrayArray11[local168][local173] = local1366.anInt5889 + (local1366.anInt5898 << 24);
|
||||
break label737;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,7 @@ public final class Static80 {
|
|||
@OriginalMember(owner = "client!gf", name = "M", descriptor = "I")
|
||||
public static int anInt4698;
|
||||
|
||||
@OriginalMember(owner = "client!gf", name = "O", descriptor = "[[[I")
|
||||
public static int[][][] underWaterTileHeightMap;
|
||||
|
||||
@OriginalMember(owner = "client!gf", name = "R", descriptor = "I")
|
||||
@OriginalMember(owner = "client!gf", name = "R", descriptor = "I")
|
||||
public static int centralZoneX;
|
||||
|
||||
@OriginalMember(owner = "client!gf", name = "S", descriptor = "[I")
|
||||
|
|
|
|||
|
|
@ -700,7 +700,7 @@ public final class Static87 {
|
|||
GlRenderer.method4148(local556, local545, color, cardMemory);
|
||||
GlRenderer.method4152((float) local30.aShort10, (float) local30.aShort11 * 1.5F);
|
||||
}
|
||||
GlRenderer.method4173();
|
||||
GlRenderer.restoreLighting();
|
||||
GlRenderer.setDepthTestEnabled(true);
|
||||
GlRenderer.setFogEnabled(false);
|
||||
Static229.method3935(Preferences.brightness);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public interface TextureProvider {
|
|||
boolean method3236(@OriginalArg(0) int arg0);
|
||||
|
||||
@OriginalMember(owner = "client!m", name = "g", descriptor = "(II)I")
|
||||
int method3237(@OriginalArg(0) int arg0);
|
||||
int getMaterialType(@OriginalArg(0) int arg0);
|
||||
|
||||
@OriginalMember(owner = "client!m", name = "h", descriptor = "(II)I")
|
||||
int method3238(@OriginalArg(1) int arg0);
|
||||
|
|
|
|||
|
|
@ -64,7 +64,33 @@ public final class UnderwaterMaterialRenderer implements MaterialRenderer {
|
|||
local1.glClientActiveTexture(GL2.GL_TEXTURE0);
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!wg", name = "d", descriptor = "()V")
|
||||
@OriginalMember(owner = "client!mf", name = "a", descriptor = "()V")
|
||||
public static void applyFogFade() {
|
||||
@Pc(1) GL2 gl = GlRenderer.gl;
|
||||
gl.glDisableClientState(GL2.GL_COLOR_ARRAY);
|
||||
GlRenderer.setLightingEnabled(false);
|
||||
gl.glDisable(GL2.GL_DEPTH_TEST);
|
||||
gl.glPushAttrib(GL2.GL_FOG_BIT);
|
||||
gl.glFogf(GL2.GL_FOG_START, (float) GlobalConfig.VIEW_DISTANCE - (GlobalConfig.VIEW_FADE_DISTANCE * 2.0f));
|
||||
GlRenderer.disableDepthMask();
|
||||
try {
|
||||
for (@Pc(19) int i = 0; i < SceneGraph.surfaceHdTiles[0].length; i++) {
|
||||
@Pc(31) GlTile tile = SceneGraph.surfaceHdTiles[0][i];
|
||||
if (tile.texture >= 0 && Rasteriser.textureProvider.getMaterialType(tile.texture) == MaterialManager.WATER) {
|
||||
gl.glColor4fv(ColorUtils.getRgbFloat(tile.underwaterColor), 0);
|
||||
@Pc(57) float f = 201.5F - (tile.blend ? 1.0F : 0.5F);
|
||||
tile.method1944(SceneGraph.tiles, f, true);
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {}
|
||||
gl.glEnableClientState(GL2.GL_COLOR_ARRAY);
|
||||
GlRenderer.restoreLighting();
|
||||
gl.glEnable(GL2.GL_DEPTH_TEST);
|
||||
gl.glPopAttrib();
|
||||
GlRenderer.enableDepthMask();
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!wg", name = "d", descriptor = "()V")
|
||||
private void method4606() {
|
||||
@Pc(1) GL2 local1 = GlRenderer.gl;
|
||||
this.anInt5806 = local1.glGenLists(2);
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ public class Playground extends GameShell {
|
|||
GlRenderer.init(GameShell.canvas, 0);
|
||||
if (GlRenderer.enabled) {
|
||||
GlRenderer.setCanvasSize(GameShell.canvasWidth, GameShell.canvasHeight);
|
||||
GlRenderer.method4173();
|
||||
GlRenderer.restoreLighting();
|
||||
float yaw1 = yaw * 360.0F / 6.2831855F;
|
||||
float pitch1 = pitch * 360.0F / 6.2831855F;
|
||||
GlRenderer.method4171(0, 0, GameShell.canvasWidth, GameShell.canvasHeight, GameShell.canvasWidth / 2, GameShell.canvasHeight / 2, yaw1, pitch1, zoom2d, zoom3d);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue