mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2026-08-17 08:25:14 -06:00
Refactored PathFinder class
This commit is contained in:
parent
ff0e890dcd
commit
36b0d99c42
21 changed files with 842 additions and 843 deletions
|
|
@ -9,9 +9,6 @@ public final class Static45 {
|
|||
@OriginalMember(owner = "client!di", name = "q", descriptor = "[Lclient!na;")
|
||||
public static final JagString[] aClass100Array53 = new JagString[5];
|
||||
|
||||
@OriginalMember(owner = "client!di", name = "F", descriptor = "Lclient!bf;")
|
||||
public static final ServerActiveProperties aClass3_Sub4_2 = new ServerActiveProperties(0, -1);
|
||||
|
||||
@OriginalMember(owner = "client!di", name = "H", descriptor = "Z")
|
||||
public static boolean aBoolean84 = false;
|
||||
|
||||
|
|
@ -486,180 +483,4 @@ public final class Static45 {
|
|||
}
|
||||
}
|
||||
|
||||
@OriginalMember(owner = "client!di", name = "a", descriptor = "(IIIIIIIIZIII)Z")
|
||||
public static boolean method1171(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) int arg4, @OriginalArg(6) int arg5, @OriginalArg(7) int arg6, @OriginalArg(8) boolean arg7, @OriginalArg(9) int arg8, @OriginalArg(10) int arg9, @OriginalArg(11) int arg10) {
|
||||
@Pc(3) int local3;
|
||||
@Pc(10) int local10;
|
||||
for (local3 = 0; local3 < 104; local3++) {
|
||||
for (local10 = 0; local10 < 104; local10++) {
|
||||
Static145.anIntArrayArray25[local3][local10] = 0;
|
||||
Static167.anIntArrayArray31[local3][local10] = 99999999;
|
||||
}
|
||||
}
|
||||
local3 = arg2;
|
||||
Static145.anIntArrayArray25[arg2][arg9] = 99;
|
||||
local10 = arg9;
|
||||
Static167.anIntArrayArray31[arg2][arg9] = 0;
|
||||
@Pc(51) byte local51 = 0;
|
||||
@Pc(53) boolean local53 = false;
|
||||
@Pc(64) int local64 = 0;
|
||||
Static259.anIntArray514[0] = arg2;
|
||||
@Pc(71) int local71 = local51 + 1;
|
||||
Static84.anIntArray209[0] = arg9;
|
||||
@Pc(78) int[][] local78 = PathFinder.collisionMaps[Player.level].anIntArrayArray30;
|
||||
@Pc(198) int local198;
|
||||
while (local71 != local64) {
|
||||
local10 = Static84.anIntArray209[local64];
|
||||
local3 = Static259.anIntArray514[local64];
|
||||
local64 = local64 + 1 & 0xFFF;
|
||||
if (local3 == arg0 && local10 == arg3) {
|
||||
local53 = true;
|
||||
break;
|
||||
}
|
||||
if (arg8 != 0) {
|
||||
if ((arg8 < 5 || arg8 == 10) && PathFinder.collisionMaps[Player.level].method3042(arg3, local3, local10, arg0, arg8 - 1, 1, arg6)) {
|
||||
local53 = true;
|
||||
break;
|
||||
}
|
||||
if (arg8 < 10 && PathFinder.collisionMaps[Player.level].method3046(arg3, arg8 - 1, arg0, local10, 1, arg6, local3)) {
|
||||
local53 = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (arg10 != 0 && arg5 != 0 && PathFinder.collisionMaps[Player.level].method3052(arg0, local10, local3, 1, arg10, arg1, arg3, arg5)) {
|
||||
local53 = true;
|
||||
break;
|
||||
}
|
||||
local198 = Static167.anIntArrayArray31[local3][local10] + 1;
|
||||
if (local3 > 0 && Static145.anIntArrayArray25[local3 - 1][local10] == 0 && (local78[local3 - 1][local10] & 0x12C0108) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 - 1;
|
||||
Static84.anIntArray209[local71] = local10;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static145.anIntArrayArray25[local3 - 1][local10] = 2;
|
||||
Static167.anIntArrayArray31[local3 - 1][local10] = local198;
|
||||
}
|
||||
if (local3 < 103 && Static145.anIntArrayArray25[local3 + 1][local10] == 0 && (local78[local3 + 1][local10] & 0x12C0180) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 + 1;
|
||||
Static84.anIntArray209[local71] = local10;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static145.anIntArrayArray25[local3 + 1][local10] = 8;
|
||||
Static167.anIntArrayArray31[local3 + 1][local10] = local198;
|
||||
}
|
||||
if (local10 > 0 && Static145.anIntArrayArray25[local3][local10 - 1] == 0 && (local78[local3][local10 - 1] & 0x12C0102) == 0) {
|
||||
Static259.anIntArray514[local71] = local3;
|
||||
Static84.anIntArray209[local71] = local10 - 1;
|
||||
Static145.anIntArrayArray25[local3][local10 - 1] = 1;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static167.anIntArrayArray31[local3][local10 - 1] = local198;
|
||||
}
|
||||
if (local10 < 103 && Static145.anIntArrayArray25[local3][local10 + 1] == 0 && (local78[local3][local10 + 1] & 0x12C0120) == 0) {
|
||||
Static259.anIntArray514[local71] = local3;
|
||||
Static84.anIntArray209[local71] = local10 + 1;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static145.anIntArrayArray25[local3][local10 + 1] = 4;
|
||||
Static167.anIntArrayArray31[local3][local10 + 1] = local198;
|
||||
}
|
||||
if (local3 > 0 && local10 > 0 && Static145.anIntArrayArray25[local3 - 1][local10 - 1] == 0 && (local78[local3 - 1][local10 - 1] & 0x12C010E) == 0 && (local78[local3 - 1][local10] & 0x12C0108) == 0 && (local78[local3][local10 - 1] & 0x12C0102) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 - 1;
|
||||
Static84.anIntArray209[local71] = local10 - 1;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static145.anIntArrayArray25[local3 - 1][local10 - 1] = 3;
|
||||
Static167.anIntArrayArray31[local3 - 1][local10 - 1] = local198;
|
||||
}
|
||||
if (local3 < 103 && local10 > 0 && Static145.anIntArrayArray25[local3 + 1][local10 - 1] == 0 && (local78[local3 + 1][local10 - 1] & 0x12C0183) == 0 && (local78[local3 + 1][local10] & 0x12C0180) == 0 && (local78[local3][local10 - 1] & 0x12C0102) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 + 1;
|
||||
Static84.anIntArray209[local71] = local10 - 1;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static145.anIntArrayArray25[local3 + 1][local10 - 1] = 9;
|
||||
Static167.anIntArrayArray31[local3 + 1][local10 - 1] = local198;
|
||||
}
|
||||
if (local3 > 0 && local10 < 103 && Static145.anIntArrayArray25[local3 - 1][local10 + 1] == 0 && (local78[local3 - 1][local10 + 1] & 0x12C0138) == 0 && (local78[local3 - 1][local10] & 0x12C0108) == 0 && (local78[local3][local10 + 1] & 0x12C0120) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 - 1;
|
||||
Static84.anIntArray209[local71] = local10 + 1;
|
||||
Static145.anIntArrayArray25[local3 - 1][local10 + 1] = 6;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static167.anIntArrayArray31[local3 - 1][local10 + 1] = local198;
|
||||
}
|
||||
if (local3 < 103 && local10 < 103 && Static145.anIntArrayArray25[local3 + 1][local10 + 1] == 0 && (local78[local3 + 1][local10 + 1] & 0x12C01E0) == 0 && (local78[local3 + 1][local10] & 0x12C0180) == 0 && (local78[local3][local10 + 1] & 0x12C0120) == 0) {
|
||||
Static259.anIntArray514[local71] = local3 + 1;
|
||||
Static84.anIntArray209[local71] = local10 + 1;
|
||||
Static145.anIntArrayArray25[local3 + 1][local10 + 1] = 12;
|
||||
local71 = local71 + 1 & 0xFFF;
|
||||
Static167.anIntArrayArray31[local3 + 1][local10 + 1] = local198;
|
||||
}
|
||||
}
|
||||
Static221.anInt4364 = 0;
|
||||
@Pc(839) int local839;
|
||||
if (!local53) {
|
||||
if (!arg7) {
|
||||
return false;
|
||||
}
|
||||
local198 = 1000;
|
||||
local839 = 100;
|
||||
for (@Pc(846) int local846 = arg0 - 10; local846 <= arg0 + 10; local846++) {
|
||||
for (@Pc(856) int local856 = arg3 - 10; local856 <= arg3 + 10; local856++) {
|
||||
if (local846 >= 0 && local856 >= 0 && local846 < 104 && local856 < 104 && Static167.anIntArrayArray31[local846][local856] < 100) {
|
||||
@Pc(894) int local894 = 0;
|
||||
if (local856 < arg3) {
|
||||
local894 = arg3 - local856;
|
||||
} else if (arg5 + arg3 - 1 < local856) {
|
||||
local894 = local856 + 1 - arg3 - arg5;
|
||||
}
|
||||
@Pc(927) int local927 = 0;
|
||||
if (local846 < arg0) {
|
||||
local927 = arg0 - local846;
|
||||
} else if (local846 > arg10 + arg0 - 1) {
|
||||
local927 = local846 + 1 - arg10 - arg0;
|
||||
}
|
||||
@Pc(968) int local968 = local894 * local894 + local927 * local927;
|
||||
if (local968 < local198 || local968 == local198 && Static167.anIntArrayArray31[local846][local856] < local839) {
|
||||
local10 = local856;
|
||||
local198 = local968;
|
||||
local3 = local846;
|
||||
local839 = Static167.anIntArrayArray31[local846][local856];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (local198 == 1000) {
|
||||
return false;
|
||||
}
|
||||
if (arg2 == local3 && local10 == arg9) {
|
||||
return false;
|
||||
}
|
||||
Static221.anInt4364 = 1;
|
||||
}
|
||||
@Pc(1032) byte local1032 = 0;
|
||||
Static259.anIntArray514[0] = local3;
|
||||
local64 = local1032 + 1;
|
||||
Static84.anIntArray209[0] = local10;
|
||||
local198 = local839 = Static145.anIntArrayArray25[local3][local10];
|
||||
while (arg2 != local3 || local10 != arg9) {
|
||||
if (local839 != local198) {
|
||||
local839 = local198;
|
||||
Static259.anIntArray514[local64] = local3;
|
||||
Static84.anIntArray209[local64++] = local10;
|
||||
}
|
||||
if ((local198 & 0x2) != 0) {
|
||||
local3++;
|
||||
} else if ((local198 & 0x8) != 0) {
|
||||
local3--;
|
||||
}
|
||||
if ((local198 & 0x1) != 0) {
|
||||
local10++;
|
||||
} else if ((local198 & 0x4) != 0) {
|
||||
local10--;
|
||||
}
|
||||
local198 = Static145.anIntArrayArray25[local3][local10];
|
||||
}
|
||||
if (local64 > 0) {
|
||||
ClientProt.method3502(local64, arg4);
|
||||
return true;
|
||||
} else if (arg4 == 1) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue