Files
runelite/runescape-client/src/main/java/DirectByteArrayCopier.java
Owain van Brakel 7c7bf0901a project: Rev 202
2021-12-14 18:20:58 +01:00

355 lines
12 KiB
Java

import java.nio.ByteBuffer;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("jz")
@Implements("DirectByteArrayCopier")
public class DirectByteArrayCopier extends AbstractByteArrayCopier {
@ObfuscatedName("b")
@Export("clearLoginScreen")
static boolean clearLoginScreen;
@ObfuscatedName("c")
@Export("directBuffer")
ByteBuffer directBuffer;
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "(I)[B",
garbageValue = "1918796592"
)
@Export("get")
byte[] get() {
byte[] var1 = new byte[this.directBuffer.capacity()];
this.directBuffer.position(0);
this.directBuffer.get(var1);
return var1;
}
@ObfuscatedName("m")
@ObfuscatedSignature(
descriptor = "([BI)V",
garbageValue = "-1795617978"
)
@Export("set")
public void set(byte[] var1) {
this.directBuffer = ByteBuffer.allocateDirect(var1.length);
this.directBuffer.position(0);
this.directBuffer.put(var1);
}
@ObfuscatedName("ha")
@ObfuscatedSignature(
descriptor = "(Lif;B)V",
garbageValue = "14"
)
static final void method5328(class253 var0) {
PacketBuffer var1 = Client.packetWriter.packetBuffer;
int var6;
int var7;
int var8;
int var9;
int var11;
int var37;
int var38;
int var39;
int var40;
if (class253.field2911 == var0) {
var37 = var1.method7403();
var38 = var1.method7520();
var39 = (var38 >> 4 & 7) + class17.field90;
var40 = (var38 & 7) + class167.field1813;
var6 = var1.method7394();
var7 = var6 >> 2;
var8 = var6 & 3;
var9 = Client.field537[var7];
if (var39 >= 0 && var40 >= 0 && var39 < 103 && var40 < 103) {
if (var9 == 0) {
BoundaryObject var36 = class7.scene.method4105(class20.Client_plane, var39, var40);
if (var36 != null) {
var11 = PacketWriter.Entity_unpackID(var36.tag);
if (var7 == 2) {
var36.renderable1 = new DynamicObject(var11, 2, var8 + 4, class20.Client_plane, var39, var40, var37, false, var36.renderable1);
var36.renderable2 = new DynamicObject(var11, 2, var8 + 1 & 3, class20.Client_plane, var39, var40, var37, false, var36.renderable2);
} else {
var36.renderable1 = new DynamicObject(var11, var7, var8, class20.Client_plane, var39, var40, var37, false, var36.renderable1);
}
}
}
if (var9 == 1) {
WallDecoration var44 = class7.scene.method3973(class20.Client_plane, var39, var40);
if (var44 != null) {
var11 = PacketWriter.Entity_unpackID(var44.tag);
if (var7 != 4 && var7 != 5) {
if (var7 == 6) {
var44.renderable1 = new DynamicObject(var11, 4, var8 + 4, class20.Client_plane, var39, var40, var37, false, var44.renderable1);
} else if (var7 == 7) {
var44.renderable1 = new DynamicObject(var11, 4, (var8 + 2 & 3) + 4, class20.Client_plane, var39, var40, var37, false, var44.renderable1);
} else if (var7 == 8) {
var44.renderable1 = new DynamicObject(var11, 4, var8 + 4, class20.Client_plane, var39, var40, var37, false, var44.renderable1);
var44.renderable2 = new DynamicObject(var11, 4, (var8 + 2 & 3) + 4, class20.Client_plane, var39, var40, var37, false, var44.renderable2);
}
} else {
var44.renderable1 = new DynamicObject(var11, 4, var8, class20.Client_plane, var39, var40, var37, false, var44.renderable1);
}
}
}
if (var9 == 2) {
GameObject var45 = class7.scene.getGameObject(class20.Client_plane, var39, var40);
if (var7 == 11) {
var7 = 10;
}
if (var45 != null) {
var45.renderable = new DynamicObject(PacketWriter.Entity_unpackID(var45.tag), var7, var8, class20.Client_plane, var39, var40, var37, false, var45.renderable);
}
}
if (var9 == 3) {
FloorDecoration var46 = class7.scene.getFloorDecoration(class20.Client_plane, var39, var40);
if (var46 != null) {
var46.renderable = new DynamicObject(PacketWriter.Entity_unpackID(var46.tag), 22, var8, class20.Client_plane, var39, var40, var37, false, var46.renderable);
}
}
}
} else {
int var10;
int var12;
int var13;
int var14;
if (class253.field2913 == var0) {
byte var2 = var1.method7396();
byte var3 = var1.readByte();
byte var4 = var1.method7396();
byte var5 = var1.readByte();
var6 = var1.readUnsignedShort();
var7 = var1.method7499();
var8 = var1.readUnsignedShort();
var9 = var1.method7520();
var10 = (var9 >> 4 & 7) + class17.field90;
var11 = (var9 & 7) + class167.field1813;
var12 = var1.method7392();
var13 = var12 >> 2;
var14 = var12 & 3;
int var15 = Client.field537[var13];
int var16 = var1.method7401();
Player var17;
if (var16 == Client.localPlayerIndex) {
var17 = class340.localPlayer;
} else {
var17 = Client.players[var16];
}
if (var17 != null) {
ObjectComposition var18 = class148.getObjectDefinition(var6);
int var19;
int var20;
if (var14 != 1 && var14 != 3) {
var19 = var18.sizeX;
var20 = var18.sizeY;
} else {
var19 = var18.sizeY;
var20 = var18.sizeX;
}
int var21 = var10 + (var19 >> 1);
int var22 = var10 + (var19 + 1 >> 1);
int var23 = var11 + (var20 >> 1);
int var24 = var11 + (var20 + 1 >> 1);
int[][] var25 = Tiles.Tiles_heights[class20.Client_plane];
int var26 = var25[var22][var24] + var25[var22][var23] + var25[var21][var23] + var25[var21][var24] >> 2;
int var27 = (var10 << 7) + (var19 << 6);
int var28 = (var11 << 7) + (var20 << 6);
Model var29 = var18.getModel(var13, var14, var25, var27, var26, var28);
if (var29 != null) {
Varcs.updatePendingSpawn(class20.Client_plane, var10, var11, var15, -1, 0, 0, var7 + 1, var8 + 1);
var17.animationCycleStart = var7 + Client.cycle;
var17.animationCycleEnd = var8 + Client.cycle;
var17.model0 = var29;
var17.field1056 = var19 * 64 + var10 * 128;
var17.field1058 = var20 * 64 + var11 * 128;
var17.tileHeight2 = var26;
byte var30;
if (var3 > var2) {
var30 = var3;
var3 = var2;
var2 = var30;
}
if (var5 > var4) {
var30 = var5;
var5 = var4;
var4 = var30;
}
var17.minX = var10 + var3;
var17.maxX = var10 + var2;
var17.minY = var11 + var5;
var17.maxY = var4 + var11;
}
}
}
if (class253.field2920 == var0) {
var37 = var1.method7392();
var38 = (var37 >> 4 & 7) + class17.field90;
var39 = (var37 & 7) + class167.field1813;
var40 = var1.method7404();
byte var41 = var1.method7396();
var7 = var1.readUnsignedShort();
var8 = var1.readUnsignedByte();
var9 = var1.method7401();
var10 = var1.readUnsignedByte() * 4;
var11 = var1.method7520();
var12 = var1.method7403();
var13 = var1.readUnsignedByte() * 4;
byte var42 = var1.method7465();
var6 = var41 + var38;
var14 = var42 + var39;
if (var38 >= 0 && var39 >= 0 && var38 < 104 && var39 < 104 && var6 >= 0 && var14 >= 0 && var6 < 104 && var14 < 104 && var9 != 65535) {
var38 = var38 * 128 + 64;
var39 = var39 * 128 + 64;
var6 = var6 * 128 + 64;
var14 = var14 * 128 + 64;
Projectile var35 = new Projectile(var9, class20.Client_plane, var38, var39, FaceNormal.getTileHeight(var38, var39, class20.Client_plane) - var10, var12 + Client.cycle, var7 + Client.cycle, var11, var8, var40, var13);
var35.setDestination(var6, var14, FaceNormal.getTileHeight(var6, var14, class20.Client_plane) - var13, var12 + Client.cycle);
Client.projectiles.addFirst(var35);
}
} else if (class253.field2916 == var0) {
var37 = var1.method7394();
var38 = var37 >> 2;
var39 = var37 & 3;
var40 = Client.field537[var38];
var6 = var1.method7394();
var7 = (var6 >> 4 & 7) + class17.field90;
var8 = (var6 & 7) + class167.field1813;
var9 = var1.method7403();
if (var7 >= 0 && var8 >= 0 && var7 < 104 && var8 < 104) {
Varcs.updatePendingSpawn(class20.Client_plane, var7, var8, var40, var9, var38, var39, 0, -1);
}
} else if (class253.field2918 == var0) {
var37 = var1.readUnsignedByte();
var38 = var37 >> 2;
var39 = var37 & 3;
var40 = Client.field537[var38];
var6 = var1.method7392();
var7 = (var6 >> 4 & 7) + class17.field90;
var8 = (var6 & 7) + class167.field1813;
if (var7 >= 0 && var8 >= 0 && var7 < 104 && var8 < 104) {
Varcs.updatePendingSpawn(class20.Client_plane, var7, var8, var40, -1, var38, var39, 0, -1);
}
} else {
TileItem var33;
if (class253.field2917 == var0) {
var37 = var1.method7392();
var38 = (var37 >> 4 & 7) + class17.field90;
var39 = (var37 & 7) + class167.field1813;
var40 = var1.method7401();
if (var38 >= 0 && var39 >= 0 && var38 < 104 && var39 < 104) {
NodeDeque var34 = Client.groundItems[class20.Client_plane][var38][var39];
if (var34 != null) {
for (var33 = (TileItem)var34.last(); var33 != null; var33 = (TileItem)var34.previous()) {
if ((var40 & 32767) == var33.id) {
var33.remove();
break;
}
}
if (var34.last() == null) {
Client.groundItems[class20.Client_plane][var38][var39] = null;
}
MouseHandler.updateItemPile(var38, var39);
}
}
} else if (class253.field2914 == var0) {
var37 = var1.readUnsignedShort();
var38 = var1.method7394();
var39 = (var38 >> 4 & 7) + class17.field90;
var40 = (var38 & 7) + class167.field1813;
var6 = var1.method7401();
if (var39 >= 0 && var40 >= 0 && var39 < 104 && var40 < 104) {
var33 = new TileItem();
var33.id = var37;
var33.quantity = var6;
if (Client.groundItems[class20.Client_plane][var39][var40] == null) {
Client.groundItems[class20.Client_plane][var39][var40] = new NodeDeque();
}
Client.groundItems[class20.Client_plane][var39][var40].addFirst(var33);
MouseHandler.updateItemPile(var39, var40);
}
} else if (class253.field2912 == var0) {
var37 = var1.method7392();
var38 = (var37 >> 4 & 7) + class17.field90;
var39 = (var37 & 7) + class167.field1813;
var40 = var1.method7403();
var6 = var1.method7520();
var7 = var1.readUnsignedShort();
if (var38 >= 0 && var39 >= 0 && var38 < 104 && var39 < 104) {
var38 = var38 * 128 + 64;
var39 = var39 * 128 + 64;
GraphicsObject var43 = new GraphicsObject(var40, class20.Client_plane, var38, var39, FaceNormal.getTileHeight(var38, var39, class20.Client_plane) - var6, var7, Client.cycle);
Client.graphicsObjects.addFirst(var43);
}
} else {
if (class253.field2915 == var0) {
var37 = var1.readUnsignedByte();
var38 = var37 >> 4 & 15;
var39 = var37 & 7;
var40 = var1.method7392();
var6 = var1.readUnsignedByte();
var7 = (var6 >> 4 & 7) + class17.field90;
var8 = (var6 & 7) + class167.field1813;
var9 = var1.method7499();
if (var7 >= 0 && var8 >= 0 && var7 < 104 && var8 < 104) {
var10 = var38 + 1;
if (class340.localPlayer.pathX[0] >= var7 - var10 && class340.localPlayer.pathX[0] <= var10 + var7 && class340.localPlayer.pathY[0] >= var8 - var10 && class340.localPlayer.pathY[0] <= var10 + var8 && SecureRandomFuture.clientPreferences.areaSoundEffectsVolume != 0 && var39 > 0 && Client.soundEffectCount < 50) {
Client.soundEffectIds[Client.soundEffectCount] = var9;
Client.queuedSoundEffectLoops[Client.soundEffectCount] = var39;
Client.queuedSoundEffectDelays[Client.soundEffectCount] = var40;
Client.soundEffects[Client.soundEffectCount] = null;
Client.soundLocations[Client.soundEffectCount] = var38 + (var8 << 8) + (var7 << 16);
++Client.soundEffectCount;
}
}
}
if (class253.field2919 == var0) {
var37 = var1.readUnsignedShort();
var38 = var1.method7499();
var39 = var1.method7392();
var40 = (var39 >> 4 & 7) + class17.field90;
var6 = (var39 & 7) + class167.field1813;
var7 = var1.method7401();
if (var40 >= 0 && var6 >= 0 && var40 < 104 && var6 < 104) {
NodeDeque var31 = Client.groundItems[class20.Client_plane][var40][var6];
if (var31 != null) {
for (TileItem var32 = (TileItem)var31.last(); var32 != null; var32 = (TileItem)var31.previous()) {
if ((var7 & 32767) == var32.id && var38 == var32.quantity) {
var32.quantity = var37;
break;
}
}
MouseHandler.updateItemPile(var40, var6);
}
}
}
}
}
}
}
}