Files
runelite/runescape-client/src/main/java/Frames.java
2020-03-26 14:17:06 +00:00

106 lines
2.8 KiB
Java

import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ef")
@Implements("Frames")
public class Frames extends DualNode {
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "[Leh;"
)
@Export("frames")
Animation[] frames;
@ObfuscatedSignature(
signature = "(Liy;Liy;IZ)V",
garbageValue = "0"
)
public Frames(AbstractArchive var1, AbstractArchive var2, int var3, boolean var4) {
NodeDeque var5 = new NodeDeque();
int var6 = var1.getGroupFileCount(var3);
this.frames = new Animation[var6];
int[] var7 = var1.getGroupFileIds(var3);
for (int var8 = 0; var8 < var7.length; ++var8) {
byte[] var9 = var1.takeFile(var3, var7[var8]);
Skeleton var10 = null;
int var11 = (var9[0] & 255) << 8 | var9[1] & 255;
for (Skeleton var12 = (Skeleton)var5.last(); var12 != null; var12 = (Skeleton)var5.previous()) {
if (var11 == var12.id) {
var10 = var12;
break;
}
}
if (var10 == null) {
byte[] var13 = var2.getFile(var11, 0);
var10 = new Skeleton(var11, var13);
var5.addFirst(var10);
}
this.frames[var7[var8]] = new Animation(var9, var10);
}
}
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "(II)Z",
garbageValue = "861900150"
)
@Export("hasAlphaTransform")
public boolean hasAlphaTransform(int var1) {
return this.frames[var1].hasAlphaTransform;
}
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "(Lih;IIIBZI)V",
garbageValue = "-626508532"
)
@Export("requestNetFile")
static void requestNetFile(Archive var0, int var1, int var2, int var3, byte var4, boolean var5) {
long var6 = (long)((var1 << 16) + var2);
NetFileRequest var8 = (NetFileRequest)NetCache.NetCache_pendingPriorityWrites.get(var6);
if (var8 == null) {
var8 = (NetFileRequest)NetCache.NetCache_pendingPriorityResponses.get(var6);
if (var8 == null) {
var8 = (NetFileRequest)NetCache.NetCache_pendingWrites.get(var6);
if (var8 != null) {
if (var5) {
var8.removeDual();
NetCache.NetCache_pendingPriorityWrites.put(var8, var6);
--NetCache.NetCache_pendingWritesCount;
++NetCache.NetCache_pendingPriorityWritesCount;
}
} else {
if (!var5) {
var8 = (NetFileRequest)NetCache.NetCache_pendingResponses.get(var6);
if (var8 != null) {
return;
}
}
var8 = new NetFileRequest();
var8.archive = var0;
var8.crc = var3;
var8.padding = var4;
if (var5) {
NetCache.NetCache_pendingPriorityWrites.put(var8, var6);
++NetCache.NetCache_pendingPriorityWritesCount;
} else {
NetCache.NetCache_pendingWritesQueue.addFirst(var8);
NetCache.NetCache_pendingWrites.put(var8, var6);
++NetCache.NetCache_pendingWritesCount;
}
}
}
}
}
}