248 lines
7.0 KiB
Java
248 lines
7.0 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("cb")
|
|
@Implements("DynamicObject")
|
|
public class DynamicObject extends Entity {
|
|
@ObfuscatedName("fo")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Lkr;"
|
|
)
|
|
@Export("fontPlain11")
|
|
static Font fontPlain11;
|
|
@ObfuscatedName("z")
|
|
@ObfuscatedGetter(
|
|
intValue = -992554479
|
|
)
|
|
@Export("id")
|
|
int id;
|
|
@ObfuscatedName("k")
|
|
@ObfuscatedGetter(
|
|
intValue = -224037215
|
|
)
|
|
@Export("type")
|
|
int type;
|
|
@ObfuscatedName("s")
|
|
@ObfuscatedGetter(
|
|
intValue = -1337748479
|
|
)
|
|
@Export("orientation")
|
|
int orientation;
|
|
@ObfuscatedName("t")
|
|
@ObfuscatedGetter(
|
|
intValue = 719138669
|
|
)
|
|
@Export("plane")
|
|
int plane;
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedGetter(
|
|
intValue = 1011089507
|
|
)
|
|
@Export("x")
|
|
int x;
|
|
@ObfuscatedName("o")
|
|
@ObfuscatedGetter(
|
|
intValue = -1704315949
|
|
)
|
|
@Export("y")
|
|
int y;
|
|
@ObfuscatedName("x")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Ljm;"
|
|
)
|
|
@Export("sequenceDefinition")
|
|
SequenceDefinition sequenceDefinition;
|
|
@ObfuscatedName("w")
|
|
@ObfuscatedGetter(
|
|
intValue = -791329731
|
|
)
|
|
@Export("frame")
|
|
int frame;
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedGetter(
|
|
intValue = -1556832647
|
|
)
|
|
@Export("cycleStart")
|
|
int cycleStart;
|
|
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIIIIIIZLez;)V"
|
|
)
|
|
DynamicObject(int var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8, Entity var9) {
|
|
this.id = var1; // L: 20
|
|
this.type = var2; // L: 21
|
|
this.orientation = var3; // L: 22
|
|
this.plane = var4; // L: 23
|
|
this.x = var5; // L: 24
|
|
this.y = var6; // L: 25
|
|
if (var7 != -1) { // L: 26
|
|
this.sequenceDefinition = WorldMapRegion.SequenceDefinition_get(var7); // L: 27
|
|
this.frame = 0; // L: 28
|
|
this.cycleStart = Client.cycle - 1; // L: 29
|
|
if (this.sequenceDefinition.field3535 == 0 && var9 != null && var9 instanceof DynamicObject) { // L: 30
|
|
DynamicObject var10 = (DynamicObject)var9; // L: 31
|
|
if (this.sequenceDefinition == var10.sequenceDefinition) { // L: 32
|
|
this.frame = var10.frame; // L: 33
|
|
this.cycleStart = var10.cycleStart; // L: 34
|
|
return; // L: 35
|
|
}
|
|
}
|
|
|
|
if (var8 && this.sequenceDefinition.frameCount != -1) { // L: 38
|
|
this.frame = (int)(Math.random() * (double)this.sequenceDefinition.frameIds.length); // L: 39
|
|
this.cycleStart -= (int)(Math.random() * (double)this.sequenceDefinition.frameLengths[this.frame]); // L: 40
|
|
}
|
|
}
|
|
|
|
} // L: 43
|
|
|
|
@ObfuscatedName("g")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)Ler;",
|
|
garbageValue = "-2026237468"
|
|
)
|
|
@Export("getModel")
|
|
protected final Model getModel() {
|
|
if (this.sequenceDefinition != null) { // L: 46
|
|
int var1 = Client.cycle - this.cycleStart; // L: 47
|
|
if (var1 > 100 && this.sequenceDefinition.frameCount > 0) { // L: 48
|
|
var1 = 100;
|
|
}
|
|
|
|
label54: {
|
|
do {
|
|
do {
|
|
if (var1 <= this.sequenceDefinition.frameLengths[this.frame]) { // L: 49
|
|
break label54;
|
|
}
|
|
|
|
var1 -= this.sequenceDefinition.frameLengths[this.frame]; // L: 50
|
|
++this.frame; // L: 51
|
|
} while(this.frame < this.sequenceDefinition.frameIds.length); // L: 52
|
|
|
|
this.frame -= this.sequenceDefinition.frameCount; // L: 53
|
|
} while(this.frame >= 0 && this.frame < this.sequenceDefinition.frameIds.length); // L: 54
|
|
|
|
this.sequenceDefinition = null; // L: 55
|
|
}
|
|
|
|
this.cycleStart = Client.cycle - var1; // L: 60
|
|
}
|
|
|
|
ObjectDefinition var12 = MidiPcmStream.getObjectDefinition(this.id); // L: 62
|
|
if (var12.transforms != null) { // L: 63
|
|
var12 = var12.transform();
|
|
}
|
|
|
|
if (var12 == null) { // L: 64
|
|
return null;
|
|
} else {
|
|
int var2;
|
|
int var3;
|
|
if (this.orientation != 1 && this.orientation != 3) { // L: 67
|
|
var2 = var12.sizeX; // L: 72
|
|
var3 = var12.sizeY; // L: 73
|
|
} else {
|
|
var2 = var12.sizeY; // L: 68
|
|
var3 = var12.sizeX; // L: 69
|
|
}
|
|
|
|
int var4 = (var2 >> 1) + this.x; // L: 75
|
|
int var5 = (var2 + 1 >> 1) + this.x; // L: 76
|
|
int var6 = (var3 >> 1) + this.y; // L: 77
|
|
int var7 = (var3 + 1 >> 1) + this.y; // L: 78
|
|
int[][] var8 = Tiles.Tiles_heights[this.plane]; // L: 79
|
|
int var9 = var8[var4][var7] + var8[var4][var6] + var8[var5][var6] + var8[var5][var7] >> 2; // L: 80
|
|
int var10 = (this.x << 7) + (var2 << 6); // L: 81
|
|
int var11 = (this.y << 7) + (var3 << 6); // L: 82
|
|
return var12.getModelDynamic(this.type, this.orientation, var8, var10, var9, var11, this.sequenceDefinition, this.frame); // L: 83
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("i")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(Lkf;IIIIIIB)V",
|
|
garbageValue = "24"
|
|
)
|
|
@Export("loadTerrain")
|
|
static final void loadTerrain(Buffer var0, int var1, int var2, int var3, int var4, int var5, int var6) {
|
|
int var7;
|
|
if (var2 >= 0 && var2 < 104 && var3 >= 0 && var3 < 104) { // L: 108
|
|
Tiles.Tiles_renderFlags[var1][var2][var3] = 0; // L: 109
|
|
|
|
while (true) {
|
|
var7 = var0.readUnsignedByte(); // L: 111
|
|
if (var7 == 0) { // L: 112
|
|
if (var1 == 0) { // L: 113
|
|
int[] var14 = Tiles.Tiles_heights[0][var2]; // L: 114
|
|
int var11 = var2 + var4 + 932731; // L: 117
|
|
int var12 = var3 + var5 + 556238; // L: 118
|
|
int var13 = class60.method947(45365 + var11, 91923 + var12, 4) - 128 + (class60.method947(var11 + 10294, 37821 + var12, 2) - 128 >> 1) + (class60.method947(var11, var12, 1) - 128 >> 2); // L: 120
|
|
var13 = (int)((double)var13 * 0.3D) + 35; // L: 121
|
|
if (var13 < 10) { // L: 122
|
|
var13 = 10;
|
|
} else if (var13 > 60) { // L: 123
|
|
var13 = 60;
|
|
}
|
|
|
|
var14[var3] = -var13 * 8; // L: 126
|
|
} else {
|
|
Tiles.Tiles_heights[var1][var2][var3] = Tiles.Tiles_heights[var1 - 1][var2][var3] - 240; // L: 128
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (var7 == 1) { // L: 131
|
|
int var8 = var0.readUnsignedByte(); // L: 132
|
|
if (var8 == 1) { // L: 133
|
|
var8 = 0;
|
|
}
|
|
|
|
if (var1 == 0) { // L: 134
|
|
Tiles.Tiles_heights[0][var2][var3] = -var8 * 8;
|
|
} else {
|
|
Tiles.Tiles_heights[var1][var2][var3] = Tiles.Tiles_heights[var1 - 1][var2][var3] - var8 * 8; // L: 135
|
|
}
|
|
break;
|
|
}
|
|
|
|
if (var7 <= 49) { // L: 138
|
|
Tiles.field521[var1][var2][var3] = var0.readByte(); // L: 139
|
|
class297.field3668[var1][var2][var3] = (byte)((var7 - 2) / 4); // L: 140
|
|
class171.field2049[var1][var2][var3] = (byte)(var7 - 2 + var6 & 3); // L: 141
|
|
} else if (var7 <= 81) { // L: 144
|
|
Tiles.Tiles_renderFlags[var1][var2][var3] = (byte)(var7 - 49); // L: 145
|
|
} else {
|
|
Tiles.field528[var1][var2][var3] = (byte)(var7 - 81); // L: 148
|
|
}
|
|
}
|
|
} else {
|
|
while (true) {
|
|
var7 = var0.readUnsignedByte(); // L: 153
|
|
if (var7 == 0) { // L: 154
|
|
break;
|
|
}
|
|
|
|
if (var7 == 1) { // L: 155
|
|
var0.readUnsignedByte(); // L: 156
|
|
break;
|
|
}
|
|
|
|
if (var7 <= 49) { // L: 159
|
|
var0.readUnsignedByte();
|
|
}
|
|
}
|
|
}
|
|
|
|
} // L: 162
|
|
|
|
@ObfuscatedName("m")
|
|
@Export("addEntityUnderMouse")
|
|
static final void addEntityUnderMouse(long var0) {
|
|
ViewportMouse.ViewportMouse_entityTags[++ViewportMouse.ViewportMouse_entityCount - 1] = var0; // L: 99
|
|
} // L: 100
|
|
}
|