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

183 lines
4.7 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("cv")
@Implements("DynamicObject")
public class DynamicObject extends Entity {
@ObfuscatedName("x")
@ObfuscatedGetter(
intValue = -778595855
)
@Export("id")
int id;
@ObfuscatedName("m")
@ObfuscatedGetter(
intValue = 1719688801
)
@Export("type")
int type;
@ObfuscatedName("k")
@ObfuscatedGetter(
intValue = 1645761999
)
@Export("orientation")
int orientation;
@ObfuscatedName("d")
@ObfuscatedGetter(
intValue = -1021480433
)
@Export("plane")
int plane;
@ObfuscatedName("w")
@ObfuscatedGetter(
intValue = 1939594765
)
@Export("x")
int x;
@ObfuscatedName("v")
@ObfuscatedGetter(
intValue = 456415143
)
@Export("y")
int y;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Ljc;"
)
@Export("sequenceDefinition")
SequenceDefinition sequenceDefinition;
@ObfuscatedName("z")
@ObfuscatedGetter(
intValue = -2053050533
)
@Export("frame")
int frame;
@ObfuscatedName("t")
@ObfuscatedGetter(
intValue = 1933430481
)
@Export("cycleStart")
int cycleStart;
@ObfuscatedSignature(
signature = "(IIIIIIIZLee;)V"
)
DynamicObject(int var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8, Entity var9) {
this.id = var1;
this.type = var2;
this.orientation = var3;
this.plane = var4;
this.x = var5;
this.y = var6;
if (var7 != -1) {
this.sequenceDefinition = SpotAnimationDefinition.SequenceDefinition_get(var7);
this.frame = 0;
this.cycleStart = Client.cycle - 1;
if (this.sequenceDefinition.field3525 == 0 && var9 != null && var9 instanceof DynamicObject) {
DynamicObject var10 = (DynamicObject)var9;
if (this.sequenceDefinition == var10.sequenceDefinition) {
this.frame = var10.frame;
this.cycleStart = var10.cycleStart;
return;
}
}
if (var8 && this.sequenceDefinition.frameCount != -1) {
this.frame = (int)(Math.random() * (double)this.sequenceDefinition.frameIds.length);
this.cycleStart -= (int)(Math.random() * (double)this.sequenceDefinition.frameLengths[this.frame]);
}
}
}
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "(I)Lel;",
garbageValue = "480835067"
)
@Export("getModel")
protected final Model getModel() {
if (this.sequenceDefinition != null) {
int var1 = Client.cycle - this.cycleStart;
if (var1 > 100 && this.sequenceDefinition.frameCount > 0) {
var1 = 100;
}
label55: {
do {
do {
if (var1 <= this.sequenceDefinition.frameLengths[this.frame]) {
break label55;
}
var1 -= this.sequenceDefinition.frameLengths[this.frame];
++this.frame;
} while(this.frame < this.sequenceDefinition.frameIds.length);
this.frame -= this.sequenceDefinition.frameCount;
} while(this.frame >= 0 && this.frame < this.sequenceDefinition.frameIds.length);
this.sequenceDefinition = null;
}
this.cycleStart = Client.cycle - var1;
}
ObjectDefinition var12 = WorldMapSection2.getObjectDefinition(this.id);
if (var12.transforms != null) {
var12 = var12.transform();
}
if (var12 == null) {
return null;
} else {
int var2;
int var3;
if (this.orientation != 1 && this.orientation != 3) {
var2 = var12.sizeX;
var3 = var12.sizeY;
} else {
var2 = var12.sizeY;
var3 = var12.sizeX;
}
int var4 = (var2 >> 1) + this.x;
int var5 = (var2 + 1 >> 1) + this.x;
int var6 = (var3 >> 1) + this.y;
int var7 = (var3 + 1 >> 1) + this.y;
int[][] var8 = Tiles.Tiles_heights[this.plane];
int var9 = var8[var4][var7] + var8[var5][var6] + var8[var4][var6] + var8[var5][var7] >> 2;
int var10 = (this.x << 7) + (var2 << 6);
int var11 = (this.y << 7) + (var3 << 6);
return var12.getModelDynamic(this.type, this.orientation, var8, var10, var9, var11, this.sequenceDefinition, this.frame);
}
}
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "(ILlq;Lih;I)V",
garbageValue = "-389102765"
)
static void method2342(int var0, ArchiveDisk var1, Archive var2) {
byte[] var3 = null;
synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) {
for (ArchiveDiskAction var5 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var5 != null; var5 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) {
if (var5.key == (long)var0 && var1 == var5.archiveDisk && var5.type == 0) {
var3 = var5.data;
break;
}
}
}
if (var3 != null) {
var2.load(var1, var0, var3, true);
} else {
byte[] var4 = var1.read(var0);
var2.load(var1, var0, var4, true);
}
}
}