203 lines
5.6 KiB
Java
203 lines
5.6 KiB
Java
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("bg")
|
|
@Implements("Tiles")
|
|
public final class Tiles {
|
|
@ObfuscatedName("rr")
|
|
@ObfuscatedGetter(
|
|
intValue = 1255791215
|
|
)
|
|
static int field501;
|
|
@ObfuscatedName("q")
|
|
@Export("Tiles_heights")
|
|
static int[][][] Tiles_heights;
|
|
@ObfuscatedName("w")
|
|
@Export("Tiles_renderFlags")
|
|
static byte[][][] Tiles_renderFlags;
|
|
@ObfuscatedName("e")
|
|
@ObfuscatedGetter(
|
|
intValue = -1687687411
|
|
)
|
|
@Export("Tiles_minPlane")
|
|
static int Tiles_minPlane;
|
|
@ObfuscatedName("p")
|
|
static byte[][][] field504;
|
|
@ObfuscatedName("k")
|
|
static byte[][][] field505;
|
|
@ObfuscatedName("l")
|
|
static byte[][][] field506;
|
|
@ObfuscatedName("c")
|
|
static int[][] field515;
|
|
@ObfuscatedName("m")
|
|
static int[] field508;
|
|
@ObfuscatedName("u")
|
|
static int[] field507;
|
|
@ObfuscatedName("j")
|
|
static final int[] field512;
|
|
@ObfuscatedName("t")
|
|
static final int[] field513;
|
|
@ObfuscatedName("h")
|
|
static final int[] field514;
|
|
@ObfuscatedName("o")
|
|
static final int[] field520;
|
|
@ObfuscatedName("n")
|
|
static final int[] field509;
|
|
@ObfuscatedName("d")
|
|
static final int[] field517;
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedGetter(
|
|
intValue = 2138239411
|
|
)
|
|
static int field519;
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedGetter(
|
|
intValue = -217342215
|
|
)
|
|
static int field510;
|
|
|
|
static {
|
|
Tiles_heights = new int[4][105][105];
|
|
Tiles_renderFlags = new byte[4][104][104];
|
|
Tiles_minPlane = 99;
|
|
field512 = new int[]{1, 2, 4, 8};
|
|
field513 = new int[]{16, 32, 64, 128};
|
|
field514 = new int[]{1, 0, -1, 0};
|
|
field520 = new int[]{0, -1, 0, 1};
|
|
field509 = new int[]{1, -1, -1, 1};
|
|
field517 = new int[]{-1, -1, 1, 1};
|
|
field519 = (int)(Math.random() * 17.0D) - 8;
|
|
field510 = (int)(Math.random() * 33.0D) - 16;
|
|
}
|
|
|
|
@ObfuscatedName("gk")
|
|
@ObfuscatedSignature(
|
|
signature = "(ZLkx;I)V",
|
|
garbageValue = "-1936823520"
|
|
)
|
|
@Export("loadRegions")
|
|
static final void loadRegions(boolean var0, PacketBuffer var1) {
|
|
Client.isInInstance = var0;
|
|
int var2;
|
|
int var3;
|
|
int var5;
|
|
int var6;
|
|
int var7;
|
|
int var8;
|
|
if (!Client.isInInstance) {
|
|
var2 = var1.method5534();
|
|
var3 = var1.method5518();
|
|
int var4 = var1.readUnsignedShort();
|
|
WorldMapRegion.xteaKeys = new int[var4][4];
|
|
|
|
for (var5 = 0; var5 < var4; ++var5) {
|
|
for (var6 = 0; var6 < 4; ++var6) {
|
|
WorldMapRegion.xteaKeys[var5][var6] = var1.readInt();
|
|
}
|
|
}
|
|
|
|
DirectByteArrayCopier.regions = new int[var4];
|
|
SecureRandomFuture.regionMapArchiveIds = new int[var4];
|
|
WorldMapRectangle.regionLandArchiveIds = new int[var4];
|
|
class13.regionLandArchives = new byte[var4][];
|
|
class80.regionMapArchives = new byte[var4][];
|
|
boolean var16 = false;
|
|
if ((var3 / 8 == 48 || var3 / 8 == 49) && var2 / 8 == 48) {
|
|
var16 = true;
|
|
}
|
|
|
|
if (var3 / 8 == 48 && var2 / 8 == 148) {
|
|
var16 = true;
|
|
}
|
|
|
|
var4 = 0;
|
|
|
|
for (var6 = (var3 - 6) / 8; var6 <= (var3 + 6) / 8; ++var6) {
|
|
for (var7 = (var2 - 6) / 8; var7 <= (var2 + 6) / 8; ++var7) {
|
|
var8 = var7 + (var6 << 8);
|
|
if (!var16 || var7 != 49 && var7 != 149 && var7 != 147 && var6 != 50 && (var6 != 49 || var7 != 47)) {
|
|
DirectByteArrayCopier.regions[var4] = var8;
|
|
SecureRandomFuture.regionMapArchiveIds[var4] = WorldMapCacheName.archive5.getGroupId("m" + var6 + "_" + var7);
|
|
WorldMapRectangle.regionLandArchiveIds[var4] = WorldMapCacheName.archive5.getGroupId("l" + var6 + "_" + var7);
|
|
++var4;
|
|
}
|
|
}
|
|
}
|
|
|
|
UserComparator8.method3399(var3, var2, true);
|
|
} else {
|
|
var2 = var1.method5518();
|
|
var3 = var1.method5534();
|
|
boolean var15 = var1.readUnsignedByte() == 1;
|
|
var5 = var1.readUnsignedShort();
|
|
var1.importIndex();
|
|
|
|
int var9;
|
|
for (var6 = 0; var6 < 4; ++var6) {
|
|
for (var7 = 0; var7 < 13; ++var7) {
|
|
for (var8 = 0; var8 < 13; ++var8) {
|
|
var9 = var1.readBits(1);
|
|
if (var9 == 1) {
|
|
Client.instanceChunkTemplates[var6][var7][var8] = var1.readBits(26);
|
|
} else {
|
|
Client.instanceChunkTemplates[var6][var7][var8] = -1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var1.exportIndex();
|
|
WorldMapRegion.xteaKeys = new int[var5][4];
|
|
|
|
for (var6 = 0; var6 < var5; ++var6) {
|
|
for (var7 = 0; var7 < 4; ++var7) {
|
|
WorldMapRegion.xteaKeys[var6][var7] = var1.readInt();
|
|
}
|
|
}
|
|
|
|
DirectByteArrayCopier.regions = new int[var5];
|
|
SecureRandomFuture.regionMapArchiveIds = new int[var5];
|
|
WorldMapRectangle.regionLandArchiveIds = new int[var5];
|
|
class13.regionLandArchives = new byte[var5][];
|
|
class80.regionMapArchives = new byte[var5][];
|
|
var5 = 0;
|
|
|
|
for (var6 = 0; var6 < 4; ++var6) {
|
|
for (var7 = 0; var7 < 13; ++var7) {
|
|
for (var8 = 0; var8 < 13; ++var8) {
|
|
var9 = Client.instanceChunkTemplates[var6][var7][var8];
|
|
if (var9 != -1) {
|
|
int var10 = var9 >> 14 & 1023;
|
|
int var11 = var9 >> 3 & 2047;
|
|
int var12 = (var10 / 8 << 8) + var11 / 8;
|
|
|
|
int var13;
|
|
for (var13 = 0; var13 < var5; ++var13) {
|
|
if (DirectByteArrayCopier.regions[var13] == var12) {
|
|
var12 = -1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (var12 != -1) {
|
|
DirectByteArrayCopier.regions[var5] = var12;
|
|
var13 = var12 >> 8 & 255;
|
|
int var14 = var12 & 255;
|
|
SecureRandomFuture.regionMapArchiveIds[var5] = WorldMapCacheName.archive5.getGroupId("m" + var13 + "_" + var14);
|
|
WorldMapRectangle.regionLandArchiveIds[var5] = WorldMapCacheName.archive5.getGroupId("l" + var13 + "_" + var14);
|
|
++var5;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
UserComparator8.method3399(var3, var2, !var15);
|
|
}
|
|
|
|
}
|
|
}
|