import java.io.File; import java.io.IOException; import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("fm") @Implements("CollisionMap") public class CollisionMap { @ObfuscatedName("av") @ObfuscatedGetter( intValue = 1716548279 ) @Export("xInset") int xInset; @ObfuscatedName("am") @ObfuscatedGetter( intValue = 100209491 ) @Export("yInset") int yInset; @ObfuscatedName("ab") @ObfuscatedGetter( intValue = -1893583227 ) @Export("xSize") int xSize; @ObfuscatedName("ax") @ObfuscatedGetter( intValue = 430347067 ) @Export("ySize") int ySize; @ObfuscatedName("al") @Export("flags") public int[][] flags; public CollisionMap(int var1, int var2) { this.xInset = 0; this.yInset = 0; this.xSize = var1; this.ySize = var2; this.flags = new int[this.xSize][this.ySize]; this.clear(); } @ObfuscatedName("a") @ObfuscatedSignature( signature = "(I)V", garbageValue = "-418924176" ) @Export("clear") public void clear() { for (int var1 = 0; var1 < this.xSize; ++var1) { for (int var2 = 0; var2 < this.ySize; ++var2) { if (var1 != 0 && var2 != 0 && var1 < this.xSize - 5 && var2 < this.ySize - 5) { this.flags[var1][var2] = 16777216; } else { this.flags[var1][var2] = 16777215; } } } } @ObfuscatedName("t") @ObfuscatedSignature( signature = "(IIIIZI)V", garbageValue = "-622707761" ) public void method3685(int var1, int var2, int var3, int var4, boolean var5) { var1 -= this.xInset; var2 -= this.yInset; if (var3 == 0) { if (var4 == 0) { this.setFlag(var1, var2, 128); this.setFlag(var1 - 1, var2, 8); } if (var4 == 1) { this.setFlag(var1, var2, 2); this.setFlag(var1, var2 + 1, 32); } if (var4 == 2) { this.setFlag(var1, var2, 8); this.setFlag(var1 + 1, var2, 128); } if (var4 == 3) { this.setFlag(var1, var2, 32); this.setFlag(var1, var2 - 1, 2); } } if (var3 == 1 || var3 == 3) { if (var4 == 0) { this.setFlag(var1, var2, 1); this.setFlag(var1 - 1, var2 + 1, 16); } if (var4 == 1) { this.setFlag(var1, var2, 4); this.setFlag(var1 + 1, var2 + 1, 64); } if (var4 == 2) { this.setFlag(var1, var2, 16); this.setFlag(var1 + 1, var2 - 1, 1); } if (var4 == 3) { this.setFlag(var1, var2, 64); this.setFlag(var1 - 1, var2 - 1, 4); } } if (var3 == 2) { if (var4 == 0) { this.setFlag(var1, var2, 130); this.setFlag(var1 - 1, var2, 8); this.setFlag(var1, var2 + 1, 32); } if (var4 == 1) { this.setFlag(var1, var2, 10); this.setFlag(var1, var2 + 1, 32); this.setFlag(var1 + 1, var2, 128); } if (var4 == 2) { this.setFlag(var1, var2, 40); this.setFlag(var1 + 1, var2, 128); this.setFlag(var1, var2 - 1, 2); } if (var4 == 3) { this.setFlag(var1, var2, 160); this.setFlag(var1, var2 - 1, 2); this.setFlag(var1 - 1, var2, 8); } } if (var5) { if (var3 == 0) { if (var4 == 0) { this.setFlag(var1, var2, 65536); this.setFlag(var1 - 1, var2, 4096); } if (var4 == 1) { this.setFlag(var1, var2, 1024); this.setFlag(var1, var2 + 1, 16384); } if (var4 == 2) { this.setFlag(var1, var2, 4096); this.setFlag(var1 + 1, var2, 65536); } if (var4 == 3) { this.setFlag(var1, var2, 16384); this.setFlag(var1, var2 - 1, 1024); } } if (var3 == 1 || var3 == 3) { if (var4 == 0) { this.setFlag(var1, var2, 512); this.setFlag(var1 - 1, var2 + 1, 8192); } if (var4 == 1) { this.setFlag(var1, var2, 2048); this.setFlag(var1 + 1, var2 + 1, 32768); } if (var4 == 2) { this.setFlag(var1, var2, 8192); this.setFlag(var1 + 1, var2 - 1, 512); } if (var4 == 3) { this.setFlag(var1, var2, 32768); this.setFlag(var1 - 1, var2 - 1, 2048); } } if (var3 == 2) { if (var4 == 0) { this.setFlag(var1, var2, 66560); this.setFlag(var1 - 1, var2, 4096); this.setFlag(var1, var2 + 1, 16384); } if (var4 == 1) { this.setFlag(var1, var2, 5120); this.setFlag(var1, var2 + 1, 16384); this.setFlag(var1 + 1, var2, 65536); } if (var4 == 2) { this.setFlag(var1, var2, 20480); this.setFlag(var1 + 1, var2, 65536); this.setFlag(var1, var2 - 1, 1024); } if (var4 == 3) { this.setFlag(var1, var2, 81920); this.setFlag(var1, var2 - 1, 1024); this.setFlag(var1 - 1, var2, 4096); } } } } @ObfuscatedName("n") @ObfuscatedSignature( signature = "(IIIIZS)V", garbageValue = "463" ) @Export("addGameObject") public void addGameObject(int var1, int var2, int var3, int var4, boolean var5) { int var6 = 256; if (var5) { var6 += 131072; } var1 -= this.xInset; var2 -= this.yInset; for (int var7 = var1; var7 < var3 + var1; ++var7) { if (var7 >= 0 && var7 < this.xSize) { for (int var8 = var2; var8 < var2 + var4; ++var8) { if (var8 >= 0 && var8 < this.ySize) { this.setFlag(var7, var8, var6); } } } } } @ObfuscatedName("q") @ObfuscatedSignature( signature = "(III)V", garbageValue = "-712245850" ) @Export("setBlockedByFloor") public void setBlockedByFloor(int var1, int var2) { var1 -= this.xInset; var2 -= this.yInset; int[] var10000 = this.flags[var1]; var10000[var2] |= 2097152; } @ObfuscatedName("v") @ObfuscatedSignature( signature = "(III)V", garbageValue = "1787525972" ) @Export("setBlockedByFloorDec") public void setBlockedByFloorDec(int var1, int var2) { var1 -= this.xInset; var2 -= this.yInset; int[] var10000 = this.flags[var1]; var10000[var2] |= 262144; } @ObfuscatedName("l") @ObfuscatedSignature( signature = "(IIII)V", garbageValue = "-1353999324" ) @Export("setFlag") void setFlag(int var1, int var2, int var3) { int[] var10000 = this.flags[var1]; var10000[var2] |= var3; } @ObfuscatedName("c") @ObfuscatedSignature( signature = "(IIIIZI)V", garbageValue = "343029197" ) public void method3690(int var1, int var2, int var3, int var4, boolean var5) { var1 -= this.xInset; var2 -= this.yInset; if (var3 == 0) { if (var4 == 0) { this.setFlagOff(var1, var2, 128); this.setFlagOff(var1 - 1, var2, 8); } if (var4 == 1) { this.setFlagOff(var1, var2, 2); this.setFlagOff(var1, var2 + 1, 32); } if (var4 == 2) { this.setFlagOff(var1, var2, 8); this.setFlagOff(var1 + 1, var2, 128); } if (var4 == 3) { this.setFlagOff(var1, var2, 32); this.setFlagOff(var1, var2 - 1, 2); } } if (var3 == 1 || var3 == 3) { if (var4 == 0) { this.setFlagOff(var1, var2, 1); this.setFlagOff(var1 - 1, var2 + 1, 16); } if (var4 == 1) { this.setFlagOff(var1, var2, 4); this.setFlagOff(var1 + 1, var2 + 1, 64); } if (var4 == 2) { this.setFlagOff(var1, var2, 16); this.setFlagOff(var1 + 1, var2 - 1, 1); } if (var4 == 3) { this.setFlagOff(var1, var2, 64); this.setFlagOff(var1 - 1, var2 - 1, 4); } } if (var3 == 2) { if (var4 == 0) { this.setFlagOff(var1, var2, 130); this.setFlagOff(var1 - 1, var2, 8); this.setFlagOff(var1, var2 + 1, 32); } if (var4 == 1) { this.setFlagOff(var1, var2, 10); this.setFlagOff(var1, var2 + 1, 32); this.setFlagOff(var1 + 1, var2, 128); } if (var4 == 2) { this.setFlagOff(var1, var2, 40); this.setFlagOff(var1 + 1, var2, 128); this.setFlagOff(var1, var2 - 1, 2); } if (var4 == 3) { this.setFlagOff(var1, var2, 160); this.setFlagOff(var1, var2 - 1, 2); this.setFlagOff(var1 - 1, var2, 8); } } if (var5) { if (var3 == 0) { if (var4 == 0) { this.setFlagOff(var1, var2, 65536); this.setFlagOff(var1 - 1, var2, 4096); } if (var4 == 1) { this.setFlagOff(var1, var2, 1024); this.setFlagOff(var1, var2 + 1, 16384); } if (var4 == 2) { this.setFlagOff(var1, var2, 4096); this.setFlagOff(var1 + 1, var2, 65536); } if (var4 == 3) { this.setFlagOff(var1, var2, 16384); this.setFlagOff(var1, var2 - 1, 1024); } } if (var3 == 1 || var3 == 3) { if (var4 == 0) { this.setFlagOff(var1, var2, 512); this.setFlagOff(var1 - 1, var2 + 1, 8192); } if (var4 == 1) { this.setFlagOff(var1, var2, 2048); this.setFlagOff(var1 + 1, var2 + 1, 32768); } if (var4 == 2) { this.setFlagOff(var1, var2, 8192); this.setFlagOff(var1 + 1, var2 - 1, 512); } if (var4 == 3) { this.setFlagOff(var1, var2, 32768); this.setFlagOff(var1 - 1, var2 - 1, 2048); } } if (var3 == 2) { if (var4 == 0) { this.setFlagOff(var1, var2, 66560); this.setFlagOff(var1 - 1, var2, 4096); this.setFlagOff(var1, var2 + 1, 16384); } if (var4 == 1) { this.setFlagOff(var1, var2, 5120); this.setFlagOff(var1, var2 + 1, 16384); this.setFlagOff(var1 + 1, var2, 65536); } if (var4 == 2) { this.setFlagOff(var1, var2, 20480); this.setFlagOff(var1 + 1, var2, 65536); this.setFlagOff(var1, var2 - 1, 1024); } if (var4 == 3) { this.setFlagOff(var1, var2, 81920); this.setFlagOff(var1, var2 - 1, 1024); this.setFlagOff(var1 - 1, var2, 4096); } } } } @ObfuscatedName("o") @ObfuscatedSignature( signature = "(IIIIIZB)V", garbageValue = "16" ) @Export("setFlagOffNonSquare") public void setFlagOffNonSquare(int var1, int var2, int var3, int var4, int var5, boolean var6) { int var7 = 256; if (var6) { var7 += 131072; } var1 -= this.xInset; var2 -= this.yInset; int var8; if (var5 == 1 || var5 == 3) { var8 = var3; var3 = var4; var4 = var8; } for (var8 = var1; var8 < var3 + var1; ++var8) { if (var8 >= 0 && var8 < this.xSize) { for (int var9 = var2; var9 < var2 + var4; ++var9) { if (var9 >= 0 && var9 < this.ySize) { this.setFlagOff(var8, var9, var7); } } } } } @ObfuscatedName("i") @ObfuscatedSignature( signature = "(IIII)V", garbageValue = "-840002361" ) @Export("setFlagOff") void setFlagOff(int var1, int var2, int var3) { int[] var10000 = this.flags[var1]; var10000[var2] &= ~var3; } @ObfuscatedName("d") @ObfuscatedSignature( signature = "(IIS)V", garbageValue = "-31094" ) public void method3693(int var1, int var2) { var1 -= this.xInset; var2 -= this.yInset; int[] var10000 = this.flags[var1]; var10000[var2] &= -262145; } @ObfuscatedName("n") @ObfuscatedSignature( signature = "(Ljava/lang/String;Ljava/lang/String;ZI)Lmh;", garbageValue = "1385178219" ) @Export("getPreferencesFile") public static AccessFile getPreferencesFile(String var0, String var1, boolean var2) { File var3 = new File(JagexCache.cacheDir, "preferences" + var0 + ".dat"); if (var3.exists()) { try { AccessFile var10 = new AccessFile(var3, "rw", 10000L); return var10; } catch (IOException var9) { } } String var4 = ""; if (class189.cacheGamebuild == 33) { var4 = "_rc"; } else if (class189.cacheGamebuild == 34) { var4 = "_wip"; } File var5 = new File(class30.userHomeDirectory, "jagex_" + var1 + "_preferences" + var0 + var4 + ".dat"); AccessFile var6; if (!var2 && var5.exists()) { try { var6 = new AccessFile(var5, "rw", 10000L); return var6; } catch (IOException var8) { } } try { var6 = new AccessFile(var3, "rw", 10000L); return var6; } catch (IOException var7) { throw new RuntimeException(); } } }