Files
runelite/runescape-client/src/main/java/Tiles.java
2019-07-18 15:21:46 +02:00

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