rt4-client/client/src/main/java/rt4/HintArrowManager.java
2022-07-22 11:20:16 -04:00

67 lines
2.6 KiB
Java

package rt4;
import org.openrs2.deob.annotation.OriginalArg;
import org.openrs2.deob.annotation.OriginalMember;
import org.openrs2.deob.annotation.Pc;
public class HintArrowManager {
@OriginalMember(owner = "client!ih", name = "l", descriptor = "Lclient!n;")
public static final SoftLruHashTable models = new SoftLruHashTable(4);
@OriginalMember(owner = "client!mh", name = "c", descriptor = "(II)V")
public static void clean() {
models.clean(5);
}
@OriginalMember(owner = "client!og", name = "a", descriptor = "(I)V")
public static void removeSoft() {
models.removeSoft();
}
@OriginalMember(owner = "client!oi", name = "b", descriptor = "(I)V")
public static void clear() {
models.clear();
}
@OriginalMember(owner = "client!rm", name = "a", descriptor = "(ZIIIILclient!ak;I)Lclient!ak;")
public static Model getModel(@OriginalArg(1) int arg0, @OriginalArg(2) int arg1, @OriginalArg(3) int arg2, @OriginalArg(4) int arg3, @OriginalArg(5) Model arg4, @OriginalArg(6) int arg5) {
@Pc(4) long local4 = arg2;
@Pc(10) Model model = (Model) models.get(local4);
if (model == null) {
@Pc(22) RawModel local22 = RawModel.create(client.js5Archive7, arg2);
if (local22 == null) {
return null;
}
model = local22.createModel(64, 768, -50, -10, -50);
models.put(model, local4);
}
@Pc(42) int minX = arg4.getMinX();
@Pc(45) int maxX = arg4.getMaxX();
@Pc(48) int minZ = arg4.getMinZ();
@Pc(51) int maxZ = arg4.getMaxZ();
model = model.method4560(true, true, true);
if (arg0 != 0) {
model.rotateY(arg0);
}
@Pc(94) int local94;
if (GlRenderer.enabled) {
@Pc(68) GlModel local68 = (GlModel) model;
if (arg5 != SceneGraph.getTileHeight(Player.plane, arg3 + minX, arg1 + minZ) || arg5 != SceneGraph.getTileHeight(Player.plane, arg3 + maxX, maxZ + arg1)) {
for (local94 = 0; local94 < local68.vertexCount; local94++) {
local68.vertexY[local94] += SceneGraph.getTileHeight(Player.plane, local68.vertexX[local94] + arg3, local68.vertexZ[local94] + arg1) - arg5;
}
local68.vertexBuffer.valid = false;
local68.bounds.valid = false;
}
} else {
@Pc(142) SoftwareModel local142 = (SoftwareModel) model;
if (arg5 != SceneGraph.getTileHeight(Player.plane, minX + arg3, minZ + arg1) || arg5 != SceneGraph.getTileHeight(Player.plane, arg3 + maxX, maxZ + arg1)) {
for (local94 = 0; local94 < local142.vertexCount; local94++) {
local142.vertexY[local94] += SceneGraph.getTileHeight(Player.plane, arg3 + local142.vertexX[local94], local142.vertexZ[local94] + arg1) - arg5;
}
local142.boundsValid = false;
}
}
return model;
}
}