diff --git a/client/src/main/java/rt4/LoginManager.java b/client/src/main/java/rt4/LoginManager.java index 2511128..1e60c85 100644 --- a/client/src/main/java/rt4/LoginManager.java +++ b/client/src/main/java/rt4/LoginManager.java @@ -26,8 +26,6 @@ public class LoginManager { public static final JagString aClass100_772 = JagString.parse("um"); @OriginalMember(owner = "client!gm", name = "W", descriptor = "Lclient!na;") public static final JagString UNDERSCORE = JagString.parse("_"); - @OriginalMember(owner = "client!hk", name = "W", descriptor = "Lclient!ih;") - public static final LinkedList aClass69_64 = new LinkedList(); @OriginalMember(owner = "client!gd", name = "h", descriptor = "[I") public static final int[] anIntArray204 = new int[]{16, 32, 64, 128}; @OriginalMember(owner = "client!rl", name = "X", descriptor = "I") @@ -782,8 +780,8 @@ public class LoginManager { FogManager.setInstantFade(); } LightingManager.anInt2875 = -1; - aClass69_64.clear(); - Static217.aClass69_116.clear(); + SceneGraph.spotanims.clear(); + SceneGraph.projectiles.clear(); } @OriginalMember(owner = "client!dh", name = "a", descriptor = "(Z)V") diff --git a/client/src/main/java/rt4/ObjStack.java b/client/src/main/java/rt4/ObjStack.java index 0ae08b8..39a047e 100644 --- a/client/src/main/java/rt4/ObjStack.java +++ b/client/src/main/java/rt4/ObjStack.java @@ -9,13 +9,13 @@ import org.openrs2.deob.annotation.Pc; public final class ObjStack extends Entity { @OriginalMember(owner = "client!uj", name = "v", descriptor = "I") - public int anInt5550; + public int amount; @OriginalMember(owner = "client!uj", name = "D", descriptor = "I") public int type; @OriginalMember(owner = "client!uj", name = "z", descriptor = "I") - private int anInt5553 = -32768; + private int minY = -32768; @OriginalMember(owner = "client!uj", name = "a", descriptor = "(IIIII)V") @Override @@ -25,16 +25,16 @@ public final class ObjStack extends Entity { @OriginalMember(owner = "client!uj", name = "a", descriptor = "(IIIIIIIIJILclient!ga;)V") @Override public final void render(@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) long arg8, @OriginalArg(9) int arg9, @OriginalArg(10) ParticleSystem arg10) { - @Pc(16) Model local16 = ObjTypeList.get(this.type).getModel(-1, 0, null, this.anInt5550, 0); + @Pc(16) Model local16 = ObjTypeList.get(this.type).getModel(-1, 0, null, this.amount, 0); if (local16 != null) { local16.render(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); - this.anInt5553 = local16.getMinY(); + this.minY = local16.getMinY(); } } @OriginalMember(owner = "client!uj", name = "b", descriptor = "()I") @Override public final int getMinY() { - return this.anInt5553; + return this.minY; } } diff --git a/client/src/main/java/rt4/ObjStackEntity.java b/client/src/main/java/rt4/ObjStackEntity.java index c1d037d..85f55bd 100644 --- a/client/src/main/java/rt4/ObjStackEntity.java +++ b/client/src/main/java/rt4/ObjStackEntity.java @@ -7,26 +7,26 @@ import org.openrs2.deob.annotation.OriginalMember; public final class ObjStackEntity { @OriginalMember(owner = "client!jj", name = "a", descriptor = "Lclient!th;") - public Entity aClass8_7; + public Entity secondary; @OriginalMember(owner = "client!jj", name = "b", descriptor = "I") public int anInt3057; @OriginalMember(owner = "client!jj", name = "c", descriptor = "Lclient!th;") - public Entity aClass8_8; + public Entity tertiary; @OriginalMember(owner = "client!jj", name = "h", descriptor = "Lclient!th;") - public Entity aClass8_9; + public Entity primary; @OriginalMember(owner = "client!jj", name = "k", descriptor = "I") - public int anInt3061; + public int zFine; @OriginalMember(owner = "client!jj", name = "n", descriptor = "I") public int anInt3063; @OriginalMember(owner = "client!jj", name = "o", descriptor = "I") - public int anInt3064; + public int xFine; @OriginalMember(owner = "client!jj", name = "r", descriptor = "J") - public long aLong108; + public long key; } diff --git a/client/src/main/java/rt4/ProjAnim.java b/client/src/main/java/rt4/ProjAnim.java index aeb4853..cb5319b 100644 --- a/client/src/main/java/rt4/ProjAnim.java +++ b/client/src/main/java/rt4/ProjAnim.java @@ -171,7 +171,7 @@ public final class ProjAnim extends Entity { } @OriginalMember(owner = "client!ra", name = "b", descriptor = "(IIIII)V") - public final void method3705(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3) { + public final void setTarget(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3) { @Pc(17) double local17; if (!this.aBoolean239) { @Pc(10) double local10 = arg0 - this.anInt4817; diff --git a/client/src/main/java/rt4/Protocol.java b/client/src/main/java/rt4/Protocol.java index d80e89e..4d98498 100644 --- a/client/src/main/java/rt4/Protocol.java +++ b/client/src/main/java/rt4/Protocol.java @@ -110,8 +110,8 @@ public class Protocol { public static int anInt4941 = 1; @OriginalMember(owner = "client!g", name = "b", descriptor = "(B)V") - public static void readLocationPacket() { - if (opcode == ServerProt.LOCATION_PACKET_195) { + public static void readZonePacket() { + if (opcode == ServerProt.LOC_DEL) { int local15 = inboundBuffer.g1neg(); int local19 = local15 & 0x3; int local23 = local15 >> 2; @@ -122,7 +122,7 @@ public class Protocol { if (local39 >= 0 && local45 >= 0 && local39 < 104 && local45 < 104) { ChangeLocRequest.push(Player.level, local45, local19, local39, -1, -1, local27, local23, 0); } - } else if (opcode == ServerProt.LOCATION_PACKET_33) { + } else if (opcode == ServerProt.OBJ_REVEAL) { int local15 = inboundBuffer.ig2(); int local23 = inboundBuffer.g1(); int local27 = (local23 & 0x7) + SceneGraph.currentChunkZ; @@ -130,7 +130,7 @@ public class Protocol { int local31 = inboundBuffer.g2add(); if (local19 >= 0 && local27 >= 0 && local19 < 104 && local27 < 104) { @Pc(122) ObjStack local122 = new ObjStack(); - local122.anInt5550 = local31; + local122.amount = local31; local122.type = local15; if (SceneGraph.objStacks[Player.level][local19][local27] == null) { SceneGraph.objStacks[Player.level][local19][local27] = new LinkedList(); @@ -138,7 +138,7 @@ public class Protocol { SceneGraph.objStacks[Player.level][local19][local27].addTail(new ObjStackNode(local122)); spawnGroundObject(local27, local19); } - } else if (opcode == ServerProt.LOCATION_PACKET_121) { + } else if (opcode == ServerProt.MAP_PROJANIM_3) { int local15 = inboundBuffer.g1(); int local23 = SceneGraph.currentChunkX * 2 + (local15 >> 4 & 0xF); int local19 = (local15 & 0xF) + SceneGraph.currentChunkZ * 2; @@ -161,10 +161,10 @@ public class Protocol { local19 = local19 * 64; local23 = local23 * 64; ProjAnim local317 = new ProjAnim(local45, Player.level, local23, local19, SceneGraph.getTileHeight(Player.level, local23, local19) - local218, client.loop + local228, local232 + client.loop, local236, local247, local39, local224); - local317.method3705(local31, client.loop + local228, -local224 + SceneGraph.getTileHeight(Player.level, local27, local31), local27); - Static217.aClass69_116.addTail(new ProjAnimNode(local317)); + local317.setTarget(local31, client.loop + local228, -local224 + SceneGraph.getTileHeight(Player.level, local27, local31), local27); + SceneGraph.projectiles.addTail(new ProjAnimNode(local317)); } - } else if (opcode == ServerProt.LOCATION_PACKET_17) { + } else if (opcode == ServerProt.SPOTANIM_SPECIFIC) { int local15 = inboundBuffer.g1(); int local23 = SceneGraph.currentChunkX + (local15 >> 4 & 0x7); int local19 = SceneGraph.currentChunkZ + (local15 & 0x7); @@ -175,9 +175,9 @@ public class Protocol { local23 = local23 * 128 + 64; local19 = local19 * 128 + 64; @Pc(427) SpotAnim local427 = new SpotAnim(local27, Player.level, local23, local19, SceneGraph.getTileHeight(Player.level, local23, local19) - local31, local39, client.loop); - LoginManager.aClass69_64.addTail(new SpotAnimNode(local427)); + SceneGraph.spotanims.addTail(new SpotAnimNode(local427)); } - } else if (opcode == ServerProt.LOCATION_PACKET_179) { + } else if (opcode == ServerProt.LOC_ADD) { int local15 = inboundBuffer.g1add(); int local23 = local15 >> 2; int local19 = local15 & 0x3; @@ -189,7 +189,7 @@ public class Protocol { if (local39 >= 0 && local45 >= 0 && local39 < 104 && local45 < 104) { ChangeLocRequest.push(Player.level, local45, local19, local39, -1, local218, local27, local23, 0); } - } else if (opcode == ServerProt.LOCATION_PACKET_20) { + } else if (opcode == ServerProt.LOC_ANIM) { int local15 = inboundBuffer.g1sub(); int local23 = (local15 >> 4 & 0x7) + SceneGraph.currentChunkX; int local19 = SceneGraph.currentChunkZ + (local15 & 0x7); @@ -202,7 +202,7 @@ public class Protocol { local218 = -1; } SceneGraph.method1881(Player.level, local39, local31, local19, local45, local23, local218); - } else if (opcode == ServerProt.LOCATION_PACKET_202) { + } else if (opcode == ServerProt.LOC_ADD_CHANGE) { int local15 = inboundBuffer.g1(); int local23 = local15 >> 2; int local19 = local15 & 0x3; @@ -220,7 +220,7 @@ public class Protocol { if (!GlRenderer.enabled) { AttachLocRequest.push(local625, local247, local633, local232, local39, local613, local19, local605, local31, local23, local609, local228); } - } else if (opcode == ServerProt.LOCATION_PACKET_14) { + } else if (opcode == ServerProt.OBJ_COUNT) { int local15 = inboundBuffer.g1(); int local19 = SceneGraph.currentChunkZ + (local15 & 0x7); int local23 = (local15 >> 4 & 0x7) + SceneGraph.currentChunkX; @@ -232,15 +232,15 @@ public class Protocol { if (local710 != null) { for (@Pc(718) ObjStackNode local718 = (ObjStackNode) local710.head(); local718 != null; local718 = (ObjStackNode) local710.next()) { @Pc(723) ObjStack local723 = local718.value; - if ((local27 & 0x7FFF) == local723.type && local31 == local723.anInt5550) { - local723.anInt5550 = local39; + if ((local27 & 0x7FFF) == local723.type && local31 == local723.amount) { + local723.amount = local39; break; } } spawnGroundObject(local19, local23); } } - } else if (opcode == ServerProt.LOCATION_PACKET_135) { + } else if (opcode == ServerProt.OBJ_ADD) { int local15 = inboundBuffer.ig2add(); int local23 = inboundBuffer.g1neg(); int local27 = SceneGraph.currentChunkZ + (local23 & 0x7); @@ -249,7 +249,7 @@ public class Protocol { int local39 = inboundBuffer.ig2(); if (local19 >= 0 && local27 >= 0 && local19 < 104 && local27 < 104 && PlayerList.selfId != local15) { @Pc(812) ObjStack local812 = new ObjStack(); - local812.anInt5550 = local31; + local812.amount = local31; local812.type = local39; if (SceneGraph.objStacks[Player.level][local19][local27] == null) { SceneGraph.objStacks[Player.level][local19][local27] = new LinkedList(); @@ -257,7 +257,7 @@ public class Protocol { SceneGraph.objStacks[Player.level][local19][local27].addTail(new ObjStackNode(local812)); spawnGroundObject(local27, local19); } - } else if (opcode == ServerProt.LOCATION_PACKET_16) { + } else if (opcode == ServerProt.MAP_PROJANIM_2) { int local15 = inboundBuffer.g1(); int local23 = SceneGraph.currentChunkX + (local15 >> 4 & 0x7); int local19 = (local15 & 0x7) + SceneGraph.currentChunkZ; @@ -280,10 +280,10 @@ public class Protocol { local23 = local23 * 128 + 64; local27 = local27 * 128 + 64; ProjAnim local317 = new ProjAnim(local45, Player.level, local23, local19, SceneGraph.getTileHeight(Player.level, local23, local19) - local218, local228 + client.loop, local232 + client.loop, local236, local247, local39, local224); - local317.method3705(local31, client.loop + local228, SceneGraph.getTileHeight(Player.level, local27, local31) - local224, local27); - Static217.aClass69_116.addTail(new ProjAnimNode(local317)); + local317.setTarget(local31, client.loop + local228, SceneGraph.getTileHeight(Player.level, local27, local31) - local224, local27); + SceneGraph.projectiles.addTail(new ProjAnimNode(local317)); } - } else if (opcode == ServerProt.LOCATION_PACKET_104) { + } else if (opcode == ServerProt.MAP_PROJANIM) { int local15 = inboundBuffer.g1(); int local19 = SceneGraph.currentChunkZ * 2 + (local15 & 0xF); int local23 = SceneGraph.currentChunkX * 2 + (local15 >> 4 & 0xF); @@ -342,10 +342,10 @@ public class Protocol { } } @Pc(1331) ProjAnim local1331 = new ProjAnim(local218, Player.level, local23, local19, SceneGraph.getTileHeight(Player.level, local23, local19) - local224, local232 + client.loop, local236 + client.loop, local247, local633, local45, local228); - local1331.method3705(local31, local232 + client.loop, -local228 + SceneGraph.getTileHeight(Player.level, local27, local31), local27); - Static217.aClass69_116.addTail(new ProjAnimNode(local1331)); + local1331.setTarget(local31, local232 + client.loop, -local228 + SceneGraph.getTileHeight(Player.level, local27, local31), local27); + SceneGraph.projectiles.addTail(new ProjAnimNode(local1331)); } - } else if (opcode == ServerProt.LOCATION_PACKET_97) { + } else if (opcode == ServerProt.SOUND_AREA) { int local15 = inboundBuffer.g1(); int local23 = SceneGraph.currentChunkX + (local15 >> 4 & 0x7); int local19 = SceneGraph.currentChunkZ + (local15 & 0x7); @@ -368,7 +368,7 @@ public class Protocol { SoundPlayer.size++; } } - } else if (opcode == ServerProt.LOCATION_PACKET_240) { + } else if (opcode == ServerProt.OBJ_DEL) { int local15 = inboundBuffer.g1sub(); int local19 = SceneGraph.currentChunkZ + (local15 & 0x7); int local23 = (local15 >> 4 & 0x7) + SceneGraph.currentChunkX; @@ -1073,12 +1073,12 @@ public class Protocol { DelayedStateChange.method3498(value, id); opcode = -1; return true; - } else if (opcode == ServerProt.BATCH_LOCATION_PACKET) { + } else if (opcode == ServerProt.UPDATE_ZONE_PARTIAL_ENCLOSED) { SceneGraph.currentChunkZ = inboundBuffer.g1add(); SceneGraph.currentChunkX = inboundBuffer.g1sub(); while (length > inboundBuffer.offset) { opcode = inboundBuffer.g1(); - readLocationPacket(); + readZonePacket(); } opcode = -1; return true; @@ -1341,7 +1341,7 @@ public class Protocol { } opcode = -1; return true; - } else if (opcode == ServerProt.SPOTANIM_SPECIFIC) { + } else if (opcode == ServerProt.SPOTANIM_ENTITY) { int delay = inboundBuffer.g2(); int height = inboundBuffer.ig2(); int target = inboundBuffer.img4(); @@ -1420,7 +1420,7 @@ public class Protocol { posZ = posZ * 128 + 64; posX = posX * 128 + 64; @Pc(2241) SpotAnim spotAnim = new SpotAnim(gfxId, plane, posX, posZ, SceneGraph.getTileHeight(plane, posX, posZ) - height, delay, client.loop); - LoginManager.aClass69_64.addTail(new SpotAnimNode(spotAnim)); + SceneGraph.spotanims.addTail(new SpotAnimNode(spotAnim)); } } opcode = -1; @@ -1450,8 +1450,8 @@ public class Protocol { PlayerSkillXpTable.updatedStats[PlayerSkillXpTable.updatedStatsWriterIndex++ & 0x1F] = skill; opcode = -1; return true; - } else if (opcode == ServerProt.LOCATION_PACKET_104 || opcode == ServerProt.LOCATION_PACKET_121 || opcode == ServerProt.LOCATION_PACKET_97 || opcode == ServerProt.LOCATION_PACKET_14 || opcode == ServerProt.LOCATION_PACKET_202 || opcode == ServerProt.LOCATION_PACKET_135 || opcode == ServerProt.LOCATION_PACKET_17 || opcode == ServerProt.LOCATION_PACKET_16 || opcode == ServerProt.LOCATION_PACKET_240 || opcode == ServerProt.LOCATION_PACKET_33 || opcode == ServerProt.LOCATION_PACKET_20 || opcode == ServerProt.LOCATION_PACKET_195 || opcode == ServerProt.LOCATION_PACKET_179) { - readLocationPacket(); + } else if (opcode == ServerProt.MAP_PROJANIM || opcode == ServerProt.MAP_PROJANIM_3 || opcode == ServerProt.SOUND_AREA || opcode == ServerProt.OBJ_COUNT || opcode == ServerProt.LOC_ADD_CHANGE || opcode == ServerProt.OBJ_ADD || opcode == ServerProt.SPOTANIM_SPECIFIC || opcode == ServerProt.MAP_PROJANIM_2 || opcode == ServerProt.OBJ_DEL || opcode == ServerProt.OBJ_REVEAL || opcode == ServerProt.LOC_ANIM || opcode == ServerProt.LOC_DEL || opcode == ServerProt.LOC_ADD) { + readZonePacket(); opcode = -1; return true; } else if (opcode == ServerProt.IF_CLOSESUB) { @@ -1492,7 +1492,7 @@ public class Protocol { DelayedStateChange.updateView(scale, ptr, yaw, pitch); opcode = -1; return true; - } else if (opcode == ServerProt.CLEAR_GROUND_ITEMS) { + } else if (opcode == ServerProt.UPDATE_ZONE_FULL_FOLLOWS) { SceneGraph.currentChunkX = inboundBuffer.g1(); SceneGraph.currentChunkZ = inboundBuffer.g1neg(); for (int x = SceneGraph.currentChunkX; x < SceneGraph.currentChunkX + 8; x++) { @@ -1510,7 +1510,7 @@ public class Protocol { } opcode = -1; return true; - } else if (opcode == ServerProt.INTERFACE_ITEMS_CLEAR) { + } else if (opcode == ServerProt.UPDATE_INV_CLEAR) { int id = inboundBuffer.mg4(); @Pc(2666) Component component = InterfaceList.getComponent(id); for (int i = 0; i < component.objTypes.length; i++) { @@ -2034,7 +2034,7 @@ public class Protocol { } opcode = -1; return true; - } else if (opcode == ServerProt.DYNAMIC_SCENE_GRAPH) { + } else if (opcode == ServerProt.REBUILD_REGION) { readRebuildPacket(true); opcode = -1; return true; @@ -2140,7 +2140,7 @@ public class Protocol { DelayedStateChange.updateComponentModel(-1, 2, id, npcId); opcode = -1; return true; - } else if (opcode == ServerProt.UPDATE_SCENE_GRAPH) { + } else if (opcode == ServerProt.REBUILD_NORMAL) { readRebuildPacket(false); opcode = -1; return true; @@ -2319,7 +2319,7 @@ public class Protocol { method3954(inboundBuffer.gjstr()); opcode = -1; return true; - } else if (opcode == ServerProt.UPDATE_CURRENT_LOCATION) { + } else if (opcode == ServerProt.UPDATE_ZONE_PARTIAL_FOLLOWS) { SceneGraph.currentChunkX = inboundBuffer.g1neg(); SceneGraph.currentChunkZ = inboundBuffer.g1(); opcode = -1; @@ -3455,7 +3455,7 @@ public class Protocol { public static void spawnGroundObject(@OriginalArg(0) int arg0, @OriginalArg(2) int arg1) { @Pc(9) LinkedList local9 = SceneGraph.objStacks[Player.level][arg1][arg0]; if (local9 == null) { - SceneGraph.method3420(Player.level, arg1, arg0); + SceneGraph.removeObjStack(Player.level, arg1, arg0); return; } @Pc(28) int local28 = -99999999; @@ -3465,7 +3465,7 @@ public class Protocol { @Pc(44) ObjType local44 = ObjTypeList.get(local35.value.type); @Pc(47) int local47 = local44.cost; if (local44.stackable == 1) { - local47 *= local35.value.anInt5550 + 1; + local47 *= local35.value.amount + 1; } if (local28 < local47) { local28 = local47; @@ -3473,7 +3473,7 @@ public class Protocol { } } if (local30 == null) { - SceneGraph.method3420(Player.level, arg1, arg0); + SceneGraph.removeObjStack(Player.level, arg1, arg0); return; } local9.addHead(local30); @@ -3491,6 +3491,6 @@ public class Protocol { } } @Pc(152) long local152 = (arg0 << 7) + arg1 + 1610612736; - SceneGraph.method1543(Player.level, arg1, arg0, SceneGraph.getTileHeight(Player.level, arg1 * 128 + 64, arg0 * 128 + 64), local30.value, local152, local89, local91); + SceneGraph.setObjStack(Player.level, arg1, arg0, SceneGraph.getTileHeight(Player.level, arg1 * 128 + 64, arg0 * 128 + 64), local30.value, local152, local89, local91); } } diff --git a/client/src/main/java/rt4/SceneGraph.java b/client/src/main/java/rt4/SceneGraph.java index 306484b..410565a 100644 --- a/client/src/main/java/rt4/SceneGraph.java +++ b/client/src/main/java/rt4/SceneGraph.java @@ -20,6 +20,10 @@ public class SceneGraph { public static final int[] anIntArray517 = new int[]{1, 2, 4, 8}; @OriginalMember(owner = "client!pg", name = "T", descriptor = "[I") public static final int[] anIntArray386 = new int[]{76, 8, 137, 4, 0, 1, 38, 2, 19}; + @OriginalMember(owner = "client!rj", name = "U", descriptor = "Lclient!ih;") + public static final LinkedList projectiles = new LinkedList(); + @OriginalMember(owner = "client!hk", name = "W", descriptor = "Lclient!ih;") + public static final LinkedList spotanims = new LinkedList(); @OriginalMember(owner = "client!kc", name = "o", descriptor = "[[[Lclient!bj;") public static Tile[][][] tiles; @@ -1543,14 +1547,14 @@ public class SceneGraph { } @OriginalMember(owner = "client!pb", name = "b", descriptor = "(III)Lclient!jj;") - public static ObjStackEntity method3420(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2) { - @Pc(7) Tile local7 = tiles[arg0][arg1][arg2]; - if (local7 == null) { + public static ObjStackEntity removeObjStack(@OriginalArg(0) int level, @OriginalArg(1) int x, @OriginalArg(2) int z) { + @Pc(7) Tile tile = tiles[level][x][z]; + if (tile == null) { return null; } else { - @Pc(14) ObjStackEntity local14 = local7.aClass79_1; - local7.aClass79_1 = null; - return local14; + @Pc(14) ObjStackEntity entity = tile.objStack; + tile.objStack = null; + return entity; } } @@ -1834,19 +1838,19 @@ public class SceneGraph { GlRenderer.method4159(local33); } } - @Pc(1064) ObjStackEntity local1064 = local8.aClass79_1; + @Pc(1064) ObjStackEntity local1064 = local8.objStack; if (local1064 != null && local1064.anInt3063 == 0) { if (GlRenderer.enabled) { LightingManager.method2393(Static123.anInt3555, Static123.anInt3947, Static217.anInt4903, local24, local18, local21); } - if (local1064.aClass8_7 != null) { - local1064.aClass8_7.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.anInt3064 - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.anInt3061 - Static217.anInt4903, local1064.aLong108, local24, null); + if (local1064.secondary != null) { + local1064.secondary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.xFine - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.zFine - Static217.anInt4903, local1064.key, local24, null); } - if (local1064.aClass8_8 != null) { - local1064.aClass8_8.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.anInt3064 - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.anInt3061 - Static217.anInt4903, local1064.aLong108, local24, null); + if (local1064.tertiary != null) { + local1064.tertiary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.xFine - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.zFine - Static217.anInt4903, local1064.key, local24, null); } - if (local1064.aClass8_9 != null) { - local1064.aClass8_9.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.anInt3064 - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.anInt3061 - Static217.anInt4903, local1064.aLong108, local24, null); + if (local1064.primary != null) { + local1064.primary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1064.xFine - Static123.anInt3555, local1064.anInt3057 - Static123.anInt3947, local1064.zFine - Static217.anInt4903, local1064.key, local24, null); } } } @@ -2081,19 +2085,19 @@ public class SceneGraph { } while (local153 != null && local153.aBoolean46); local8.aBoolean46 = false; Static156.anInt1142--; - @Pc(1999) ObjStackEntity local1999 = local8.aClass79_1; + @Pc(1999) ObjStackEntity local1999 = local8.objStack; if (local1999 != null && local1999.anInt3063 != 0) { if (GlRenderer.enabled) { LightingManager.method2393(Static123.anInt3555, Static123.anInt3947, Static217.anInt4903, local24, local18, local21); } - if (local1999.aClass8_7 != null) { - local1999.aClass8_7.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.anInt3064 - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.anInt3061 - Static217.anInt4903, local1999.aLong108, local24, null); + if (local1999.secondary != null) { + local1999.secondary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.xFine - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.zFine - Static217.anInt4903, local1999.key, local24, null); } - if (local1999.aClass8_8 != null) { - local1999.aClass8_8.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.anInt3064 - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.anInt3061 - Static217.anInt4903, local1999.aLong108, local24, null); + if (local1999.tertiary != null) { + local1999.tertiary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.xFine - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.zFine - Static217.anInt4903, local1999.key, local24, null); } - if (local1999.aClass8_9 != null) { - local1999.aClass8_9.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.anInt3064 - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.anInt3061 - Static217.anInt4903, local1999.aLong108, local24, null); + if (local1999.primary != null) { + local1999.primary.render(0, Static160.anInt2886, Static121.anInt3038, Static231.anInt5205, Static81.anInt2222, local1999.xFine - Static123.anInt3555, local1999.anInt3057 - Static123.anInt3947 - local1999.anInt3063, local1999.zFine - Static217.anInt4903, local1999.key, local24, null); } } if (local8.anInt670 != 0) { @@ -3095,33 +3099,33 @@ public class SceneGraph { } @OriginalMember(owner = "client!fh", name = "a", descriptor = "(IIIILclient!th;JLclient!th;Lclient!th;)V") - public static void method1543(@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) Entity arg6, @OriginalArg(7) Entity arg7) { - @Pc(3) ObjStackEntity local3 = new ObjStackEntity(); - local3.aClass8_9 = arg4; - local3.anInt3064 = arg1 * 128 + 64; - local3.anInt3061 = arg2 * 128 + 64; - local3.anInt3057 = arg3; - local3.aLong108 = arg5; - local3.aClass8_7 = arg6; - local3.aClass8_8 = arg7; + public static void setObjStack(@OriginalArg(0) int level, @OriginalArg(1) int x, @OriginalArg(2) int z, @OriginalArg(3) int arg3, @OriginalArg(4) Entity primary, @OriginalArg(5) long arg5, @OriginalArg(6) Entity secondary, @OriginalArg(7) Entity tertiary) { + @Pc(3) ObjStackEntity entity = new ObjStackEntity(); + entity.primary = primary; + entity.xFine = x * 128 + 64; + entity.zFine = z * 128 + 64; + entity.anInt3057 = arg3; + entity.key = arg5; + entity.secondary = secondary; + entity.tertiary = tertiary; @Pc(34) int local34 = 0; - @Pc(42) Tile local42 = tiles[arg0][arg1][arg2]; + @Pc(42) Tile local42 = tiles[level][x][z]; if (local42 != null) { - for (@Pc(46) int local46 = 0; local46 < local42.sceneryLen; local46++) { - @Pc(55) Scenery local55 = local42.scenery[local46]; - if ((local55.key & 0x400000L) == 4194304L) { - @Pc(66) int local66 = local55.entity.getMinY(); - if (local66 != -32768 && local66 < local34) { - local34 = local66; + for (@Pc(46) int i = 0; i < local42.sceneryLen; i++) { + @Pc(55) Scenery scenery = local42.scenery[i]; + if ((scenery.key & 0x400000L) == 4194304L) { + @Pc(66) int minY = scenery.entity.getMinY(); + if (minY != -32768 && minY < local34) { + local34 = minY; } } } } - local3.anInt3063 = -local34; - if (tiles[arg0][arg1][arg2] == null) { - tiles[arg0][arg1][arg2] = new Tile(arg0, arg1, arg2); + entity.anInt3063 = -local34; + if (tiles[level][x][z] == null) { + tiles[level][x][z] = new Tile(level, x, z); } - tiles[arg0][arg1][arg2].aClass79_1 = local3; + tiles[level][x][z].objStack = entity; } @OriginalMember(owner = "client!fh", name = "a", descriptor = "(Lclient!th;IIIII)V") diff --git a/client/src/main/java/rt4/ScriptRunner.java b/client/src/main/java/rt4/ScriptRunner.java index a7318fc..0265d7f 100644 --- a/client/src/main/java/rt4/ScriptRunner.java +++ b/client/src/main/java/rt4/ScriptRunner.java @@ -908,7 +908,7 @@ public final class ScriptRunner { @OriginalMember(owner = "client!pk", name = "i", descriptor = "(I)V") public static void method3532() { - for (@Pc(16) ProjAnimNode local16 = (ProjAnimNode) Static217.aClass69_116.head(); local16 != null; local16 = (ProjAnimNode) Static217.aClass69_116.next()) { + for (@Pc(16) ProjAnimNode local16 = (ProjAnimNode) SceneGraph.projectiles.head(); local16 != null; local16 = (ProjAnimNode) SceneGraph.projectiles.next()) { @Pc(21) ProjAnim local21 = local16.aClass8_Sub6_1; if (Player.level != local21.anInt4810 || local21.anInt4800 < client.loop) { local16.unlink(); @@ -916,7 +916,7 @@ public final class ScriptRunner { if (local21.anInt4819 > 0) { @Pc(54) Npc local54 = NpcList.npcs[local21.anInt4819 - 1]; if (local54 != null && local54.xFine >= 0 && local54.xFine < 13312 && local54.zFine >= 0 && local54.zFine < 13312) { - local21.method3705(local54.zFine, client.loop, SceneGraph.getTileHeight(local21.anInt4810, local54.xFine, local54.zFine) - local21.anInt4805, local54.xFine); + local21.setTarget(local54.zFine, client.loop, SceneGraph.getTileHeight(local21.anInt4810, local54.xFine, local54.zFine) - local21.anInt4805, local54.xFine); } } if (local21.anInt4819 < 0) { @@ -928,7 +928,7 @@ public final class ScriptRunner { local107 = PlayerList.players[local102]; } if (local107 != null && local107.xFine >= 0 && local107.xFine < 13312 && local107.zFine >= 0 && local107.zFine < 13312) { - local21.method3705(local107.zFine, client.loop, SceneGraph.getTileHeight(local21.anInt4810, local107.xFine, local107.zFine) - local21.anInt4805, local107.xFine); + local21.setTarget(local107.zFine, client.loop, SceneGraph.getTileHeight(local21.anInt4810, local107.xFine, local107.zFine) - local21.anInt4805, local107.xFine); } } local21.method3704(Protocol.anInt4247); @@ -939,7 +939,7 @@ public final class ScriptRunner { @OriginalMember(owner = "client!u", name = "a", descriptor = "(Z)V") public static void method4239() { - for (@Pc(9) SpotAnimNode local9 = (SpotAnimNode) LoginManager.aClass69_64.head(); local9 != null; local9 = (SpotAnimNode) LoginManager.aClass69_64.next()) { + for (@Pc(9) SpotAnimNode local9 = (SpotAnimNode) SceneGraph.spotanims.head(); local9 != null; local9 = (SpotAnimNode) SceneGraph.spotanims.next()) { @Pc(15) SpotAnim local15 = local9.aClass8_Sub2_1; if (local15.anInt606 != Player.level || local15.aBoolean41) { local9.unlink(); diff --git a/client/src/main/java/rt4/ServerProt.java b/client/src/main/java/rt4/ServerProt.java index 1ec5289..ff472bb 100644 --- a/client/src/main/java/rt4/ServerProt.java +++ b/client/src/main/java/rt4/ServerProt.java @@ -2,26 +2,26 @@ package rt4; public class ServerProt { /// map - public static final int UPDATE_CURRENT_LOCATION = 26; - public static final int CLEAR_GROUND_ITEMS = 112; - public static final int UPDATE_SCENE_GRAPH = 162; - public static final int DYNAMIC_SCENE_GRAPH = 214; - public static final int BATCH_LOCATION_PACKET = 230; + public static final int REBUILD_NORMAL = 162; + public static final int REBUILD_REGION = 214; // Dynamic regions - // TODO: these are the batched packets that modify projectiles, locs, etc. - public static final int LOCATION_PACKET_14 = 14; - public static final int LOCATION_PACKET_16 = 16; - public static final int LOCATION_PACKET_17 = 17; - public static final int LOCATION_PACKET_20 = 20; - public static final int LOCATION_PACKET_33 = 33; - public static final int LOCATION_PACKET_97 = 97; - public static final int LOCATION_PACKET_104 = 104; - public static final int LOCATION_PACKET_121 = 121; - public static final int LOCATION_PACKET_135 = 135; - public static final int LOCATION_PACKET_179 = 179; - public static final int LOCATION_PACKET_195 = 195; - public static final int LOCATION_PACKET_202 = 202; - public static final int LOCATION_PACKET_240 = 240; + // zone updates + public static final int UPDATE_ZONE_FULL_FOLLOWS = 112; // NXT naming + public static final int UPDATE_ZONE_PARTIAL_FOLLOWS = 26; // NXT naming + public static final int UPDATE_ZONE_PARTIAL_ENCLOSED = 230; // NXT naming + public static final int OBJ_COUNT = 14; // NXT naming + public static final int MAP_PROJANIM_2 = 16; + public static final int SPOTANIM_SPECIFIC = 17; // NXT naming + public static final int LOC_ANIM = 20; // NXT naming + public static final int OBJ_REVEAL = 33; // NXT naming + public static final int SOUND_AREA = 97; // NXT naming + public static final int MAP_PROJANIM = 104; // NXT naming + public static final int MAP_PROJANIM_3 = 121; + public static final int OBJ_ADD = 135; // NXT naming + public static final int LOC_ADD = 179; // NXT naming + public static final int LOC_DEL = 195; // NXT naming + public static final int LOC_ADD_CHANGE = 202; // NXT naming + public static final int OBJ_DEL = 240; // NXT naming /// updates public static final int NPC_INFO = 32; // NXT naming @@ -85,7 +85,7 @@ public class ServerProt { public static final int GENERATE_CHAT_HEAD_FROM_BODY = 111; /// inventory - public static final int INTERFACE_ITEMS_CLEAR = 144; + public static final int UPDATE_INV_CLEAR = 144; public static final int UPDATE_INV_PARTIAL = 22; // NXT naming public static final int UPDATE_INV_FULL = 105; // NXT naming @@ -103,7 +103,7 @@ public class ServerProt { public static final int URL_OPEN = 42; // NXT naming public static final int CAM_RESET = 24; // NXT naming public static final int CAM_SHAKE = 27; // NXT naming - public static final int SPOTANIM_SPECIFIC = 56; // NXT naming + public static final int SPOTANIM_ENTITY = 56; public static final int NPC_ANIM_SPECIFIC = 102; // NXT naming public static final int CAM_LOOKAT = 125; // NXT naming public static final int RESET_ANIMS = 131; // NXT naming diff --git a/client/src/main/java/rt4/Static217.java b/client/src/main/java/rt4/Static217.java index cb0cdb1..19c98e0 100644 --- a/client/src/main/java/rt4/Static217.java +++ b/client/src/main/java/rt4/Static217.java @@ -9,9 +9,6 @@ public final class Static217 { @OriginalMember(owner = "client!rj", name = "R", descriptor = "I") public static int anInt4903; - @OriginalMember(owner = "client!rj", name = "U", descriptor = "Lclient!ih;") - public static final LinkedList aClass69_116 = new LinkedList(); - @OriginalMember(owner = "client!rj", name = "Z", descriptor = "[I") public static final int[] anIntArray434 = new int[64]; diff --git a/client/src/main/java/rt4/Tile.java b/client/src/main/java/rt4/Tile.java index 0850569..8dc47d2 100644 --- a/client/src/main/java/rt4/Tile.java +++ b/client/src/main/java/rt4/Tile.java @@ -50,7 +50,7 @@ public final class Tile extends Node { public int anInt670; @OriginalMember(owner = "client!bj", name = "X", descriptor = "Lclient!jj;") - public ObjStackEntity aClass79_1; + public ObjStackEntity objStack; @OriginalMember(owner = "client!bj", name = "D", descriptor = "I") public int allInteriorFlags = 0; diff --git a/client/src/main/java/rt4/client.java b/client/src/main/java/rt4/client.java index 57e5581..5da158a 100644 --- a/client/src/main/java/rt4/client.java +++ b/client/src/main/java/rt4/client.java @@ -561,8 +561,8 @@ public final class client extends GameShell { NpcList.npcs[local3506] = null; } PlayerList.self = PlayerList.players[2047] = new Player(); - Static217.aClass69_116.clear(); - LoginManager.aClass69_64.clear(); + SceneGraph.projectiles.clear(); + SceneGraph.spotanims.clear(); if (SceneGraph.objStacks != null) { for (local3506 = 0; local3506 < 4; local3506++) { for (@Pc(3663) int local3663 = 0; local3663 < 104; local3663++) {