Refactored PathFinder class

This commit is contained in:
Pazaz 2022-05-04 00:40:06 -04:00
parent ff0e890dcd
commit 36b0d99c42
21 changed files with 842 additions and 843 deletions

View file

@ -62,183 +62,7 @@ public final class Static2 {
}
}
@OriginalMember(owner = "client!aa", name = "a", descriptor = "(IIIIIZIIIIII)Z")
public static boolean method8(@OriginalArg(0) int arg0, @OriginalArg(1) int arg1, @OriginalArg(2) int arg2, @OriginalArg(3) int arg3, @OriginalArg(4) int arg4, @OriginalArg(5) boolean arg5, @OriginalArg(6) int arg6, @OriginalArg(7) int arg7, @OriginalArg(8) int arg8, @OriginalArg(9) int arg9, @OriginalArg(11) int arg10) {
@Pc(3) int local3;
@Pc(8) int local8;
for (local3 = 0; local3 < 104; local3++) {
for (local8 = 0; local8 < 104; local8++) {
Static145.anIntArrayArray25[local3][local8] = 0;
Static167.anIntArrayArray31[local3][local8] = 99999999;
}
}
Static145.anIntArrayArray25[arg10][arg3] = 99;
Static167.anIntArrayArray31[arg10][arg3] = 0;
local8 = arg3;
local3 = arg10;
@Pc(53) byte local53 = 0;
Static259.anIntArray514[0] = arg10;
@Pc(59) boolean local59 = false;
@Pc(61) int local61 = 0;
@Pc(64) int local64 = local53 + 1;
Static84.anIntArray209[0] = arg3;
@Pc(71) int[][] local71 = PathFinder.collisionMaps[Player.level].anIntArrayArray30;
@Pc(193) int local193;
while (local61 != local64) {
local3 = Static259.anIntArray514[local61];
local8 = Static84.anIntArray209[local61];
local61 = local61 + 1 & 0xFFF;
if (arg8 == local3 && arg4 == local8) {
local59 = true;
break;
}
if (arg1 != 0) {
if ((arg1 < 5 || arg1 == 10) && PathFinder.collisionMaps[Player.level].method3042(arg4, local3, local8, arg8, arg1 - 1, 2, arg7)) {
local59 = true;
break;
}
if (arg1 < 10 && PathFinder.collisionMaps[Player.level].method3046(arg4, arg1 - 1, arg8, local8, 2, arg7, local3)) {
local59 = true;
break;
}
}
if (arg0 != 0 && arg6 != 0 && PathFinder.collisionMaps[Player.level].method3052(arg8, local8, local3, 2, arg0, arg2, arg4, arg6)) {
local59 = true;
break;
}
local193 = Static167.anIntArrayArray31[local3][local8] + 1;
if (local3 > 0 && Static145.anIntArrayArray25[local3 - 1][local8] == 0 && (local71[local3 - 1][local8] & 0x12C010E) == 0 && (local71[local3 - 1][local8 + 1] & 0x12C0138) == 0) {
Static259.anIntArray514[local64] = local3 - 1;
Static84.anIntArray209[local64] = local8;
local64 = local64 + 1 & 0xFFF;
Static145.anIntArrayArray25[local3 - 1][local8] = 2;
Static167.anIntArrayArray31[local3 - 1][local8] = local193;
}
if (local3 < 102 && Static145.anIntArrayArray25[local3 + 1][local8] == 0 && (local71[local3 + 2][local8] & 0x12C0183) == 0 && (local71[local3 + 2][local8 + 1] & 0x12C01E0) == 0) {
Static259.anIntArray514[local64] = local3 + 1;
Static84.anIntArray209[local64] = local8;
local64 = local64 + 1 & 0xFFF;
Static145.anIntArrayArray25[local3 + 1][local8] = 8;
Static167.anIntArrayArray31[local3 + 1][local8] = local193;
}
if (local8 > 0 && Static145.anIntArrayArray25[local3][local8 - 1] == 0 && (local71[local3][local8 - 1] & 0x12C010E) == 0 && (local71[local3 + 1][local8 - 1] & 0x12C0183) == 0) {
Static259.anIntArray514[local64] = local3;
Static84.anIntArray209[local64] = local8 - 1;
Static145.anIntArrayArray25[local3][local8 - 1] = 1;
Static167.anIntArrayArray31[local3][local8 - 1] = local193;
local64 = local64 + 1 & 0xFFF;
}
if (local8 < 102 && Static145.anIntArrayArray25[local3][local8 + 1] == 0 && (local71[local3][local8 + 2] & 0x12C0138) == 0 && (local71[local3 + 1][local8 + 2] & 0x12C01E0) == 0) {
Static259.anIntArray514[local64] = local3;
Static84.anIntArray209[local64] = local8 + 1;
Static145.anIntArrayArray25[local3][local8 + 1] = 4;
local64 = local64 + 1 & 0xFFF;
Static167.anIntArrayArray31[local3][local8 + 1] = local193;
}
if (local3 > 0 && local8 > 0 && Static145.anIntArrayArray25[local3 - 1][local8 - 1] == 0 && (local71[local3 - 1][local8] & 0x12C0138) == 0 && (local71[local3 - 1][local8 - 1] & 0x12C010E) == 0 && (local71[local3][local8 - 1] & 0x12C0183) == 0) {
Static259.anIntArray514[local64] = local3 - 1;
Static84.anIntArray209[local64] = local8 - 1;
Static145.anIntArrayArray25[local3 - 1][local8 - 1] = 3;
Static167.anIntArrayArray31[local3 - 1][local8 - 1] = local193;
local64 = local64 + 1 & 0xFFF;
}
if (local3 < 102 && local8 > 0 && Static145.anIntArrayArray25[local3 + 1][local8 - 1] == 0 && (local71[local3 + 1][local8 - 1] & 0x12C010E) == 0 && (local71[local3 + 2][local8 - 1] & 0x12C0183) == 0 && (local71[local3 + 2][local8] & 0x12C01E0) == 0) {
Static259.anIntArray514[local64] = local3 + 1;
Static84.anIntArray209[local64] = local8 - 1;
local64 = local64 + 1 & 0xFFF;
Static145.anIntArrayArray25[local3 + 1][local8 - 1] = 9;
Static167.anIntArrayArray31[local3 + 1][local8 - 1] = local193;
}
if (local3 > 0 && local8 < 102 && Static145.anIntArrayArray25[local3 - 1][local8 + 1] == 0 && (local71[local3 - 1][local8 + 1] & 0x12C010E) == 0 && (local71[local3 - 1][local8 + 2] & 0x12C0138) == 0 && (local71[local3][local8 + 2] & 0x12C01E0) == 0) {
Static259.anIntArray514[local64] = local3 - 1;
Static84.anIntArray209[local64] = local8 + 1;
Static145.anIntArrayArray25[local3 - 1][local8 + 1] = 6;
Static167.anIntArrayArray31[local3 - 1][local8 + 1] = local193;
local64 = local64 + 1 & 0xFFF;
}
if (local3 < 102 && local8 < 102 && Static145.anIntArrayArray25[local3 + 1][local8 + 1] == 0 && (local71[local3 + 1][local8 + 2] & 0x12C0138) == 0 && (local71[local3 + 2][local8 + 2] & 0x12C01E0) == 0 && (local71[local3 + 2][local8 + 1] & 0x12C0183) == 0) {
Static259.anIntArray514[local64] = local3 + 1;
Static84.anIntArray209[local64] = local8 + 1;
local64 = local64 + 1 & 0xFFF;
Static145.anIntArrayArray25[local3 + 1][local8 + 1] = 12;
Static167.anIntArrayArray31[local3 + 1][local8 + 1] = local193;
}
}
Static221.anInt4364 = 0;
@Pc(921) int local921;
if (!local59) {
if (!arg5) {
return false;
}
local193 = 1000;
local921 = 100;
for (@Pc(928) int local928 = arg8 - 10; local928 <= arg8 + 10; local928++) {
for (@Pc(942) int local942 = arg4 - 10; local942 <= arg4 + 10; local942++) {
if (local928 >= 0 && local942 >= 0 && local928 < 104 && local942 < 104 && Static167.anIntArrayArray31[local928][local942] < 100) {
@Pc(978) int local978 = 0;
@Pc(980) int local980 = 0;
if (local928 < arg8) {
local978 = arg8 - local928;
} else if (local928 > arg0 + arg8 - 1) {
local978 = local928 + 1 - arg0 - arg8;
}
if (arg4 > local942) {
local980 = arg4 - local942;
} else if (local942 > arg4 + arg6 - 1) {
local980 = local942 + 1 - arg4 - arg6;
}
@Pc(1057) int local1057 = local978 * local978 + local980 * local980;
if (local1057 < local193 || local193 == local1057 && Static167.anIntArrayArray31[local928][local942] < local921) {
local8 = local942;
local921 = Static167.anIntArrayArray31[local928][local942];
local193 = local1057;
local3 = local928;
}
}
}
}
if (local193 == 1000) {
return false;
}
if (arg10 == local3 && local8 == arg3) {
return false;
}
Static221.anInt4364 = 1;
}
@Pc(1121) byte local1121 = 0;
Static259.anIntArray514[0] = local3;
local61 = local1121 + 1;
Static84.anIntArray209[0] = local8;
local193 = local921 = Static145.anIntArrayArray25[local3][local8];
while (arg10 != local3 || arg3 != local8) {
if (local921 != local193) {
Static259.anIntArray514[local61] = local3;
Static84.anIntArray209[local61++] = local8;
local921 = local193;
}
if ((local193 & 0x2) != 0) {
local3++;
} else if ((local193 & 0x8) != 0) {
local3--;
}
if ((local193 & 0x1) != 0) {
local8++;
} else if ((local193 & 0x4) != 0) {
local8--;
}
local193 = Static145.anIntArrayArray25[local3][local8];
}
if (local61 > 0) {
ClientProt.method3502(local61, arg9);
return true;
} else if (arg9 == 1) {
return false;
} else {
return true;
}
}
@OriginalMember(owner = "client!aa", name = "a", descriptor = "(BLclient!be;)V")
@OriginalMember(owner = "client!aa", name = "a", descriptor = "(BLclient!be;)V")
public static void method13(@OriginalArg(1) Component arg0) {
@Pc(16) int local16 = arg0.anInt453;
if (local16 == 324) {