Files
runelite/runescape-client/src/main/java/ParamDefinition.java

399 lines
16 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("jb")
@Implements("ParamDefinition")
public class ParamDefinition extends DualNode {
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "Lir;"
)
@Export("ParamDefinition_archive")
public static AbstractArchive ParamDefinition_archive;
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "Ler;"
)
@Export("ParamDefinition_cached")
static EvictingDualNodeHashTable ParamDefinition_cached;
@ObfuscatedName("q")
@Export("type")
char type;
@ObfuscatedName("w")
@ObfuscatedGetter(
intValue = 1133042753
)
@Export("defaultInt")
public int defaultInt;
@ObfuscatedName("o")
@Export("defaultStr")
public String defaultStr;
@ObfuscatedName("u")
@Export("autoDisable")
boolean autoDisable;
ParamDefinition() {
this.autoDisable = true;
}
@ObfuscatedName("f")
@ObfuscatedSignature(
signature = "(B)V",
garbageValue = "121"
)
@Export("postDecode")
void postDecode() {
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "(Lgr;I)V",
garbageValue = "-975533635"
)
@Export("decode")
void decode(Buffer var1) {
while (true) {
int var2 = var1.readUnsignedByte();
if (var2 == 0) {
return;
}
this.decodeNext(var1, var2);
}
}
@ObfuscatedName("w")
@ObfuscatedSignature(
signature = "(Lgr;II)V",
garbageValue = "1664350313"
)
@Export("decodeNext")
void decodeNext(Buffer var1, int var2) {
if (var2 == 1) {
this.type = class14.method171(var1.readByte());
} else if (var2 == 2) {
this.defaultInt = var1.readInt();
} else if (var2 == 4) {
this.autoDisable = false;
} else if (var2 == 5) {
this.defaultStr = var1.readStringCp1252NullTerminated();
}
}
@ObfuscatedName("o")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "-1897943299"
)
@Export("isString")
public boolean isString() {
return this.type == 's';
}
@ObfuscatedName("hs")
@ObfuscatedSignature(
signature = "(IIIIIIII)V",
garbageValue = "-904254947"
)
@Export("addPendingSpawnToScene")
static final void addPendingSpawnToScene(int plane, int objectType, int x, int y, int id, int orientation, int var6) {
if (x >= 1 && y >= 1 && x <= 102 && y <= 102) {
if (Client.isLowDetail && plane != SoundSystem.plane) {
return;
}
long var7 = 0L;
boolean var9 = true;
boolean var10 = false;
boolean var11 = false;
if (objectType == 0) {
var7 = class65.scene.getBoundaryObjectTag(plane, x, y);
}
if (objectType == 1) {
var7 = class65.scene.getWallDecorationTag(plane, x, y);
}
if (objectType == 2) {
var7 = class65.scene.getGameObjectTag(plane, x, y);
}
if (objectType == 3) {
var7 = class65.scene.getFloorDecorationTag(plane, x, y);
}
int var12;
if (0L != var7) {
var12 = class65.scene.getObjectFlags(plane, x, y, var7);
int var13 = HitSplatDefinition.method4972(var7);
int var14 = var12 & 31;
int var15 = var12 >> 6 & 3;
ObjectDefinition var16;
if (objectType == 0) {
class65.scene.removeBoundaryObject(plane, x, y);
var16 = class50.getObjectDefinition(var13);
if (var16.interactType != 0) {
Client.collisionMaps[plane].method95(x, y, var14, var15, var16.boolean1);
}
}
if (objectType == 1) {
class65.scene.removeWallDecoration(plane, x, y);
}
if (objectType == 2) {
class65.scene.method288(plane, x, y);
var16 = class50.getObjectDefinition(var13);
if (x + var16.sizeX > 103 || y + var16.sizeX > 103 || x + var16.sizeY > 103 || y + var16.sizeY > 103) {
return;
}
if (var16.interactType != 0) {
Client.collisionMaps[plane].method96(x, y, var16.sizeX, var16.sizeY, var15, var16.boolean1);
}
}
if (objectType == 3) {
class65.scene.removeFloorDecoration(plane, x, y);
var16 = class50.getObjectDefinition(var13);
if (var16.interactType == 1) {
Client.collisionMaps[plane].method98(x, y);
}
}
}
if (id >= 0) {
var12 = plane;
if (plane < 3 && (Tiles.Tiles_renderFlags[1][x][y] & 2) == 2) {
var12 = plane + 1;
}
Scene var36 = class65.scene;
CollisionMap var37 = Client.collisionMaps[plane];
ObjectDefinition var38 = class50.getObjectDefinition(id);
int var17;
int var39;
if (orientation != 1 && orientation != 3) {
var17 = var38.sizeX;
var39 = var38.sizeY;
} else {
var17 = var38.sizeY;
var39 = var38.sizeX;
}
int var18;
int var19;
if (var17 + x <= 104) {
var18 = (var17 >> 1) + x;
var19 = x + (var17 + 1 >> 1);
} else {
var18 = x;
var19 = x + 1;
}
int var20;
int var21;
if (y + var39 <= 104) {
var20 = y + (var39 >> 1);
var21 = y + (var39 + 1 >> 1);
} else {
var20 = y;
var21 = y + 1;
}
int[][] var22 = Tiles.Tiles_heights[var12];
int var23 = var22[var18][var21] + var22[var19][var20] + var22[var18][var20] + var22[var19][var21] >> 2;
int var24 = (x << 7) + (var17 << 6);
int var25 = (y << 7) + (var39 << 6);
long var26 = FontName.calculateTag(x, y, 2, var38.int1 == 0, id);
int var28 = (orientation << 6) + var6;
if (var38.int3 == 1) {
var28 += 256;
}
Object var29;
if (var6 == 22) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(22, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 22, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newFloorDecoration(plane, x, y, var23, (Entity)var29, var26, var28);
if (var38.interactType == 1) {
var37.method93(x, y);
}
} else if (var6 != 10 && var6 != 11) {
if (var6 >= 12) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(var6, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, var6, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.method284(plane, x, y, var23, 1, 1, (Entity)var29, 0, var26, var28);
if (var38.interactType != 0) {
var37.method91(x, y, var17, var39, var38.boolean1);
}
} else if (var6 == 0) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(0, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 0, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newBoundaryObject(plane, x, y, var23, (Entity)var29, (Entity)null, Tiles.field911[orientation], 0, var26, var28);
if (var38.interactType != 0) {
var37.method90(x, y, var6, orientation, var38.boolean1);
}
} else if (var6 == 1) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(1, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 1, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newBoundaryObject(plane, x, y, var23, (Entity)var29, (Entity)null, Tiles.field912[orientation], 0, var26, var28);
if (var38.interactType != 0) {
var37.method90(x, y, var6, orientation, var38.boolean1);
}
} else {
int var30;
Object var31;
if (var6 == 2) {
var30 = orientation + 1 & 3;
Object var32;
if (var38.animationId == -1 && var38.transforms == null) {
var31 = var38.getModel(2, orientation + 4, var22, var24, var23, var25);
var32 = var38.getModel(2, var30, var22, var24, var23, var25);
} else {
var31 = new DynamicObject(id, 2, orientation + 4, var12, x, y, var38.animationId, true, (Entity)null);
var32 = new DynamicObject(id, 2, var30, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newBoundaryObject(plane, x, y, var23, (Entity)var31, (Entity)var32, Tiles.field911[orientation], Tiles.field911[var30], var26, var28);
if (var38.interactType != 0) {
var37.method90(x, y, var6, orientation, var38.boolean1);
}
} else if (var6 == 3) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(3, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 3, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newBoundaryObject(plane, x, y, var23, (Entity)var29, (Entity)null, Tiles.field912[orientation], 0, var26, var28);
if (var38.interactType != 0) {
var37.method90(x, y, var6, orientation, var38.boolean1);
}
} else if (var6 == 9) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(var6, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, var6, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.method284(plane, x, y, var23, 1, 1, (Entity)var29, 0, var26, var28);
if (var38.interactType != 0) {
var37.method91(x, y, var17, var39, var38.boolean1);
}
} else if (var6 == 4) {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(4, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 4, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newWallDecoration(plane, x, y, var23, (Entity)var29, (Entity)null, Tiles.field911[orientation], 0, 0, 0, var26, var28);
} else {
long var40;
if (var6 == 5) {
var30 = 16;
var40 = var36.getBoundaryObjectTag(plane, x, y);
if (var40 != 0L) {
var30 = class50.getObjectDefinition(HitSplatDefinition.method4972(var40)).int2;
}
if (var38.animationId == -1 && var38.transforms == null) {
var31 = var38.getModel(4, orientation, var22, var24, var23, var25);
} else {
var31 = new DynamicObject(id, 4, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newWallDecoration(plane, x, y, var23, (Entity)var31, (Entity)null, Tiles.field911[orientation], 0, var30 * Tiles.field913[orientation], var30 * Tiles.field914[orientation], var26, var28);
} else if (var6 == 6) {
var30 = 8;
var40 = var36.getBoundaryObjectTag(plane, x, y);
if (var40 != 0L) {
var30 = class50.getObjectDefinition(HitSplatDefinition.method4972(var40)).int2 / 2;
}
if (var38.animationId == -1 && var38.transforms == null) {
var31 = var38.getModel(4, orientation + 4, var22, var24, var23, var25);
} else {
var31 = new DynamicObject(id, 4, orientation + 4, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newWallDecoration(plane, x, y, var23, (Entity)var31, (Entity)null, 256, orientation, var30 * Tiles.field915[orientation], var30 * Tiles.field916[orientation], var26, var28);
} else {
int var34;
if (var6 == 7) {
var34 = orientation + 2 & 3;
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(4, var34 + 4, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 4, var34 + 4, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newWallDecoration(plane, x, y, var23, (Entity)var29, (Entity)null, 256, var34, 0, 0, var26, var28);
} else if (var6 == 8) {
var30 = 8;
var40 = var36.getBoundaryObjectTag(plane, x, y);
if (var40 != 0L) {
var30 = class50.getObjectDefinition(HitSplatDefinition.method4972(var40)).int2 / 2;
}
var34 = orientation + 2 & 3;
Object var35;
if (var38.animationId == -1 && var38.transforms == null) {
var31 = var38.getModel(4, orientation + 4, var22, var24, var23, var25);
var35 = var38.getModel(4, var34 + 4, var22, var24, var23, var25);
} else {
var31 = new DynamicObject(id, 4, orientation + 4, var12, x, y, var38.animationId, true, (Entity)null);
var35 = new DynamicObject(id, 4, var34 + 4, var12, x, y, var38.animationId, true, (Entity)null);
}
var36.newWallDecoration(plane, x, y, var23, (Entity)var31, (Entity)var35, 256, orientation, var30 * Tiles.field915[orientation], var30 * Tiles.field916[orientation], var26, var28);
}
}
}
}
} else {
if (var38.animationId == -1 && var38.transforms == null) {
var29 = var38.getModel(10, orientation, var22, var24, var23, var25);
} else {
var29 = new DynamicObject(id, 10, orientation, var12, x, y, var38.animationId, true, (Entity)null);
}
if (var29 != null) {
var36.method284(plane, x, y, var23, var17, var39, (Entity)var29, var6 == 11 ? 256 : 0, var26, var28);
}
if (var38.interactType != 0) {
var37.method91(x, y, var17, var39, var38.boolean1);
}
}
}
}
}
static {
ParamDefinition_cached = new EvictingDualNodeHashTable(64);
}
}