183 lines
4.7 KiB
Java
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);
|
|
}
|
|
}
|
|
}
|