diff --git a/client/src/main/java/rt4/ChangeLocRequest.java b/client/src/main/java/rt4/ChangeLocRequest.java index 81ead01..5ffd54c 100644 --- a/client/src/main/java/rt4/ChangeLocRequest.java +++ b/client/src/main/java/rt4/ChangeLocRequest.java @@ -1,58 +1,141 @@ package rt4; import org.openrs2.deob.annotation.OriginalArg; +import org.openrs2.deob.annotation.OriginalClass; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; -public class ChangeLocRequest { - @OriginalMember(owner = "client!ug", name = "a", descriptor = "(B)V") - public static void loop() { - for (@Pc(10) SceneryStack local10 = (SceneryStack) Static26.sceneryList.head(); local10 != null; local10 = (SceneryStack) Static26.sceneryList.next()) { - if (local10.anInt924 > 0) { - local10.anInt924--; - } - if (local10.anInt924 != 0) { - if (local10.anInt925 > 0) { - local10.anInt925--; - } - if (local10.anInt925 == 0 && local10.x >= 1 && local10.z >= 1 && local10.x <= 102 && local10.z <= 102 && (local10.anInt929 < 0 || Static113.method3557(local10.anInt929, local10.anInt926))) { - Static79.method1698(local10.anInt929, local10.x, local10.level, local10.anInt922, local10.z, local10.anInt926, local10.anInt927); - local10.anInt925 = -1; - if (local10.anInt921 == local10.anInt929 && local10.anInt921 == -1) { - local10.unlink(); - } else if (local10.anInt929 == local10.anInt921 && local10.anInt922 == local10.anInt923 && local10.anInt920 == local10.anInt926) { - local10.unlink(); - } - } - } else if (local10.anInt921 < 0 || Static113.method3557(local10.anInt921, local10.anInt920)) { - Static79.method1698(local10.anInt921, local10.x, local10.level, local10.anInt923, local10.z, local10.anInt920, local10.anInt927); - local10.unlink(); - } - } - } +@OriginalClass("client!cd") +public final class ChangeLocRequest extends Node { + + @OriginalMember(owner = "client!ca", name = "X", descriptor = "Lclient!ih;") + public static LinkedList queue = new LinkedList(); + + @OriginalMember(owner = "client!cd", name = "r", descriptor = "I") + public int z; + + @OriginalMember(owner = "client!cd", name = "t", descriptor = "I") + public int level; + + @OriginalMember(owner = "client!cd", name = "w", descriptor = "I") + public int originalShape; + + @OriginalMember(owner = "client!cd", name = "x", descriptor = "I") + public int originalId; + + @OriginalMember(owner = "client!cd", name = "z", descriptor = "I") + public int anInt922; + + @OriginalMember(owner = "client!cd", name = "A", descriptor = "I") + public int originalAngle; + + @OriginalMember(owner = "client!cd", name = "F", descriptor = "I") + public int anInt926; + + @OriginalMember(owner = "client!cd", name = "G", descriptor = "I") + public int layer; + + @OriginalMember(owner = "client!cd", name = "H", descriptor = "I") + public int x; + + @OriginalMember(owner = "client!cd", name = "I", descriptor = "I") + public int anInt929; + + @OriginalMember(owner = "client!cd", name = "C", descriptor = "I") + public int resetLoops = -1; + + @OriginalMember(owner = "client!cd", name = "E", descriptor = "I") + public int setLoops = 0; + + @OriginalMember(owner = "client!ug", name = "a", descriptor = "(B)V") + public static void loop() { + for (@Pc(10) ChangeLocRequest local10 = (ChangeLocRequest) queue.head(); local10 != null; local10 = (ChangeLocRequest) queue.next()) { + if (local10.resetLoops > 0) { + local10.resetLoops--; + } + if (local10.resetLoops != 0) { + if (local10.setLoops > 0) { + local10.setLoops--; + } + if (local10.setLoops == 0 && local10.x >= 1 && local10.z >= 1 && local10.x <= 102 && local10.z <= 102 && (local10.anInt929 < 0 || Static113.method3557(local10.anInt929, local10.anInt926))) { + Static79.method1698(local10.anInt929, local10.x, local10.level, local10.anInt922, local10.z, local10.anInt926, local10.layer); + local10.setLoops = -1; + if (local10.originalId == local10.anInt929 && local10.originalId == -1) { + local10.unlink(); + } else if (local10.anInt929 == local10.originalId && local10.anInt922 == local10.originalAngle && local10.originalShape == local10.anInt926) { + local10.unlink(); + } + } + } else if (local10.originalId < 0 || Static113.method3557(local10.originalId, local10.originalShape)) { + Static79.method1698(local10.originalId, local10.x, local10.level, local10.originalAngle, local10.z, local10.originalShape, local10.layer); + local10.unlink(); + } + } + } + + @OriginalMember(owner = "client!ce", name = "a", descriptor = "(IIIIIIIIII)V") + public static void push(@OriginalArg(0) int level, @OriginalArg(1) int z, @OriginalArg(3) int arg2, @OriginalArg(4) int x, @OriginalArg(5) int resetLoops, @OriginalArg(6) int arg5, @OriginalArg(7) int layer, @OriginalArg(8) int arg7, @OriginalArg(9) int setLoops) { + @Pc(9) ChangeLocRequest loc = null; + for (@Pc(14) ChangeLocRequest l = (ChangeLocRequest) queue.head(); l != null; l = (ChangeLocRequest) queue.next()) { + if (l.level == level && x == l.x && l.z == z && layer == l.layer) { + loc = l; + break; + } + } + if (loc == null) { + loc = new ChangeLocRequest(); + loc.x = x; + loc.z = z; + loc.level = level; + loc.layer = layer; + init(loc); + queue.addTail(loc); + } + loc.anInt926 = arg7; + loc.setLoops = setLoops; + loc.resetLoops = resetLoops; + loc.anInt929 = arg5; + loc.anInt922 = arg2; + } + + @OriginalMember(owner = "client!sf", name = "a", descriptor = "(ILclient!cd;)V") + public static void init(@OriginalArg(1) ChangeLocRequest loc) { + @Pc(5) long key = 0L; + @Pc(7) int originalId = -1; + @Pc(14) int originalShape = 0; + if (loc.layer == 0) { + key = SceneGraph.getWallKey(loc.level, loc.x, loc.z); + } + @Pc(31) int originalAngle = 0; + if (loc.layer == 1) { + key = SceneGraph.getWallDecorKey(loc.level, loc.x, loc.z); + } + if (loc.layer == 2) { + key = SceneGraph.getSceneryKey(loc.level, loc.x, loc.z); + } + if (loc.layer == 3) { + key = SceneGraph.getGroundDecorKey(loc.level, loc.x, loc.z); + } + if (key != 0L) { + originalId = Integer.MAX_VALUE & (int) (key >>> 32); + originalAngle = (int) key >> 20 & 0x3; + originalShape = (int) key >> 14 & 0x1F; + } + loc.originalId = originalId; + loc.originalShape = originalShape; + loc.originalAngle = originalAngle; + } + + @OriginalMember(owner = "client!rl", name = "i", descriptor = "(I)V") + public static void flush() { + for (@Pc(10) ChangeLocRequest loc = (ChangeLocRequest) queue.head(); loc != null; loc = (ChangeLocRequest) queue.next()) { + if (loc.resetLoops == -1) { + loc.setLoops = 0; + init(loc); + } else { + loc.unlink(); + } + } + } - @OriginalMember(owner = "client!ce", name = "a", descriptor = "(IIIIIIIIII)V") - public static void push(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5, @OriginalArg(7) int arg6, @OriginalArg(8) int arg7, @OriginalArg(9) int arg8) { - @Pc(9) SceneryStack local9 = null; - for (@Pc(14) SceneryStack local14 = (SceneryStack) Static26.sceneryList.head(); local14 != null; local14 = (SceneryStack) Static26.sceneryList.next()) { - if (local14.level == arg0 && arg3 == local14.x && local14.z == arg1 && arg6 == local14.anInt927) { - local9 = local14; - break; - } - } - if (local9 == null) { - local9 = new SceneryStack(); - local9.x = arg3; - local9.z = arg1; - local9.level = arg0; - local9.anInt927 = arg6; - Static226.method3898(local9); - Static26.sceneryList.addTail(local9); - } - local9.anInt926 = arg7; - local9.anInt925 = arg8; - local9.anInt924 = arg4; - local9.anInt929 = arg5; - local9.anInt922 = arg2; - } } diff --git a/client/src/main/java/rt4/ClientProt.java b/client/src/main/java/rt4/ClientProt.java index 93630a5..1f548c0 100644 --- a/client/src/main/java/rt4/ClientProt.java +++ b/client/src/main/java/rt4/ClientProt.java @@ -276,9 +276,9 @@ public class ClientProt { } } } - Static28.method792(GlRenderer.enabled ? GlobalConfig.TILE_DISTANCE : 25, hasUnderWaterMap); + SceneGraph.init(GlRenderer.enabled ? GlobalConfig.TILE_DISTANCE : 25, hasUnderWaterMap); for (i = 0; i < 4; i++) { - PathFinder.collisionMaps[i].resetFlags(); + PathFinder.collisionMaps[i].clear(); } for (i = 0; i < 4; i++) { for (chunkX = 0; chunkX < 104; chunkX++) { @@ -289,7 +289,7 @@ public class ClientProt { } AreaSoundManager.clear(false); if (GlRenderer.enabled) { - Static242.shadowMapImage.method1392(); + Static242.shadowMapImage.clear(); for (i = 0; i < 13; i++) { for (chunkX = 0; chunkX < 13; chunkX++) { Static242.shadows[i][chunkX].outputToSprite = true; @@ -349,7 +349,7 @@ public class ClientProt { } SceneGraph.method2255(); if (GlRenderer.enabled && hasUnderWaterMap) { - SceneGraph.setRenderTiles(true); + SceneGraph.setUnderwater(true); SceneGraph.method3535(true); if (!Static230.dynamicMapRegion) { Static87.method1805(true); @@ -366,7 +366,7 @@ public class ClientProt { Static45.method1169(PathFinder.collisionMaps, true); ping(true); SceneGraph.method2255(); - SceneGraph.setRenderTiles(false); + SceneGraph.setUnderwater(false); } if (GlRenderer.enabled) { for (chunkX = 0; chunkX < 13; chunkX++) { @@ -382,7 +382,7 @@ public class ClientProt { } Static269.method2218(); client.audioLoop(); - Static219.method3796(); + ChangeLocRequest.flush(); client.method3768(); Static231.aBoolean252 = false; if (GameShell.frame != null && Protocol.socket != null && client.gameState == 25) { diff --git a/client/src/main/java/rt4/CollisionMap.java b/client/src/main/java/rt4/CollisionMap.java index 3685a8f..e9f80de 100644 --- a/client/src/main/java/rt4/CollisionMap.java +++ b/client/src/main/java/rt4/CollisionMap.java @@ -30,7 +30,7 @@ public final class CollisionMap { this.anInt3912 = 0; this.anInt3899 = arg0; this.flags = new int[this.anInt3899][this.anInt3904]; - this.resetFlags(); + this.clear(); } @OriginalMember(owner = "client!mj", name = "a", descriptor = "(IZIIII)V") @@ -761,7 +761,7 @@ public final class CollisionMap { } @OriginalMember(owner = "client!mj", name = "a", descriptor = "(I)V") - public final void resetFlags() { + public final void clear() { for (@Pc(3) int local3 = 0; local3 < this.anInt3899; local3++) { for (@Pc(13) int local13 = 0; local13 < this.anInt3904; local13++) { if (local3 == 0 || local13 == 0 || local3 >= this.anInt3899 - 5 || this.anInt3904 - 5 <= local13) { diff --git a/client/src/main/java/rt4/GlModel.java b/client/src/main/java/rt4/GlModel.java index c761f14..84e6b45 100644 --- a/client/src/main/java/rt4/GlModel.java +++ b/client/src/main/java/rt4/GlModel.java @@ -3486,7 +3486,7 @@ public final class GlModel extends Model { local151 = arg0; arg0.innerWidth = arg0.width = local134; arg0.innerHeight = arg0.height = local140; - arg0.method1392(); + arg0.clear(); } local151.anInt4280 = local26; local151.anInt4273 = local85; diff --git a/client/src/main/java/rt4/LoginManager.java b/client/src/main/java/rt4/LoginManager.java index e4da3e3..cac663d 100644 --- a/client/src/main/java/rt4/LoginManager.java +++ b/client/src/main/java/rt4/LoginManager.java @@ -605,7 +605,7 @@ public class LoginManager { SceneGraph.clear(); @Pc(19) int local19; for (local19 = 0; local19 < 4; local19++) { - PathFinder.collisionMaps[local19].resetFlags(); + PathFinder.collisionMaps[local19].clear(); } WorldMap.clear(false); System.gc(); @@ -745,7 +745,7 @@ public class LoginManager { } } } - for (@Pc(451) SceneryStack local451 = (SceneryStack) Static26.sceneryList.head(); local451 != null; local451 = (SceneryStack) Static26.sceneryList.next()) { + for (@Pc(451) ChangeLocRequest local451 = (ChangeLocRequest) ChangeLocRequest.queue.head(); local451 != null; local451 = (ChangeLocRequest) ChangeLocRequest.queue.next()) { local451.z -= local81; local451.x -= local86; if (local451.x < 0 || local451.z < 0 || local451.x >= 104 || local451.z >= 104) { diff --git a/client/src/main/java/rt4/MiniMap.java b/client/src/main/java/rt4/MiniMap.java index 1341de0..3d25611 100644 --- a/client/src/main/java/rt4/MiniMap.java +++ b/client/src/main/java/rt4/MiniMap.java @@ -126,7 +126,7 @@ public class MiniMap { locs = 0; for (local37 = 0; local37 < 104; local37++) { for (local76 = 0; local76 < 104; local76++) { - @Pc(169) long local169 = SceneGraph.method602(Player.level, local37 + 0, local76); + @Pc(169) long local169 = SceneGraph.getGroundDecorKey(Player.level, local37 + 0, local76); if (local169 != 0L) { @Pc(184) LocType local184 = LocTypeList.get((int) (local169 >>> 32) & Integer.MAX_VALUE); @Pc(187) int local187 = local184.mapElement; diff --git a/client/src/main/java/rt4/Protocol.java b/client/src/main/java/rt4/Protocol.java index 8c10f50..201b5e2 100644 --- a/client/src/main/java/rt4/Protocol.java +++ b/client/src/main/java/rt4/Protocol.java @@ -1449,9 +1449,9 @@ public class Protocol { } } } - for (@Pc(2604) SceneryStack loc = (SceneryStack) Static26.sceneryList.head(); loc != null; loc = (SceneryStack) Static26.sceneryList.next()) { + for (@Pc(2604) ChangeLocRequest loc = (ChangeLocRequest) ChangeLocRequest.queue.head(); loc != null; loc = (ChangeLocRequest) ChangeLocRequest.queue.next()) { if (loc.x >= Static115.currentChunkX && Static115.currentChunkX + 8 > loc.x && loc.z >= Static180.currentChunkZ && loc.z < Static180.currentChunkZ + 8 && loc.level == Player.level) { - loc.anInt924 = 0; + loc.resetLoops = 0; } } opcode = -1; diff --git a/client/src/main/java/rt4/SceneGraph.java b/client/src/main/java/rt4/SceneGraph.java index 6592413..08948d0 100644 --- a/client/src/main/java/rt4/SceneGraph.java +++ b/client/src/main/java/rt4/SceneGraph.java @@ -45,7 +45,7 @@ public class SceneGraph { @OriginalMember(owner = "client!rh", name = "k", descriptor = "I") public static int anInt4870 = 0; @OriginalMember(owner = "client!bl", name = "T", descriptor = "I") - public static int anInt726 = 0; + public static int sceneryLen = 0; @OriginalMember(owner = "client!pm", name = "cb", descriptor = "[[[Lclient!bj;") public static Tile[][][] surfaceGroundTiles; @OriginalMember(owner = "client!client", name = "kb", descriptor = "[[Lclient!hg;") @@ -57,13 +57,13 @@ public class SceneGraph { @OriginalMember(owner = "client!hc", name = "O", descriptor = "[Lclient!pe;") public static Class120[] aClass120Array1; @OriginalMember(owner = "client!ma", name = "i", descriptor = "I") - public static int mapSizeX; + public static int width; @OriginalMember(owner = "client!hk", name = "Y", descriptor = "I") - public static int mapSizeZ; + public static int length; @OriginalMember(owner = "client!cd", name = "s", descriptor = "I") public static int anInt917; @OriginalMember(owner = "client!tk", name = "D", descriptor = "[Lclient!ec;") - public static Scenery[] aClass31Array3; + public static Scenery[] scenery; @OriginalMember(owner = "client!c", name = "bb", descriptor = "[Lclient!ec;") public static Scenery[] aClass31Array2; @OriginalMember(owner = "client!gf", name = "O", descriptor = "[[[I") @@ -74,6 +74,16 @@ public class SceneGraph { public static int anInt3114; @OriginalMember(owner = "client!sm", name = "e", descriptor = "[[[B") public static byte[][][] aByteArrayArrayArray13; + @OriginalMember(owner = "client!wi", name = "db", descriptor = "I") + public static int visibility; + @OriginalMember(owner = "client!f", name = "ab", descriptor = "[[I") + public static int[][] anIntArrayArray11; + @OriginalMember(owner = "client!la", name = "i", descriptor = "[[[I") + public static int[][][] anIntArrayArrayArray12; + @OriginalMember(owner = "client!dl", name = "h", descriptor = "[[Z") + public static boolean[][] aBooleanArrayArray1; + @OriginalMember(owner = "client!ha", name = "k", descriptor = "[[Z") + public static boolean[][] aBooleanArrayArray3; @OriginalMember(owner = "client!km", name = "f", descriptor = "(I)Z") public static boolean allLevelsAreVisible() { @@ -81,24 +91,24 @@ public class SceneGraph { } @OriginalMember(owner = "client!ql", name = "a", descriptor = "(IIII)I") - public static int getTileHeight(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2) { + public static int getTileHeight(@OriginalArg(0) int level, @OriginalArg(2) int xFine, @OriginalArg(3) int zFine) { if (tileHeights == null) { return 0; } - @Pc(12) int local12 = arg1 >> 7; - @Pc(16) int local16 = arg2 >> 7; - if (local12 < 0 || local16 < 0 || local12 > 103 || local16 > 103) { + @Pc(12) int x = xFine >> 7; + @Pc(16) int z = zFine >> 7; + if (x < 0 || z < 0 || x > 103 || z > 103) { return 0; } - @Pc(36) int local36 = arg1 & 0x7F; - @Pc(40) int local40 = arg2 & 0x7F; - @Pc(42) int local42 = arg0; - if (arg0 < 3 && (tileFlags[1][local12][local16] & 0x2) == 2) { - local42 = arg0 + 1; + @Pc(36) int xFine2 = xFine & 0x7F; + @Pc(40) int zFine2 = zFine & 0x7F; + @Pc(42) int virtualLevel = level; + if (level < 3 && (tileFlags[1][x][z] & 0x2) == 2) { + virtualLevel = level + 1; } - @Pc(91) int local91 = local36 * tileHeights[local42][local12 + 1][local16 + 1] + tileHeights[local42][local12][local16 + 1] * (128 - local36) >> 7; - @Pc(118) int local118 = local36 * tileHeights[local42][local12 + 1][local16] + (128 - local36) * tileHeights[local42][local12][local16] >> 7; - return local40 * local91 + (128 - local40) * local118 >> 7; + @Pc(91) int heightZ0 = xFine2 * tileHeights[virtualLevel][x + 1][z + 1] + tileHeights[virtualLevel][x][z + 1] * (128 - xFine2) >> 7; + @Pc(118) int heightZ1 = xFine2 * tileHeights[virtualLevel][x + 1][z] + (128 - xFine2) * tileHeights[virtualLevel][x][z] >> 7; + return zFine2 * heightZ0 + (128 - zFine2) * heightZ1 >> 7; } @OriginalMember(owner = "client!ih", name = "a", descriptor = "(III)Lclient!jh;") @@ -120,8 +130,8 @@ public class SceneGraph { @Pc(14) int local14; if (surfaceGroundTiles != null) { for (local3 = 0; local3 < surfaceGroundTiles.length; local3++) { - for (local9 = 0; local9 < mapSizeX; local9++) { - for (local14 = 0; local14 < mapSizeZ; local14++) { + for (local9 = 0; local9 < width; local9++) { + for (local14 = 0; local14 < length; local14++) { surfaceGroundTiles[local3][local9][local14] = null; } } @@ -130,8 +140,8 @@ public class SceneGraph { surfaceHdTiles = null; if (underWaterGroundTiles != null) { for (local3 = 0; local3 < underWaterGroundTiles.length; local3++) { - for (local9 = 0; local9 < mapSizeX; local9++) { - for (local14 = 0; local14 < mapSizeZ; local14++) { + for (local9 = 0; local9 < width; local9++) { + for (local14 = 0; local14 < length; local14++) { underWaterGroundTiles[local3][local9][local14] = null; } } @@ -144,11 +154,11 @@ public class SceneGraph { aClass120Array1[local3] = null; } } - if (aClass31Array3 != null) { - for (local3 = 0; local3 < anInt726; local3++) { - aClass31Array3[local3] = null; + if (scenery != null) { + for (local3 = 0; local3 < sceneryLen; local3++) { + scenery[local3] = null; } - anInt726 = 0; + sceneryLen = 0; } if (aClass31Array2 != null) { for (local3 = 0; local3 < aClass31Array2.length; local3++) { @@ -318,13 +328,13 @@ public class SceneGraph { } @OriginalMember(owner = "client!bj", name = "a", descriptor = "(III)J") - public static long method602(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { + public static long getGroundDecorKey(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { @Pc(7) Tile local7 = tiles[arg0][arg1][arg2]; return local7 == null || local7.groundDecor == null ? 0L : local7.groundDecor.key; } @OriginalMember(owner = "client!wj", name = "a", descriptor = "(Z)V") - public static void setRenderTiles(@OriginalArg(0) boolean arg0) { + public static void setUnderwater(@OriginalArg(0) boolean arg0) { if (arg0) { tiles = underWaterGroundTiles; tileHeights = underwaterTileHeights; @@ -451,7 +461,7 @@ public class SceneGraph { } @OriginalMember(owner = "client!nh", name = "a", descriptor = "(IIIILclient!th;JZ)V") - public static void method2570(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) Entity arg4, @OriginalArg(5) long arg5, @OriginalArg(6) boolean arg6) { + public static void setGroundDecor(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) Entity arg4, @OriginalArg(5) long arg5, @OriginalArg(6) boolean arg6) { if (arg4 == null) { return; } @@ -521,7 +531,7 @@ public class SceneGraph { } @OriginalMember(owner = "client!vf", name = "a", descriptor = "(IIIILclient!th;Lclient!th;IIJ)V") - public static void method4508(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) Entity arg4, @OriginalArg(5) Entity arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) long arg8) { + public static void setWall(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) Entity arg4, @OriginalArg(5) Entity arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) long arg8) { if (arg4 == null && arg5 == null) { return; } @@ -541,4 +551,68 @@ public class SceneGraph { } tiles[arg0][arg1][arg2].wall = local8; } + + @OriginalMember(owner = "client!cd", name = "a", descriptor = "(IIIIZ)V") + public static void init(@OriginalArg(3) int tileVisibility, @OriginalArg(4) boolean hasUnderWaterMap) { + width = 104; + length = 104; + visibility = tileVisibility; + surfaceGroundTiles = new Tile[4][width][length]; + surfaceTileHeights = new int[4][width + 1][length + 1]; + if (GlRenderer.enabled) { + surfaceHdTiles = new GlTile[4][]; + } + if (hasUnderWaterMap) { + underWaterGroundTiles = new Tile[1][width][length]; + anIntArrayArray11 = new int[width][length]; + underwaterTileHeights = new int[1][width + 1][length + 1]; + if (GlRenderer.enabled) { + underWaterHdTiles = new GlTile[1][]; + } + } else { + underWaterGroundTiles = null; + anIntArrayArray11 = null; + underwaterTileHeights = null; + underWaterHdTiles = null; + } + setUnderwater(false); + aClass120Array1 = new Class120[500]; + anInt917 = 0; + aClass120Array2 = new Class120[500]; + anInt4870 = 0; + anIntArrayArrayArray12 = new int[4][width + 1][length + 1]; + scenery = new Scenery[5000]; + sceneryLen = 0; + aClass31Array2 = new Scenery[100]; + aBooleanArrayArray1 = new boolean[visibility + visibility + 1][visibility + visibility + 1]; + aBooleanArrayArray3 = new boolean[visibility + visibility + 2][visibility + visibility + 2]; + aByteArrayArrayArray13 = new byte[4][width][length]; + } + + @OriginalMember(owner = "client!vj", name = "a", descriptor = "(III)J") + public static long getWallKey(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { + @Pc(7) Tile local7 = tiles[arg0][arg1][arg2]; + return local7 == null || local7.wall == null ? 0L : local7.wall.key; + } + + @OriginalMember(owner = "client!l", name = "a", descriptor = "(III)J") + public static long getWallDecorKey(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { + @Pc(7) Tile local7 = tiles[arg0][arg1][arg2]; + return local7 == null || local7.wallDecor == null ? 0L : local7.wallDecor.key; + } + + @OriginalMember(owner = "client!cl", name = "a", descriptor = "(III)J") + public static long getSceneryKey(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { + @Pc(7) Tile local7 = tiles[arg0][arg1][arg2]; + if (local7 == null) { + return 0L; + } + for (@Pc(13) int local13 = 0; local13 < local7.sceneryLen; local13++) { + @Pc(22) Scenery local22 = local7.scenery[local13]; + if ((local22.key >> 29 & 0x3L) == 2L && local22.anInt1701 == arg1 && local22.anInt1696 == arg2) { + return local22.key; + } + } + return 0L; + } } diff --git a/client/src/main/java/rt4/SceneryStack.java b/client/src/main/java/rt4/SceneryStack.java deleted file mode 100644 index 66c737d..0000000 --- a/client/src/main/java/rt4/SceneryStack.java +++ /dev/null @@ -1,44 +0,0 @@ -package rt4; - -import org.openrs2.deob.annotation.OriginalClass; -import org.openrs2.deob.annotation.OriginalMember; - -@OriginalClass("client!cd") -public final class SceneryStack extends Node { - - @OriginalMember(owner = "client!cd", name = "r", descriptor = "I") - public int z; - - @OriginalMember(owner = "client!cd", name = "t", descriptor = "I") - public int level; - - @OriginalMember(owner = "client!cd", name = "w", descriptor = "I") - public int anInt920; - - @OriginalMember(owner = "client!cd", name = "x", descriptor = "I") - public int anInt921; - - @OriginalMember(owner = "client!cd", name = "z", descriptor = "I") - public int anInt922; - - @OriginalMember(owner = "client!cd", name = "A", descriptor = "I") - public int anInt923; - - @OriginalMember(owner = "client!cd", name = "F", descriptor = "I") - public int anInt926; - - @OriginalMember(owner = "client!cd", name = "G", descriptor = "I") - public int anInt927; - - @OriginalMember(owner = "client!cd", name = "H", descriptor = "I") - public int x; - - @OriginalMember(owner = "client!cd", name = "I", descriptor = "I") - public int anInt929; - - @OriginalMember(owner = "client!cd", name = "C", descriptor = "I") - public int anInt924 = -1; - - @OriginalMember(owner = "client!cd", name = "E", descriptor = "I") - public int anInt925 = 0; -} diff --git a/client/src/main/java/rt4/SoftwareIndexedSprite.java b/client/src/main/java/rt4/SoftwareIndexedSprite.java index 295a10d..335dc30 100644 --- a/client/src/main/java/rt4/SoftwareIndexedSprite.java +++ b/client/src/main/java/rt4/SoftwareIndexedSprite.java @@ -230,7 +230,7 @@ public final class SoftwareIndexedSprite extends IndexedSprite { } @OriginalMember(owner = "client!ek", name = "a", descriptor = "()V") - public final void method1392() { + public final void clear() { @Pc(1) int local1 = 0; @Pc(7) int local7 = this.aByteArray18.length - 7; while (local1 < local7) { diff --git a/client/src/main/java/rt4/Static105.java b/client/src/main/java/rt4/Static105.java index 3e8b45a..81fee04 100644 --- a/client/src/main/java/rt4/Static105.java +++ b/client/src/main/java/rt4/Static105.java @@ -13,7 +13,7 @@ public final class Static105 { @Pc(17) int local17; for (@Pc(10) int local10 = arg1; local10 < arg1 + arg3; local10++) { for (local17 = arg2; local17 < arg2 + arg4; local17++) { - if (local10 < 0 || local17 < 0 || local10 >= SceneGraph.mapSizeX || local17 >= SceneGraph.mapSizeZ) { + if (local10 < 0 || local17 < 0 || local10 >= SceneGraph.width || local17 >= SceneGraph.length) { return false; } @Pc(42) Tile local42 = SceneGraph.tiles[arg0][local10][local17]; @@ -60,22 +60,22 @@ public final class Static105 { local174.anIntArray59[local174.sceneryLen] = local115; local174.anInt664 |= local115; local174.sceneryLen++; - if (local6 && Static62.anIntArrayArray11[local17][local108] != 0) { - local8 = Static62.anIntArrayArray11[local17][local108]; + if (local6 && SceneGraph.anIntArrayArray11[local17][local108] != 0) { + local8 = SceneGraph.anIntArrayArray11[local17][local108]; } } } if (local6 && local8 != 0) { for (local17 = arg1; local17 < arg1 + arg3; local17++) { for (local108 = arg2; local108 < arg2 + arg4; local108++) { - if (Static62.anIntArrayArray11[local17][local108] == 0) { - Static62.anIntArrayArray11[local17][local108] = local8; + if (SceneGraph.anIntArrayArray11[local17][local108] == 0) { + SceneGraph.anIntArrayArray11[local17][local108] = local8; } } } } if (arg10) { - SceneGraph.aClass31Array3[SceneGraph.anInt726++] = local58; + SceneGraph.scenery[SceneGraph.sceneryLen++] = local58; } return true; } diff --git a/client/src/main/java/rt4/Static123.java b/client/src/main/java/rt4/Static123.java index 07286de..67fb5ce 100644 --- a/client/src/main/java/rt4/Static123.java +++ b/client/src/main/java/rt4/Static123.java @@ -13,8 +13,6 @@ public final class Static123 { @OriginalMember(owner = "client!ml", name = "K", descriptor = "I") public static int anInt3947; - @OriginalMember(owner = "client!wi", name = "db", descriptor = "I") - public static int tileVisibilityDistance; @OriginalMember(owner = "client!jj", name = "a", descriptor = "(Z)V") public static void topBannerRefresh() { @@ -44,19 +42,19 @@ public final class Static123 { @Pc(158) int local158; @Pc(137) boolean local137; if (local10.anInt4453 == 1) { - local14 = local10.anInt4452 + tileVisibilityDistance - Static167.anInt4069; - if (local14 >= 0 && local14 <= tileVisibilityDistance + tileVisibilityDistance) { - local115 = local10.anInt4461 + tileVisibilityDistance - Static193.anInt4539; + local14 = local10.anInt4452 + SceneGraph.visibility - Static167.anInt4069; + if (local14 >= 0 && local14 <= SceneGraph.visibility + SceneGraph.visibility) { + local115 = local10.anInt4461 + SceneGraph.visibility - Static193.anInt4539; if (local115 < 0) { local115 = 0; } - local126 = local10.anInt4464 + tileVisibilityDistance - Static193.anInt4539; - if (local126 > tileVisibilityDistance + tileVisibilityDistance) { - local126 = tileVisibilityDistance + tileVisibilityDistance; + local126 = local10.anInt4464 + SceneGraph.visibility - Static193.anInt4539; + if (local126 > SceneGraph.visibility + SceneGraph.visibility) { + local126 = SceneGraph.visibility + SceneGraph.visibility; } local137 = false; while (local115 <= local126) { - if (Static48.aBooleanArrayArray1[local14][local115++]) { + if (SceneGraph.aBooleanArrayArray1[local14][local115++]) { local137 = true; break; } @@ -80,19 +78,19 @@ public final class Static123 { } } } else if (local10.anInt4453 == 2) { - local14 = local10.anInt4461 + tileVisibilityDistance - Static193.anInt4539; - if (local14 >= 0 && local14 <= tileVisibilityDistance + tileVisibilityDistance) { - local115 = local10.anInt4452 + tileVisibilityDistance - Static167.anInt4069; + local14 = local10.anInt4461 + SceneGraph.visibility - Static193.anInt4539; + if (local14 >= 0 && local14 <= SceneGraph.visibility + SceneGraph.visibility) { + local115 = local10.anInt4452 + SceneGraph.visibility - Static167.anInt4069; if (local115 < 0) { local115 = 0; } - local126 = local10.anInt4446 + tileVisibilityDistance - Static167.anInt4069; - if (local126 > tileVisibilityDistance + tileVisibilityDistance) { - local126 = tileVisibilityDistance + tileVisibilityDistance; + local126 = local10.anInt4446 + SceneGraph.visibility - Static167.anInt4069; + if (local126 > SceneGraph.visibility + SceneGraph.visibility) { + local126 = SceneGraph.visibility + SceneGraph.visibility; } local137 = false; while (local115 <= local126) { - if (Static48.aBooleanArrayArray1[local115++][local14]) { + if (SceneGraph.aBooleanArrayArray1[local115++][local14]) { local137 = true; break; } @@ -118,27 +116,27 @@ public final class Static123 { } else if (local10.anInt4453 == 4) { local14 = local10.anInt4444 - anInt3947; if (local14 > 128) { - local115 = local10.anInt4461 + tileVisibilityDistance - Static193.anInt4539; + local115 = local10.anInt4461 + SceneGraph.visibility - Static193.anInt4539; if (local115 < 0) { local115 = 0; } - local126 = local10.anInt4464 + tileVisibilityDistance - Static193.anInt4539; - if (local126 > tileVisibilityDistance + tileVisibilityDistance) { - local126 = tileVisibilityDistance + tileVisibilityDistance; + local126 = local10.anInt4464 + SceneGraph.visibility - Static193.anInt4539; + if (local126 > SceneGraph.visibility + SceneGraph.visibility) { + local126 = SceneGraph.visibility + SceneGraph.visibility; } if (local115 <= local126) { - @Pc(408) int local408 = local10.anInt4452 + tileVisibilityDistance - Static167.anInt4069; + @Pc(408) int local408 = local10.anInt4452 + SceneGraph.visibility - Static167.anInt4069; if (local408 < 0) { local408 = 0; } - local158 = local10.anInt4446 + tileVisibilityDistance - Static167.anInt4069; - if (local158 > tileVisibilityDistance + tileVisibilityDistance) { - local158 = tileVisibilityDistance + tileVisibilityDistance; + local158 = local10.anInt4446 + SceneGraph.visibility - Static167.anInt4069; + if (local158 > SceneGraph.visibility + SceneGraph.visibility) { + local158 = SceneGraph.visibility + SceneGraph.visibility; } @Pc(430) boolean local430 = false; label166: for (@Pc(432) int local432 = local408; local432 <= local158; local432++) { for (@Pc(437) int local437 = local115; local437 <= local126; local437++) { - if (Static48.aBooleanArrayArray1[local432][local437]) { + if (SceneGraph.aBooleanArrayArray1[local432][local437]) { local430 = true; break label166; } diff --git a/client/src/main/java/rt4/Static139.java b/client/src/main/java/rt4/Static139.java index d70126e..40a3b12 100644 --- a/client/src/main/java/rt4/Static139.java +++ b/client/src/main/java/rt4/Static139.java @@ -4,7 +4,7 @@ import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Insets; -import org.openrs2.deob.annotation.OriginalArg; + import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @@ -13,13 +13,7 @@ public final class Static139 { @OriginalMember(owner = "client!l", name = "d", descriptor = "Lclient!na;") public static final JagString aClass100_659 = JagString.parse(")4j"); - @OriginalMember(owner = "client!l", name = "a", descriptor = "(III)J") - public static long method2703(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - @Pc(7) Tile local7 = SceneGraph.tiles[arg0][arg1][arg2]; - return local7 == null || local7.wallDecor == null ? 0L : local7.wallDecor.key; - } - - @OriginalMember(owner = "client!l", name = "b", descriptor = "(I)V") + @OriginalMember(owner = "client!l", name = "b", descriptor = "(I)V") public static void method2704() { @Pc(7) int local7 = GameShell.topMargin; @Pc(9) int local9 = GameShell.leftMargin; diff --git a/client/src/main/java/rt4/Static140.java b/client/src/main/java/rt4/Static140.java index a498c21..6bd8a17 100644 --- a/client/src/main/java/rt4/Static140.java +++ b/client/src/main/java/rt4/Static140.java @@ -1,10 +1,5 @@ package rt4; -import org.openrs2.deob.annotation.OriginalMember; - public final class Static140 { - @OriginalMember(owner = "client!la", name = "i", descriptor = "[[[I") - public static int[][][] anIntArrayArrayArray12; - } diff --git a/client/src/main/java/rt4/Static146.java b/client/src/main/java/rt4/Static146.java index aac9156..cbe224b 100644 --- a/client/src/main/java/rt4/Static146.java +++ b/client/src/main/java/rt4/Static146.java @@ -15,8 +15,8 @@ public final class Static146 { @OriginalMember(owner = "client!lg", name = "a", descriptor = "(I)V") public static void method2750(@OriginalArg(0) int arg0) { Static235.anInt5276 = arg0; - for (@Pc(3) int local3 = 0; local3 < SceneGraph.mapSizeX; local3++) { - for (@Pc(8) int local8 = 0; local8 < SceneGraph.mapSizeZ; local8++) { + for (@Pc(3) int local3 = 0; local3 < SceneGraph.width; local3++) { + for (@Pc(8) int local8 = 0; local8 < SceneGraph.length; local8++) { if (SceneGraph.tiles[arg0][local3][local8] == null) { SceneGraph.tiles[arg0][local3][local8] = new Tile(arg0, local3, local8); } diff --git a/client/src/main/java/rt4/Static156.java b/client/src/main/java/rt4/Static156.java index c4e6258..f9d1e3f 100644 --- a/client/src/main/java/rt4/Static156.java +++ b/client/src/main/java/rt4/Static156.java @@ -13,13 +13,13 @@ public final class Static156 { public static void method2954(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) byte[][][] arg5, @OriginalArg(6) int[] arg6, @OriginalArg(7) int[] arg7, @OriginalArg(8) int[] arg8, @OriginalArg(9) int[] arg9, @OriginalArg(10) int[] arg10, @OriginalArg(11) int arg11, @OriginalArg(12) byte arg12, @OriginalArg(13) int arg13, @OriginalArg(14) int arg14) { if (arg0 < 0) { arg0 = 0; - } else if (arg0 >= SceneGraph.mapSizeX * 128) { - arg0 = SceneGraph.mapSizeX * 128 - 1; + } else if (arg0 >= SceneGraph.width * 128) { + arg0 = SceneGraph.width * 128 - 1; } if (arg2 < 0) { arg2 = 0; - } else if (arg2 >= SceneGraph.mapSizeZ * 128) { - arg2 = SceneGraph.mapSizeZ * 128 - 1; + } else if (arg2 >= SceneGraph.length * 128) { + arg2 = SceneGraph.length * 128 - 1; } Static109.anInt2886 = MathUtils.sin[arg3]; Static121.anInt3038 = MathUtils.cos[arg3]; @@ -30,21 +30,21 @@ public final class Static156 { Static217.anInt4903 = arg2; Static167.anInt4069 = arg0 / 128; Static193.anInt4539 = arg2 / 128; - Static31.anInt987 = Static167.anInt4069 - Static123.tileVisibilityDistance; + Static31.anInt987 = Static167.anInt4069 - SceneGraph.visibility; if (Static31.anInt987 < 0) { Static31.anInt987 = 0; } - Static80.anInt4698 = Static193.anInt4539 - Static123.tileVisibilityDistance; + Static80.anInt4698 = Static193.anInt4539 - SceneGraph.visibility; if (Static80.anInt4698 < 0) { Static80.anInt4698 = 0; } - Static2.anInt15 = Static167.anInt4069 + Static123.tileVisibilityDistance; - if (Static2.anInt15 > SceneGraph.mapSizeX) { - Static2.anInt15 = SceneGraph.mapSizeX; + Static2.anInt15 = Static167.anInt4069 + SceneGraph.visibility; + if (Static2.anInt15 > SceneGraph.width) { + Static2.anInt15 = SceneGraph.width; } - Static215.anInt4866 = Static193.anInt4539 + Static123.tileVisibilityDistance; - if (Static215.anInt4866 > SceneGraph.mapSizeZ) { - Static215.anInt4866 = SceneGraph.mapSizeZ; + Static215.anInt4866 = Static193.anInt4539 + SceneGraph.visibility; + if (Static215.anInt4866 > SceneGraph.length) { + Static215.anInt4866 = SceneGraph.length; } @Pc(99) short local99; if (GlRenderer.enabled) { @@ -54,13 +54,13 @@ public final class Static156 { } @Pc(104) int local104; @Pc(113) int local113; - for (local104 = 0; local104 < Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 2; local104++) { - for (local113 = 0; local113 < Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 2; local113++) { - @Pc(130) int local130 = (local104 - Static123.tileVisibilityDistance << 7) - (Static149.anInt3555 & 0x7F); - @Pc(140) int local140 = (local113 - Static123.tileVisibilityDistance << 7) - (Static217.anInt4903 & 0x7F); - @Pc(146) int local146 = Static167.anInt4069 + local104 - Static123.tileVisibilityDistance; - @Pc(152) int local152 = Static193.anInt4539 + local113 - Static123.tileVisibilityDistance; - if (local146 >= 0 && local152 >= 0 && local146 < SceneGraph.mapSizeX && local152 < SceneGraph.mapSizeZ) { + for (local104 = 0; local104 < SceneGraph.visibility + SceneGraph.visibility + 2; local104++) { + for (local113 = 0; local113 < SceneGraph.visibility + SceneGraph.visibility + 2; local113++) { + @Pc(130) int local130 = (local104 - SceneGraph.visibility << 7) - (Static149.anInt3555 & 0x7F); + @Pc(140) int local140 = (local113 - SceneGraph.visibility << 7) - (Static217.anInt4903 & 0x7F); + @Pc(146) int local146 = Static167.anInt4069 + local104 - SceneGraph.visibility; + @Pc(152) int local152 = Static193.anInt4539 + local113 - SceneGraph.visibility; + if (local146 >= 0 && local152 >= 0 && local146 < SceneGraph.width && local152 < SceneGraph.length) { @Pc(176) int local176; if (SceneGraph.underwaterTileHeights == null) { local176 = SceneGraph.surfaceTileHeights[0][local146][local152] + 128 - Static123.anInt3947; @@ -68,15 +68,15 @@ public final class Static156 { 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); + SceneGraph.aBooleanArrayArray3[local104][local113] = Static160.method3049(local130, local201, local176, local140, local99); } else { - Static89.aBooleanArrayArray3[local104][local113] = false; + SceneGraph.aBooleanArrayArray3[local104][local113] = false; } } } - for (local104 = 0; local104 < Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 1; local104++) { - for (local113 = 0; local113 < Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 1; local113++) { - Static48.aBooleanArrayArray1[local104][local113] = Static89.aBooleanArrayArray3[local104][local113] || Static89.aBooleanArrayArray3[local104 + 1][local113] || Static89.aBooleanArrayArray3[local104][local113 + 1] || Static89.aBooleanArrayArray3[local104 + 1][local113 + 1]; + for (local104 = 0; local104 < SceneGraph.visibility + SceneGraph.visibility + 1; local104++) { + for (local113 = 0; local113 < SceneGraph.visibility + SceneGraph.visibility + 1; local113++) { + SceneGraph.aBooleanArrayArray1[local104][local113] = SceneGraph.aBooleanArrayArray3[local104][local113] || SceneGraph.aBooleanArrayArray3[local104 + 1][local113] || SceneGraph.aBooleanArrayArray3[local104][local113 + 1] || SceneGraph.aBooleanArrayArray3[local104 + 1][local113 + 1]; } } Static8.anIntArray8 = arg6; @@ -86,7 +86,7 @@ public final class Static156 { Static206.anIntArray427 = arg10; Static123.method2419(); if (SceneGraph.underWaterGroundTiles != null) { - SceneGraph.setRenderTiles(true); + SceneGraph.setUnderwater(true); Static248.method3292(arg0, arg1, arg2, null, 0, (byte) 0, arg13, arg14); if (GlRenderer.enabled) { MaterialManager.renderingUnderwater = false; @@ -94,7 +94,7 @@ public final class Static156 { FogManager.method3066(null); LightingManager.method2390(); } - SceneGraph.setRenderTiles(false); + SceneGraph.setUnderwater(false); } Static248.method3292(arg0, arg1, arg2, arg5, arg11, arg12, arg13, arg14); } diff --git a/client/src/main/java/rt4/Static164.java b/client/src/main/java/rt4/Static164.java index 045dbc0..d715e62 100644 --- a/client/src/main/java/rt4/Static164.java +++ b/client/src/main/java/rt4/Static164.java @@ -14,7 +14,7 @@ public final class Static164 { @OriginalMember(owner = "client!na", name = "a", descriptor = "(IIIIIIIZ)Z") public static boolean method3109(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(6) int arg4) { - @Pc(14) long local14 = Static265.method4521(arg4, arg0 + 0, arg2); + @Pc(14) long local14 = SceneGraph.getWallKey(arg4, arg0 + 0, arg2); @Pc(28) int local28; @Pc(35) int local35; @Pc(42) int local42; @@ -95,7 +95,7 @@ public final class Static164 { return false; } } - local14 = Static35.method899(arg4, arg0 + 0, arg2); + local14 = SceneGraph.getSceneryKey(arg4, arg0 + 0, arg2); if (local14 != 0L) { local28 = (int) local14 >> 20 & 0x3; local35 = (int) local14 >> 14 & 0x1F; @@ -125,7 +125,7 @@ public final class Static164 { return false; } } - local14 = SceneGraph.method602(arg4, arg0 + 0, arg2); + local14 = SceneGraph.getGroundDecorKey(arg4, arg0 + 0, arg2); if (local14 != 0L) { local28 = (int) local14 >> 20 & 0x3; local35 = (int) (local14 >>> 32) & Integer.MAX_VALUE; diff --git a/client/src/main/java/rt4/Static185.java b/client/src/main/java/rt4/Static185.java index 9cbb231..d214444 100644 --- a/client/src/main/java/rt4/Static185.java +++ b/client/src/main/java/rt4/Static185.java @@ -97,7 +97,7 @@ public final class Static185 { } else { local387 = new Loc(arg5, 22, arg9, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); } - SceneGraph.method2570(arg2, arg7, arg8, local199, local387, local261, local62.aBoolean211); + SceneGraph.setGroundDecor(arg2, arg7, arg8, local199, local387, local261, local62.aBoolean211); if (local62.anInt4435 == 1 && arg4 != null) { arg4.method3057(arg7, arg8); } @@ -161,7 +161,7 @@ public final class Static185 { } else { local387 = new Loc(arg5, 0, arg9, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); } - SceneGraph.method4508(arg2, arg7, arg8, local199, local387, null, Static267.anIntArray517[arg9], 0, local261); + SceneGraph.setWall(arg2, arg7, arg8, local199, local387, null, Static267.anIntArray517[arg9], 0, local261); if (arg1) { if (arg9 == 0) { if (local62.aBoolean215) { @@ -213,7 +213,7 @@ public final class Static185 { } else { local387 = new Loc(arg5, 1, arg9, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); } - SceneGraph.method4508(arg2, arg7, arg8, local199, local387, null, Static78.anIntArray204[arg9], 0, local261); + SceneGraph.setWall(arg2, arg7, arg8, local199, local387, null, Static78.anIntArray204[arg9], 0, local261); if (local62.aBoolean215 && arg1) { if (arg9 == 0) { SceneGraph.aByteArrayArrayArray9[arg2][arg7][arg8 + 1] = 50; @@ -249,7 +249,7 @@ public final class Static185 { local1254 = new Loc(arg5, 2, arg9 + 4, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); local1269 = new Loc(arg5, 2, local1226, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); } - SceneGraph.method4508(arg2, arg7, arg8, local199, local1254, local1269, Static267.anIntArray517[arg9], Static267.anIntArray517[local1226], local261); + SceneGraph.setWall(arg2, arg7, arg8, local199, local1254, local1269, Static267.anIntArray517[arg9], Static267.anIntArray517[local1226], local261); if (local62.aBoolean220 && arg1) { if (arg9 == 0) { SceneGraph.anIntArrayArrayArray6[arg2][arg7][arg8] |= 0x1; @@ -281,7 +281,7 @@ public final class Static185 { } else { local387 = new Loc(arg5, 3, arg9, arg0, arg7, arg8, local62.anInt4430, local62.aBoolean209, null); } - SceneGraph.method4508(arg2, arg7, arg8, local199, local387, null, Static78.anIntArray204[arg9], 0, local261); + SceneGraph.setWall(arg2, arg7, arg8, local199, local387, null, Static78.anIntArray204[arg9], 0, local261); if (local62.aBoolean215 && arg1) { if (arg9 == 0) { SceneGraph.aByteArrayArrayArray9[arg2][arg7][arg8 + 1] = 50; @@ -330,7 +330,7 @@ public final class Static185 { @Pc(1950) Loc_Class139 local1950; if (arg6 == 5) { local1226 = 16; - local1889 = Static265.method4521(arg2, arg7, arg8); + local1889 = SceneGraph.getWallKey(arg2, arg7, arg8); if (local1889 != 0L) { local1226 = LocTypeList.get(Integer.MAX_VALUE & (int) (local1889 >>> 32)).wallDecorOffsetScale; } @@ -346,7 +346,7 @@ public final class Static185 { Static91.method1880(arg2, arg7, arg8, local199, local1934, null, Static267.anIntArray517[arg9], 0, local1226 * Static34.anIntArray80[arg9], Static238.anIntArray469[arg9] * local1226, local261); } else if (arg6 == 6) { local1226 = 8; - local1889 = Static265.method4521(arg2, arg7, arg8); + local1889 = SceneGraph.getWallKey(arg2, arg7, arg8); if (local1889 != 0L) { local1226 = LocTypeList.get(Integer.MAX_VALUE & (int) (local1889 >>> 32)).wallDecorOffsetScale / 2; } @@ -374,7 +374,7 @@ public final class Static185 { Static91.method1880(arg2, arg7, arg8, local199, local387, null, 256, local2137, 0, 0, local261); } else if (arg6 == 8) { local1226 = 8; - local1889 = Static265.method4521(arg2, arg7, arg8); + local1889 = SceneGraph.getWallKey(arg2, arg7, arg8); if (local1889 != 0L) { local1226 = LocTypeList.get(Integer.MAX_VALUE & (int) (local1889 >>> 32)).wallDecorOffsetScale / 2; } diff --git a/client/src/main/java/rt4/Static219.java b/client/src/main/java/rt4/Static219.java index 2c4062d..28d8468 100644 --- a/client/src/main/java/rt4/Static219.java +++ b/client/src/main/java/rt4/Static219.java @@ -1,7 +1,6 @@ package rt4; import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; public final class Static219 { @@ -32,15 +31,4 @@ public final class Static219 { @OriginalMember(owner = "client!rl", name = "eb", descriptor = "Lclient!na;") public static final JagString aClass100_928 = JagString.parse("(U0a )2 in: "); - @OriginalMember(owner = "client!rl", name = "i", descriptor = "(I)V") - public static void method3796() { - for (@Pc(10) SceneryStack local10 = (SceneryStack) Static26.sceneryList.head(); local10 != null; local10 = (SceneryStack) Static26.sceneryList.next()) { - if (local10.anInt924 == -1) { - local10.anInt925 = 0; - Static226.method3898(local10); - } else { - local10.unlink(); - } - } - } } diff --git a/client/src/main/java/rt4/Static220.java b/client/src/main/java/rt4/Static220.java index 2478da4..1506548 100644 --- a/client/src/main/java/rt4/Static220.java +++ b/client/src/main/java/rt4/Static220.java @@ -58,8 +58,8 @@ public final class Static220 { @OriginalMember(owner = "client!rm", name = "a", descriptor = "(III)V") public static void method3801() { for (@Pc(1) int local1 = 0; local1 < SceneGraph.anInt3114; local1++) { - for (@Pc(6) int local6 = 0; local6 < SceneGraph.mapSizeX; local6++) { - for (@Pc(11) int local11 = 0; local11 < SceneGraph.mapSizeZ; local11++) { + for (@Pc(6) int local6 = 0; local6 < SceneGraph.width; local6++) { + for (@Pc(11) int local11 = 0; local11 < SceneGraph.length; local11++) { @Pc(22) Tile local22 = SceneGraph.tiles[local1][local6][local11]; if (local22 != null) { @Pc(27) Wall local27 = local22.wall; diff --git a/client/src/main/java/rt4/Static223.java b/client/src/main/java/rt4/Static223.java index e9fb4c6..926dc09 100644 --- a/client/src/main/java/rt4/Static223.java +++ b/client/src/main/java/rt4/Static223.java @@ -41,12 +41,12 @@ public final class Static223 { @OriginalMember(owner = "client!sc", name = "a", descriptor = "()V") public static void method3858() { - for (@Pc(1) int local1 = 0; local1 < SceneGraph.anInt726; local1++) { - @Pc(8) Scenery local8 = SceneGraph.aClass31Array3[local1]; + for (@Pc(1) int local1 = 0; local1 < SceneGraph.sceneryLen; local1++) { + @Pc(8) Scenery local8 = SceneGraph.scenery[local1]; Static266.method4193(local8); - SceneGraph.aClass31Array3[local1] = null; + SceneGraph.scenery[local1] = null; } - SceneGraph.anInt726 = 0; + SceneGraph.sceneryLen = 0; } @OriginalMember(owner = "client!sc", name = "a", descriptor = "(IZ)Lclient!j;") diff --git a/client/src/main/java/rt4/Static226.java b/client/src/main/java/rt4/Static226.java index 94e9d1b..1ec6936 100644 --- a/client/src/main/java/rt4/Static226.java +++ b/client/src/main/java/rt4/Static226.java @@ -1,6 +1,5 @@ package rt4; -import org.openrs2.deob.annotation.OriginalArg; import org.openrs2.deob.annotation.OriginalMember; import org.openrs2.deob.annotation.Pc; @@ -14,34 +13,6 @@ public final class Static226 { @OriginalMember(owner = "client!ml", name = "Q", descriptor = "I") public static int anInt3953 = 0; - @OriginalMember(owner = "client!sf", name = "a", descriptor = "(ILclient!cd;)V") - public static void method3898(@OriginalArg(1) SceneryStack arg0) { - @Pc(5) long local5 = 0L; - @Pc(7) int local7 = -1; - @Pc(14) int local14 = 0; - if (arg0.anInt927 == 0) { - local5 = Static265.method4521(arg0.level, arg0.x, arg0.z); - } - @Pc(31) int local31 = 0; - if (arg0.anInt927 == 1) { - local5 = Static139.method2703(arg0.level, arg0.x, arg0.z); - } - if (arg0.anInt927 == 2) { - local5 = Static35.method899(arg0.level, arg0.x, arg0.z); - } - if (arg0.anInt927 == 3) { - local5 = SceneGraph.method602(arg0.level, arg0.x, arg0.z); - } - if (local5 != 0L) { - local7 = Integer.MAX_VALUE & (int) (local5 >>> 32); - local31 = (int) local5 >> 20 & 0x3; - local14 = (int) local5 >> 14 & 0x1F; - } - arg0.anInt921 = local7; - arg0.anInt920 = local14; - arg0.anInt923 = local31; - } - @OriginalMember(owner = "client!sf", name = "b", descriptor = "(B)V") public static void method3901() { @Pc(16) int local16 = Fonts.b12Full.getStringWidth(LocalizedText.CHOOSE_OPTION); diff --git a/client/src/main/java/rt4/Static247.java b/client/src/main/java/rt4/Static247.java index c177392..e9c5fe8 100644 --- a/client/src/main/java/rt4/Static247.java +++ b/client/src/main/java/rt4/Static247.java @@ -81,7 +81,7 @@ public final class Static247 { @Pc(33) float local33 = 0.0F; if (GlRenderer.enabled) { if (SceneGraph.underwaterTileHeights == SceneGraph.tileHeights) { - var9 = Static62.anIntArrayArray11[local18][local21]; + var9 = SceneGraph.anIntArrayArray11[local18][local21]; var10 = var9 & 0xFFFFFF; if (var10 != Static152.anInt3604) { Static152.anInt3604 = var10; @@ -386,21 +386,21 @@ public final class Static247 { if (local1332 == 0) { local65 -= 64; local115 += 64; - if (local115 < local65 && local18 > 0 && local21 < SceneGraph.mapSizeZ - 1) { + if (local115 < local65 && local18 > 0 && local21 < SceneGraph.length - 1) { LightingManager.method2393(Static149.anInt3555, Static123.anInt3947, Static217.anInt4903, local24, local18 - 1, local21 + 1); break label882; } } else if (local1332 == 1) { local65 += 64; local115 += 64; - if (local115 < -local65 && local18 < SceneGraph.mapSizeX - 1 && local21 < SceneGraph.mapSizeZ - 1) { + if (local115 < -local65 && local18 < SceneGraph.width - 1 && local21 < SceneGraph.length - 1) { LightingManager.method2393(Static149.anInt3555, Static123.anInt3947, Static217.anInt4903, local24, local18 + 1, local21 + 1); break label882; } } else if (local1332 == 2) { local65 += 64; local115 -= 64; - if (local115 > local65 && local18 < SceneGraph.mapSizeX - 1 && local21 > 0) { + if (local115 > local65 && local18 < SceneGraph.width - 1 && local21 > 0) { LightingManager.method2393(Static149.anInt3555, Static123.anInt3947, Static217.anInt4903, local24, local18 + 1, local21 - 1); break label882; } diff --git a/client/src/main/java/rt4/Static248.java b/client/src/main/java/rt4/Static248.java index d744a96..99f27e7 100644 --- a/client/src/main/java/rt4/Static248.java +++ b/client/src/main/java/rt4/Static248.java @@ -27,7 +27,7 @@ public final class Static248 { for (local37 = Static80.anInt4698; local37 < Static215.anInt4866; local37++) { @Pc(46) Tile local46 = local30[local32][local37]; if (local46 != null) { - if (Static48.aBooleanArrayArray1[local32 + Static123.tileVisibilityDistance - Static167.anInt4069][local37 + Static123.tileVisibilityDistance - Static193.anInt4539] && (arg3 == null || local23 < arg4 || arg3[local23][local32][local37] != arg5)) { + if (SceneGraph.aBooleanArrayArray1[local32 + SceneGraph.visibility - Static167.anInt4069][local37 + SceneGraph.visibility - Static193.anInt4539] && (arg3 == null || local23 < arg4 || arg3[local23][local32][local37] != arg5)) { local46.aBoolean45 = true; local46.aBoolean46 = true; if (local46.sceneryLen > 0) { @@ -111,7 +111,7 @@ public final class Static248 { } if (local32 == 0 && Preferences.sceneryShadowsType > 0) { GlRenderer.method4159(101.5F); - Static242.method4198(Static167.anInt4069, Static193.anInt4539, Static123.tileVisibilityDistance, arg1, Static48.aBooleanArrayArray1, SceneGraph.tileHeights[0]); + Static242.method4198(Static167.anInt4069, Static193.anInt4539, SceneGraph.visibility, arg1, SceneGraph.aBooleanArrayArray1, SceneGraph.tileHeights[0]); } local32++; } @@ -127,11 +127,11 @@ public final class Static248 { @Pc(428) int local428; for (local399 = Static235.anInt5276; local399 < SceneGraph.anInt3114; local399++) { local406 = SceneGraph.tiles[local399]; - for (local37 = -Static123.tileVisibilityDistance; local37 <= 0; local37++) { + for (local37 = -SceneGraph.visibility; local37 <= 0; local37++) { local415 = Static167.anInt4069 + local37; local183 = Static167.anInt4069 - local37; if (local415 >= Static31.anInt987 || local183 < Static2.anInt15) { - for (local428 = -Static123.tileVisibilityDistance; local428 <= 0; local428++) { + for (local428 = -SceneGraph.visibility; local428 <= 0; local428++) { local434 = Static193.anInt4539 + local428; local438 = Static193.anInt4539 - local428; if (local415 >= Static31.anInt987) { @@ -174,11 +174,11 @@ public final class Static248 { } for (local399 = Static235.anInt5276; local399 < SceneGraph.anInt3114; local399++) { local406 = SceneGraph.tiles[local399]; - for (local37 = -Static123.tileVisibilityDistance; local37 <= 0; local37++) { + for (local37 = -SceneGraph.visibility; local37 <= 0; local37++) { local415 = Static167.anInt4069 + local37; local183 = Static167.anInt4069 - local37; if (local415 >= Static31.anInt987 || local183 < Static2.anInt15) { - for (local428 = -Static123.tileVisibilityDistance; local428 <= 0; local428++) { + for (local428 = -SceneGraph.visibility; local428 <= 0; local428++) { local434 = Static193.anInt4539 + local428; local438 = Static193.anInt4539 - local428; if (local415 >= Static31.anInt987) { diff --git a/client/src/main/java/rt4/Static26.java b/client/src/main/java/rt4/Static26.java index 0d83f2f..4c30766 100644 --- a/client/src/main/java/rt4/Static26.java +++ b/client/src/main/java/rt4/Static26.java @@ -6,9 +6,6 @@ import org.openrs2.deob.annotation.Pc; public final class Static26 { - @OriginalMember(owner = "client!ca", name = "X", descriptor = "Lclient!ih;") - public static LinkedList sceneryList = new LinkedList(); - @OriginalMember(owner = "client!ca", name = "cb", descriptor = "Lclient!na;") public static final JagString aClass100_160 = Static165.method3165(); diff --git a/client/src/main/java/rt4/Static264.java b/client/src/main/java/rt4/Static264.java index 61a8a1d..36fa9c0 100644 --- a/client/src/main/java/rt4/Static264.java +++ b/client/src/main/java/rt4/Static264.java @@ -26,25 +26,25 @@ public final class Static264 { @OriginalMember(owner = "client!vh", name = "a", descriptor = "(Lclient!th;III)V") public static void method3574(@OriginalArg(0) Entity arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3) { @Pc(12) Tile local12; - if (arg2 < SceneGraph.mapSizeX) { + if (arg2 < SceneGraph.width) { local12 = SceneGraph.tiles[arg1][arg2 + 1][arg3]; if (local12 != null && local12.groundDecor != null && local12.groundDecor.primary.method4543()) { arg0.method4544(local12.groundDecor.primary, 128, 0, 0, true); } } - if (arg3 < SceneGraph.mapSizeX) { + if (arg3 < SceneGraph.width) { local12 = SceneGraph.tiles[arg1][arg2][arg3 + 1]; if (local12 != null && local12.groundDecor != null && local12.groundDecor.primary.method4543()) { arg0.method4544(local12.groundDecor.primary, 0, 0, 128, true); } } - if (arg2 < SceneGraph.mapSizeX && arg3 < SceneGraph.mapSizeZ) { + if (arg2 < SceneGraph.width && arg3 < SceneGraph.length) { local12 = SceneGraph.tiles[arg1][arg2 + 1][arg3 + 1]; if (local12 != null && local12.groundDecor != null && local12.groundDecor.primary.method4543()) { arg0.method4544(local12.groundDecor.primary, 128, 0, 128, true); } } - if (arg2 < SceneGraph.mapSizeX && arg3 > 0) { + if (arg2 < SceneGraph.width && arg3 > 0) { local12 = SceneGraph.tiles[arg1][arg2 + 1][arg3 - 1]; if (local12 != null && local12.groundDecor != null && local12.groundDecor.primary.method4543()) { arg0.method4544(local12.groundDecor.primary, 128, 0, -128, true); diff --git a/client/src/main/java/rt4/Static265.java b/client/src/main/java/rt4/Static265.java index 87cc50c..5778b34 100644 --- a/client/src/main/java/rt4/Static265.java +++ b/client/src/main/java/rt4/Static265.java @@ -1,15 +1,5 @@ package rt4; -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalMember; -import org.openrs2.deob.annotation.Pc; - public final class Static265 { - @OriginalMember(owner = "client!vj", name = "a", descriptor = "(III)J") - public static long method4521(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - @Pc(7) Tile local7 = SceneGraph.tiles[arg0][arg1][arg2]; - return local7 == null || local7.wall == null ? 0L : local7.wall.key; - } - } diff --git a/client/src/main/java/rt4/Static28.java b/client/src/main/java/rt4/Static28.java index 85538e6..eb94bcd 100644 --- a/client/src/main/java/rt4/Static28.java +++ b/client/src/main/java/rt4/Static28.java @@ -1,44 +1,5 @@ package rt4; -import org.openrs2.deob.annotation.OriginalArg; -import org.openrs2.deob.annotation.OriginalMember; - public final class Static28 { - @OriginalMember(owner = "client!cd", name = "a", descriptor = "(IIIIZ)V") - public static void method792(@OriginalArg(3) int tileVisibility, @OriginalArg(4) boolean hasUnderWaterMap) { - SceneGraph.mapSizeX = 104; - SceneGraph.mapSizeZ = 104; - Static123.tileVisibilityDistance = tileVisibility; - SceneGraph.surfaceGroundTiles = new Tile[4][SceneGraph.mapSizeX][SceneGraph.mapSizeZ]; - SceneGraph.surfaceTileHeights = new int[4][SceneGraph.mapSizeX + 1][SceneGraph.mapSizeZ + 1]; - if (GlRenderer.enabled) { - SceneGraph.surfaceHdTiles = new GlTile[4][]; - } - if (hasUnderWaterMap) { - SceneGraph.underWaterGroundTiles = new Tile[1][SceneGraph.mapSizeX][SceneGraph.mapSizeZ]; - Static62.anIntArrayArray11 = new int[SceneGraph.mapSizeX][SceneGraph.mapSizeZ]; - 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; - SceneGraph.underwaterTileHeights = null; - SceneGraph.underWaterHdTiles = null; - } - SceneGraph.setRenderTiles(false); - SceneGraph.aClass120Array1 = new Class120[500]; - SceneGraph.anInt917 = 0; - SceneGraph.aClass120Array2 = new Class120[500]; - SceneGraph.anInt4870 = 0; - Static140.anIntArrayArrayArray12 = new int[4][SceneGraph.mapSizeX + 1][SceneGraph.mapSizeZ + 1]; - SceneGraph.aClass31Array3 = new Scenery[5000]; - SceneGraph.anInt726 = 0; - SceneGraph.aClass31Array2 = new Scenery[100]; - Static48.aBooleanArrayArray1 = new boolean[Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 1][Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 1]; - Static89.aBooleanArrayArray3 = new boolean[Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 2][Static123.tileVisibilityDistance + Static123.tileVisibilityDistance + 2]; - SceneGraph.aByteArrayArrayArray13 = new byte[4][SceneGraph.mapSizeX][SceneGraph.mapSizeZ]; - } } diff --git a/client/src/main/java/rt4/Static35.java b/client/src/main/java/rt4/Static35.java index 47bbb56..cce098f 100644 --- a/client/src/main/java/rt4/Static35.java +++ b/client/src/main/java/rt4/Static35.java @@ -78,19 +78,4 @@ public final class Static35 { } } - @OriginalMember(owner = "client!cl", name = "a", descriptor = "(III)J") - public static long method899(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - @Pc(7) Tile local7 = SceneGraph.tiles[arg0][arg1][arg2]; - if (local7 == null) { - return 0L; - } - for (@Pc(13) int local13 = 0; local13 < local7.sceneryLen; local13++) { - @Pc(22) Scenery local22 = local7.scenery[local13]; - if ((local22.key >> 29 & 0x3L) == 2L && local22.anInt1701 == arg1 && local22.anInt1696 == arg2) { - return local22.key; - } - } - return 0L; - } - } diff --git a/client/src/main/java/rt4/Static43.java b/client/src/main/java/rt4/Static43.java index 181a4ed..cd3ee42 100644 --- a/client/src/main/java/rt4/Static43.java +++ b/client/src/main/java/rt4/Static43.java @@ -43,13 +43,13 @@ public final class Static43 { public static void method1144(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) CollisionMap arg5) { @Pc(9) long local9 = 0L; if (arg3 == 0) { - local9 = Static265.method4521(arg2, arg1, arg0); + local9 = SceneGraph.getWallKey(arg2, arg1, arg0); } else if (arg3 == 1) { - local9 = Static139.method2703(arg2, arg1, arg0); + local9 = SceneGraph.getWallDecorKey(arg2, arg1, arg0); } else if (arg3 == 2) { - local9 = Static35.method899(arg2, arg1, arg0); + local9 = SceneGraph.getSceneryKey(arg2, arg1, arg0); } else if (arg3 == 3) { - local9 = SceneGraph.method602(arg2, arg1, arg0); + local9 = SceneGraph.getGroundDecorKey(arg2, arg1, arg0); } @Pc(57) int local57 = (int) local9 >> 14 & 0x1F; @Pc(70) int local70 = (int) (local9 >>> 32) & Integer.MAX_VALUE; diff --git a/client/src/main/java/rt4/Static45.java b/client/src/main/java/rt4/Static45.java index 4bca6cf..00b4941 100644 --- a/client/src/main/java/rt4/Static45.java +++ b/client/src/main/java/rt4/Static45.java @@ -227,7 +227,7 @@ public final class Static45 { if (GlRenderer.enabled && local152 > 0 && local234 != -1 && FluTypeList.get(local178 - 1).aBoolean198) { Static242.method4197(0, 0, true, false, local168, local173, local200 - SceneGraph.tileHeights[0][local168][local173], -SceneGraph.tileHeights[0][local168 + 1][local173] + local202, local209 - SceneGraph.tileHeights[0][local168 + 1][local173 + 1], local349 - SceneGraph.tileHeights[0][local168][local173 + 1]); } - if (GlRenderer.enabled && !underwater && Static62.anIntArrayArray11 != null && local152 == 0) { + if (GlRenderer.enabled && !underwater && SceneGraph.anIntArrayArray11 != null && local152 == 0) { for (local322 = local168 - 1; local322 <= local168 + 1; local322++) { for (@Pc(1794) int local1794 = local173 - 1; local1794 <= local173 + 1; local1794++) { if ((local322 != local168 || local173 != local1794) && local322 >= 0 && local322 < 104 && local1794 >= 0 && local1794 < 104) { @@ -235,7 +235,7 @@ public final class Static45 { if (local1834 != 0) { @Pc(1842) FloType local1842 = FloTypeList.method4395(local1834 - 1); if (local1842.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1842.texture) == MaterialManager.WATER) { - Static62.anIntArrayArray11[local168][local173] = local1842.anInt5889 + (local1842.anInt5898 << 24); + SceneGraph.anIntArrayArray11[local168][local173] = local1842.anInt5889 + (local1842.anInt5898 << 24); continue label771; } } @@ -250,9 +250,9 @@ public final class Static45 { @Pc(1301) int local1301; @Pc(1353) int local1353; @Pc(1288) int local1288; - if (GlRenderer.enabled && !underwater && Static62.anIntArrayArray11 != null && local152 == 0) { + if (GlRenderer.enabled && !underwater && SceneGraph.anIntArrayArray11 != null && local152 == 0) { if (local1248.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1248.texture) == MaterialManager.WATER) { - Static62.anIntArrayArray11[local168][local173] = (local1248.anInt5898 << 24) + local1248.anInt5889; + SceneGraph.anIntArrayArray11[local168][local173] = (local1248.anInt5898 << 24) + local1248.anInt5889; } else { label737: for (local1288 = local168 - 1; local1288 <= local168 + 1; local1288++) { for (local1301 = local173 - 1; local1301 <= local173 + 1; local1301++) { @@ -261,7 +261,7 @@ public final class Static45 { if (local1353 != 0) { @Pc(1366) FloType local1366 = FloTypeList.method4395(local1353 - 1); if (local1366.texture != -1 && Rasteriser.textureProvider.getMaterialType(local1366.texture) == MaterialManager.WATER) { - Static62.anIntArrayArray11[local168][local173] = local1366.anInt5889 + (local1366.anInt5898 << 24); + SceneGraph.anIntArrayArray11[local168][local173] = local1366.anInt5889 + (local1366.anInt5898 << 24); break label737; } } @@ -323,7 +323,7 @@ public final class Static45 { if (local200 > 103) { @Pc(2025) GlTile[] local2025; if (underwater) { - local2025 = Static193.method3501(SceneGraph.tileFlags, SceneGraph.tileShapes[local152], SceneGraph.tileUnderlays[local152], local146, local1896, Static62.anIntArrayArray11, SceneGraph.tileOverlays[local152], SceneGraph.tileAngles[local152], local1888, local152, local1900, local142, SceneGraph.tileHeights[local152], SceneGraph.surfaceTileHeights[0]); + local2025 = Static193.method3501(SceneGraph.tileFlags, SceneGraph.tileShapes[local152], SceneGraph.tileUnderlays[local152], local146, local1896, SceneGraph.anIntArrayArray11, SceneGraph.tileOverlays[local152], SceneGraph.tileAngles[local152], local1888, local152, local1900, local142, SceneGraph.tileHeights[local152], SceneGraph.surfaceTileHeights[0]); method2280(local152, local2025); break; } diff --git a/client/src/main/java/rt4/Static48.java b/client/src/main/java/rt4/Static48.java index f363c5c..09ba6d9 100644 --- a/client/src/main/java/rt4/Static48.java +++ b/client/src/main/java/rt4/Static48.java @@ -1,10 +1,5 @@ package rt4; -import org.openrs2.deob.annotation.OriginalMember; - public final class Static48 { - @OriginalMember(owner = "client!dl", name = "h", descriptor = "[[Z") - public static boolean[][] aBooleanArrayArray1; - } diff --git a/client/src/main/java/rt4/Static6.java b/client/src/main/java/rt4/Static6.java index 89152c5..3d4f867 100644 --- a/client/src/main/java/rt4/Static6.java +++ b/client/src/main/java/rt4/Static6.java @@ -13,7 +13,7 @@ public final class Static6 { public static void method84() { SceneGraph.clear(); for (@Pc(9) int local9 = 0; local9 < 4; local9++) { - PathFinder.collisionMaps[local9].resetFlags(); + PathFinder.collisionMaps[local9].clear(); } System.gc(); } diff --git a/client/src/main/java/rt4/Static62.java b/client/src/main/java/rt4/Static62.java index 8421847..a282fdf 100644 --- a/client/src/main/java/rt4/Static62.java +++ b/client/src/main/java/rt4/Static62.java @@ -4,9 +4,6 @@ import org.openrs2.deob.annotation.OriginalMember; public final class Static62 { - @OriginalMember(owner = "client!f", name = "ab", descriptor = "[[I") - public static int[][] anIntArrayArray11; - @OriginalMember(owner = "client!f", name = "V", descriptor = "I") public static int anInt1938 = 0; diff --git a/client/src/main/java/rt4/Static69.java b/client/src/main/java/rt4/Static69.java index a0d81e1..170ba53 100644 --- a/client/src/main/java/rt4/Static69.java +++ b/client/src/main/java/rt4/Static69.java @@ -64,9 +64,9 @@ public final class Static69 { for (@Pc(17) int local17 = arg1; local17 <= arg1 + 1; local17++) { if (local17 != SceneGraph.anInt3114) { for (@Pc(28) int local28 = local3; local28 <= local7; local28++) { - if (local28 >= 0 && local28 < SceneGraph.mapSizeX) { + if (local28 >= 0 && local28 < SceneGraph.width) { for (@Pc(39) int local39 = local11; local39 <= local15; local39++) { - if (local39 >= 0 && local39 < SceneGraph.mapSizeZ && (!local1 || local28 >= local7 || local39 >= local15 || local39 < arg3 && local28 != arg2)) { + if (local39 >= 0 && local39 < SceneGraph.length && (!local1 || local28 >= local7 || local39 >= local15 || local39 < arg3 && local28 != arg2)) { @Pc(71) Tile local71 = SceneGraph.tiles[local17][local28][local39]; if (local71 != null) { @Pc(158) int local158 = (SceneGraph.tileHeights[local17][local28][local39] + SceneGraph.tileHeights[local17][local28 + 1][local39] + SceneGraph.tileHeights[local17][local28][local39 + 1] + SceneGraph.tileHeights[local17][local28 + 1][local39 + 1]) / 4 - (SceneGraph.tileHeights[arg1][arg2][arg3] + SceneGraph.tileHeights[arg1][arg2 + 1][arg3] + SceneGraph.tileHeights[arg1][arg2][arg3 + 1] + SceneGraph.tileHeights[arg1][arg2 + 1][arg3 + 1]) / 4; diff --git a/client/src/main/java/rt4/Static73.java b/client/src/main/java/rt4/Static73.java index ade5003..f5f29f1 100644 --- a/client/src/main/java/rt4/Static73.java +++ b/client/src/main/java/rt4/Static73.java @@ -70,7 +70,7 @@ public final class Static73 { if (arg1 != arg2 || arg3 != arg4) { for (local16 = arg1; local16 <= arg2; local16++) { for (local20 = arg3; local20 <= arg4; local20++) { - if (Static140.anIntArrayArrayArray12[arg0][local16][local20] == -Static13.anInt437) { + if (SceneGraph.anIntArrayArrayArray12[arg0][local16][local20] == -Static13.anInt437) { return false; } } diff --git a/client/src/main/java/rt4/Static89.java b/client/src/main/java/rt4/Static89.java index 9c363aa..020cee2 100644 --- a/client/src/main/java/rt4/Static89.java +++ b/client/src/main/java/rt4/Static89.java @@ -7,9 +7,6 @@ import org.openrs2.deob.annotation.Pc; public final class Static89 { - @OriginalMember(owner = "client!ha", name = "k", descriptor = "[[Z") - public static boolean[][] aBooleanArrayArray3; - @OriginalMember(owner = "client!ha", name = "a", descriptor = "(ZB)V") public static void method1835(@OriginalArg(0) boolean arg0) { @Pc(11) byte local11; diff --git a/client/src/main/java/rt4/Static9.java b/client/src/main/java/rt4/Static9.java index d9d8367..dc2b58a 100644 --- a/client/src/main/java/rt4/Static9.java +++ b/client/src/main/java/rt4/Static9.java @@ -43,7 +43,7 @@ public final class Static9 { @OriginalMember(owner = "client!al", name = "a", descriptor = "(III)Z") public static boolean method187(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - @Pc(7) int local7 = Static140.anIntArrayArrayArray12[arg0][arg1][arg2]; + @Pc(7) int local7 = SceneGraph.anIntArrayArrayArray12[arg0][arg1][arg2]; if (local7 == -Static13.anInt437) { return false; } else if (local7 == Static13.anInt437) { @@ -52,10 +52,10 @@ public final class Static9 { @Pc(22) int local22 = arg1 << 7; @Pc(26) int local26 = arg2 << 7; if (SceneGraph.method4394(local22 + 1, SceneGraph.tileHeights[arg0][arg1][arg2], local26 + 1) && SceneGraph.method4394(local22 + 128 - 1, SceneGraph.tileHeights[arg0][arg1 + 1][arg2], local26 + 1) && SceneGraph.method4394(local22 + 128 - 1, SceneGraph.tileHeights[arg0][arg1 + 1][arg2 + 1], local26 + 128 - 1) && SceneGraph.method4394(local22 + 1, SceneGraph.tileHeights[arg0][arg1][arg2 + 1], local26 + 128 - 1)) { - Static140.anIntArrayArrayArray12[arg0][arg1][arg2] = Static13.anInt437; + SceneGraph.anIntArrayArrayArray12[arg0][arg1][arg2] = Static13.anInt437; return true; } else { - Static140.anIntArrayArrayArray12[arg0][arg1][arg2] = -Static13.anInt437; + SceneGraph.anIntArrayArrayArray12[arg0][arg1][arg2] = -Static13.anInt437; return false; } } diff --git a/client/src/main/java/rt4/client.java b/client/src/main/java/rt4/client.java index f670da9..14f5d7b 100644 --- a/client/src/main/java/rt4/client.java +++ b/client/src/main/java/rt4/client.java @@ -567,7 +567,7 @@ public final class client extends GameShell { } } } - Static26.sceneryList = new LinkedList(); + ChangeLocRequest.queue = new LinkedList(); FriendsList.state = 0; FriendsList.size = 0; VarpDomain.reset();