Files
runelite/runescape-client/src/main/java/CollisionMap.java
Lucwousin e7a1983158 rev185
2019-10-31 16:57:45 +01:00

533 lines
11 KiB
Java

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();
}
}
}