380 lines
13 KiB
Java
380 lines
13 KiB
Java
import java.io.File;
|
|
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("fh")
|
|
@Implements("JagexCache")
|
|
public class JagexCache {
|
|
@ObfuscatedName("u")
|
|
@Export("cacheDir")
|
|
public static File cacheDir;
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedGetter(
|
|
intValue = 1902063795
|
|
)
|
|
@Export("idxCount")
|
|
public static int idxCount;
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
signature = "Lmw;"
|
|
)
|
|
@Export("JagexCache_randomDat")
|
|
public static BufferedFile JagexCache_randomDat;
|
|
@ObfuscatedName("r")
|
|
@ObfuscatedSignature(
|
|
signature = "Lmw;"
|
|
)
|
|
@Export("JagexCache_dat2File")
|
|
public static BufferedFile JagexCache_dat2File;
|
|
@ObfuscatedName("y")
|
|
@ObfuscatedSignature(
|
|
signature = "Lmw;"
|
|
)
|
|
@Export("JagexCache_idx255File")
|
|
public static BufferedFile JagexCache_idx255File;
|
|
|
|
static {
|
|
JagexCache_randomDat = null;
|
|
JagexCache_dat2File = null;
|
|
JagexCache_idx255File = null;
|
|
}
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
signature = "(CLgk;I)I",
|
|
garbageValue = "57673109"
|
|
)
|
|
@Export("lowercaseChar")
|
|
static int lowercaseChar(char var0, Language var1) {
|
|
int var2 = var0 << 4;
|
|
if (Character.isUpperCase(var0) || Character.isTitleCase(var0)) {
|
|
var0 = Character.toLowerCase(var0);
|
|
var2 = (var0 << 4) + 1;
|
|
}
|
|
|
|
if (var0 == 241 && var1 == Language.Language_ES) {
|
|
var2 = 1762;
|
|
}
|
|
|
|
return var2;
|
|
}
|
|
|
|
@ObfuscatedName("hr")
|
|
@ObfuscatedSignature(
|
|
signature = "(Lgt;I)V",
|
|
garbageValue = "-2026077501"
|
|
)
|
|
static final void method3438(class185 var0) {
|
|
PacketBuffer var1 = Client.packetWriter.packetBuffer;
|
|
int var2;
|
|
int var3;
|
|
int var4;
|
|
int var5;
|
|
int var6;
|
|
int var7;
|
|
int var8;
|
|
int var9;
|
|
int var42;
|
|
if (class185.field2300 == var0) {
|
|
var2 = var1.method5438();
|
|
var3 = var2 >> 2;
|
|
var4 = var2 & 3;
|
|
var5 = Client.field665[var3];
|
|
var6 = var1.readUnsignedByteNegate();
|
|
var7 = (var6 >> 4 & 7) + WorldMapSection1.field283;
|
|
var8 = (var6 & 7) + Varps.field2507;
|
|
var9 = var1.readUnsignedShort();
|
|
if (var7 >= 0 && var8 >= 0 && var7 < 103 && var8 < 103) {
|
|
if (var5 == 0) {
|
|
BoundaryObject var10 = Player.scene.method3032(ItemContainer.plane, var7, var8);
|
|
if (var10 != null) {
|
|
var42 = BoundaryObject.Entity_unpackID(var10.tag);
|
|
if (var3 == 2) {
|
|
var10.entity1 = new DynamicObject(var42, 2, var4 + 4, ItemContainer.plane, var7, var8, var9, false, var10.entity1);
|
|
var10.entity2 = new DynamicObject(var42, 2, var4 + 1 & 3, ItemContainer.plane, var7, var8, var9, false, var10.entity2);
|
|
} else {
|
|
var10.entity1 = new DynamicObject(var42, var3, var4, ItemContainer.plane, var7, var8, var9, false, var10.entity1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (var5 == 1) {
|
|
WallDecoration var39 = Player.scene.method3033(ItemContainer.plane, var7, var8);
|
|
if (var39 != null) {
|
|
var42 = BoundaryObject.Entity_unpackID(var39.tag);
|
|
if (var3 != 4 && var3 != 5) {
|
|
if (var3 == 6) {
|
|
var39.entity1 = new DynamicObject(var42, 4, var4 + 4, ItemContainer.plane, var7, var8, var9, false, var39.entity1);
|
|
} else if (var3 == 7) {
|
|
var39.entity1 = new DynamicObject(var42, 4, (var4 + 2 & 3) + 4, ItemContainer.plane, var7, var8, var9, false, var39.entity1);
|
|
} else if (var3 == 8) {
|
|
var39.entity1 = new DynamicObject(var42, 4, var4 + 4, ItemContainer.plane, var7, var8, var9, false, var39.entity1);
|
|
var39.entity2 = new DynamicObject(var42, 4, (var4 + 2 & 3) + 4, ItemContainer.plane, var7, var8, var9, false, var39.entity2);
|
|
}
|
|
} else {
|
|
var39.entity1 = new DynamicObject(var42, 4, var4, ItemContainer.plane, var7, var8, var9, false, var39.entity1);
|
|
}
|
|
}
|
|
}
|
|
|
|
if (var5 == 2) {
|
|
GameObject var40 = Player.scene.method3034(ItemContainer.plane, var7, var8);
|
|
if (var3 == 11) {
|
|
var3 = 10;
|
|
}
|
|
|
|
if (var40 != null) {
|
|
var40.entity = new DynamicObject(BoundaryObject.Entity_unpackID(var40.tag), var3, var4, ItemContainer.plane, var7, var8, var9, false, var40.entity);
|
|
}
|
|
}
|
|
|
|
if (var5 == 3) {
|
|
FloorDecoration var41 = Player.scene.getFloorDecoration(ItemContainer.plane, var7, var8);
|
|
if (var41 != null) {
|
|
var41.entity = new DynamicObject(BoundaryObject.Entity_unpackID(var41.tag), 22, var4, ItemContainer.plane, var7, var8, var9, false, var41.entity);
|
|
}
|
|
}
|
|
}
|
|
|
|
} else if (class185.field2301 == var0) {
|
|
var2 = var1.method5445();
|
|
var3 = var1.method5447();
|
|
var4 = var1.method5445();
|
|
var5 = var1.method5436();
|
|
var6 = (var5 >> 4 & 7) + WorldMapSection1.field283;
|
|
var7 = (var5 & 7) + Varps.field2507;
|
|
if (var6 >= 0 && var7 >= 0 && var6 < 104 && var7 < 104) {
|
|
NodeDeque var45 = Client.groundItems[ItemContainer.plane][var6][var7];
|
|
if (var45 != null) {
|
|
for (TileItem var32 = (TileItem)var45.last(); var32 != null; var32 = (TileItem)var45.previous()) {
|
|
if ((var2 & 32767) == var32.id && var4 == var32.quantity) {
|
|
var32.quantity = var3;
|
|
break;
|
|
}
|
|
}
|
|
|
|
class189.updateItemPile(var6, var7);
|
|
}
|
|
}
|
|
|
|
} else if (class185.field2299 == var0) {
|
|
var2 = var1.readUnsignedShort();
|
|
var3 = var1.method5436();
|
|
var4 = var1.method5446();
|
|
var5 = var1.readUnsignedByte();
|
|
var6 = (var5 >> 4 & 7) + WorldMapSection1.field283;
|
|
var7 = (var5 & 7) + Varps.field2507;
|
|
if (var6 >= 0 && var7 >= 0 && var6 < 104 && var7 < 104) {
|
|
var6 = var6 * 128 + 64;
|
|
var7 = var7 * 128 + 64;
|
|
GraphicsObject var31 = new GraphicsObject(var2, ItemContainer.plane, var6, var7, GrandExchangeOfferTotalQuantityComparator.getTileHeight(var6, var7, ItemContainer.plane) - var3, var4, Client.cycle);
|
|
Client.graphicsObjects.addFirst(var31);
|
|
}
|
|
|
|
} else {
|
|
int var12;
|
|
byte var13;
|
|
int var14;
|
|
int var33;
|
|
if (class185.field2306 == var0) {
|
|
var2 = var1.method5438() * 4;
|
|
var3 = var1.readUnsignedShort();
|
|
var4 = var1.method5446();
|
|
var5 = var1.method5438() * 4;
|
|
var6 = var1.method5448();
|
|
var7 = var1.readUnsignedByte();
|
|
var8 = var1.method5438();
|
|
var9 = var1.method5445();
|
|
var33 = var1.method5436();
|
|
var42 = (var33 >> 4 & 7) + WorldMapSection1.field283;
|
|
var12 = (var33 & 7) + Varps.field2507;
|
|
var13 = var1.method5616();
|
|
byte var43 = var1.method5421();
|
|
var14 = var43 + var42;
|
|
int var44 = var13 + var12;
|
|
if (var42 >= 0 && var12 >= 0 && var42 < 104 && var12 < 104 && var14 >= 0 && var44 >= 0 && var14 < 104 && var44 < 104 && var4 != 65535) {
|
|
var42 = var42 * 128 + 64;
|
|
var12 = var12 * 128 + 64;
|
|
var14 = var14 * 128 + 64;
|
|
var44 = var44 * 128 + 64;
|
|
Projectile var15 = new Projectile(var4, ItemContainer.plane, var42, var12, GrandExchangeOfferTotalQuantityComparator.getTileHeight(var42, var12, ItemContainer.plane) - var5, var9 + Client.cycle, var3 + Client.cycle, var7, var8, var6, var2);
|
|
var15.setDestination(var14, var44, GrandExchangeOfferTotalQuantityComparator.getTileHeight(var14, var44, ItemContainer.plane) - var2, var9 + Client.cycle);
|
|
Client.projectiles.addFirst(var15);
|
|
}
|
|
|
|
} else if (class185.field2302 == var0) {
|
|
var2 = var1.method5438();
|
|
var3 = var2 >> 2;
|
|
var4 = var2 & 3;
|
|
var5 = Client.field665[var3];
|
|
var6 = var1.method5438();
|
|
var7 = (var6 >> 4 & 7) + WorldMapSection1.field283;
|
|
var8 = (var6 & 7) + Varps.field2507;
|
|
if (var7 >= 0 && var8 >= 0 && var7 < 104 && var8 < 104) {
|
|
StudioGame.updatePendingSpawn(ItemContainer.plane, var7, var8, var5, -1, var3, var4, 0, -1);
|
|
}
|
|
|
|
} else {
|
|
TileItem var35;
|
|
if (class185.field2297 == var0) {
|
|
var2 = var1.method5436();
|
|
var3 = (var2 >> 4 & 7) + WorldMapSection1.field283;
|
|
var4 = (var2 & 7) + Varps.field2507;
|
|
var5 = var1.method5447();
|
|
if (var3 >= 0 && var4 >= 0 && var3 < 104 && var4 < 104) {
|
|
NodeDeque var34 = Client.groundItems[ItemContainer.plane][var3][var4];
|
|
if (var34 != null) {
|
|
for (var35 = (TileItem)var34.last(); var35 != null; var35 = (TileItem)var34.previous()) {
|
|
if ((var5 & 32767) == var35.id) {
|
|
var35.remove();
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (var34.last() == null) {
|
|
Client.groundItems[ItemContainer.plane][var3][var4] = null;
|
|
}
|
|
|
|
class189.updateItemPile(var3, var4);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
if (class185.field2304 == var0) {
|
|
var2 = var1.readUnsignedByte();
|
|
var3 = (var2 >> 4 & 7) + WorldMapSection1.field283;
|
|
var4 = (var2 & 7) + Varps.field2507;
|
|
var5 = var1.method5438();
|
|
var6 = var1.method5436();
|
|
var7 = var6 >> 4 & 15;
|
|
var8 = var6 & 7;
|
|
var9 = var1.method5447();
|
|
if (var3 >= 0 && var4 >= 0 && var3 < 104 && var4 < 104) {
|
|
var33 = var7 + 1;
|
|
if (WorldMapIcon_1.localPlayer.pathX[0] >= var3 - var33 && WorldMapIcon_1.localPlayer.pathX[0] <= var3 + var33 && WorldMapIcon_1.localPlayer.pathY[0] >= var4 - var33 && WorldMapIcon_1.localPlayer.pathY[0] <= var33 + var4 && Client.field860 != 0 && var8 > 0 && Client.soundEffectCount < 50) {
|
|
Client.soundEffectIds[Client.soundEffectCount] = var9;
|
|
Client.queuedSoundEffectLoops[Client.soundEffectCount] = var8;
|
|
Client.queuedSoundEffectDelays[Client.soundEffectCount] = var5;
|
|
Client.soundEffects[Client.soundEffectCount] = null;
|
|
Client.soundLocations[Client.soundEffectCount] = var7 + (var4 << 8) + (var3 << 16);
|
|
++Client.soundEffectCount;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (class185.field2303 == var0) {
|
|
var2 = var1.method5446();
|
|
var3 = var1.method5447();
|
|
var4 = var1.method5436();
|
|
var5 = (var4 >> 4 & 7) + WorldMapSection1.field283;
|
|
var6 = (var4 & 7) + Varps.field2507;
|
|
if (var5 >= 0 && var6 >= 0 && var5 < 104 && var6 < 104) {
|
|
var35 = new TileItem();
|
|
var35.id = var3;
|
|
var35.quantity = var2;
|
|
if (Client.groundItems[ItemContainer.plane][var5][var6] == null) {
|
|
Client.groundItems[ItemContainer.plane][var5][var6] = new NodeDeque();
|
|
}
|
|
|
|
Client.groundItems[ItemContainer.plane][var5][var6].addFirst(var35);
|
|
class189.updateItemPile(var5, var6);
|
|
}
|
|
|
|
} else {
|
|
if (class185.field2298 == var0) {
|
|
byte var37 = var1.method5421();
|
|
var3 = var1.method5447();
|
|
byte var38 = var1.method5421();
|
|
var5 = var1.method5446();
|
|
var6 = var1.readUnsignedShort();
|
|
var7 = var1.method5436();
|
|
var8 = var7 >> 2;
|
|
var9 = var7 & 3;
|
|
var33 = Client.field665[var8];
|
|
byte var11 = var1.method5616();
|
|
var12 = var1.method5445();
|
|
var13 = var1.method5421();
|
|
var14 = var1.readUnsignedByteNegate();
|
|
int var36 = (var14 >> 4 & 7) + WorldMapSection1.field283;
|
|
int var16 = (var14 & 7) + Varps.field2507;
|
|
Player var17;
|
|
if (var12 == Client.localPlayerIndex) {
|
|
var17 = WorldMapIcon_1.localPlayer;
|
|
} else {
|
|
var17 = Client.players[var12];
|
|
}
|
|
|
|
if (var17 != null) {
|
|
ObjectDefinition var18 = class215.getObjectDefinition(var5);
|
|
int var19;
|
|
int var20;
|
|
if (var9 != 1 && var9 != 3) {
|
|
var19 = var18.sizeX;
|
|
var20 = var18.sizeY;
|
|
} else {
|
|
var19 = var18.sizeY;
|
|
var20 = var18.sizeX;
|
|
}
|
|
|
|
int var21 = var36 + (var19 >> 1);
|
|
int var22 = var36 + (var19 + 1 >> 1);
|
|
int var23 = var16 + (var20 >> 1);
|
|
int var24 = var16 + (var20 + 1 >> 1);
|
|
int[][] var25 = Tiles.Tiles_heights[ItemContainer.plane];
|
|
int var26 = var25[var22][var24] + var25[var22][var23] + var25[var21][var23] + var25[var21][var24] >> 2;
|
|
int var27 = (var36 << 7) + (var19 << 6);
|
|
int var28 = (var16 << 7) + (var20 << 6);
|
|
Model var29 = var18.getModel(var8, var9, var25, var27, var26, var28);
|
|
if (var29 != null) {
|
|
StudioGame.updatePendingSpawn(ItemContainer.plane, var36, var16, var33, -1, 0, 0, var6 + 1, var3 + 1);
|
|
var17.animationCycleStart = var6 + Client.cycle;
|
|
var17.animationCycleEnd = var3 + Client.cycle;
|
|
var17.model0 = var29;
|
|
var17.field599 = var36 * 128 + var19 * 64;
|
|
var17.field601 = var16 * 128 + var20 * 64;
|
|
var17.tileHeight2 = var26;
|
|
byte var30;
|
|
if (var37 > var13) {
|
|
var30 = var37;
|
|
var37 = var13;
|
|
var13 = var30;
|
|
}
|
|
|
|
if (var11 > var38) {
|
|
var30 = var11;
|
|
var11 = var38;
|
|
var38 = var30;
|
|
}
|
|
|
|
var17.field603 = var37 + var36;
|
|
var17.field616 = var36 + var13;
|
|
var17.field604 = var16 + var11;
|
|
var17.field606 = var38 + var16;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (class185.field2305 == var0) {
|
|
var2 = var1.method5436();
|
|
var3 = (var2 >> 4 & 7) + WorldMapSection1.field283;
|
|
var4 = (var2 & 7) + Varps.field2507;
|
|
var5 = var1.method5438();
|
|
var6 = var5 >> 2;
|
|
var7 = var5 & 3;
|
|
var8 = Client.field665[var6];
|
|
var9 = var1.method5446();
|
|
if (var3 >= 0 && var4 >= 0 && var3 < 104 && var4 < 104) {
|
|
StudioGame.updatePendingSpawn(ItemContainer.plane, var3, var4, var8, var9, var6, var7, 0, -1);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|