mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2025-12-13 01:51:39 -07:00
67 lines
2.6 KiB
Java
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;
|
|
}
|
|
}
|