Merge branch 'xmas-light-flicker' into 'master'

Location-based static light overrides for flickering effects in HD mode

See merge request 2009scape/rt4-client!40
This commit is contained in:
Edie 2026-07-24 07:55:17 +00:00
commit 4c16e35b76
3 changed files with 23 additions and 1 deletions

View file

@ -67,6 +67,8 @@ public final class Light {
@OriginalMember(owner = "client!gi", name = "g", descriptor = "Z")
public boolean aBoolean125 = false;
public boolean matchesStaticLightOverride = false;
@OriginalMember(owner = "client!gi", name = "I", descriptor = "[F")
public final float[] diffuse = new float[4];
@ -151,7 +153,7 @@ public final class Light {
} else {
alpha = 2048;
}
if (disableFlicker) {
if (disableFlicker || matchesStaticLightOverride) {
alpha = 2048;
}
this.alpha = (float) (this.alphaMax + (alpha * this.alphaMin >> 11)) / 2048.0F;

View file

@ -82,6 +82,22 @@ public class LightingManager {
}
}
private static final int[][] STATIC_LIGHT_OVERRIDES = {
{ 8005, 3063, 3046, 2 }
};
public static boolean matchesStaticLightOverride(int regionId, int x, int y, int plane) {
for (int[] override : STATIC_LIGHT_OVERRIDES) {
if (override[0] == regionId
&& override[1] == x
&& override[2] == y
&& override[3] == plane) {
return true;
}
}
return false;
}
@OriginalMember(owner = "client!jf", name = "a", descriptor = "()V")
public static void method2390() {
for (@Pc(1) int local1 = 0; local1 < 4; local1++) {

View file

@ -5266,12 +5266,16 @@ public class SceneGraph {
}
break label270;
} while (local515 <= 0);
int regionX = (arg4 + Camera.originX) >> 6;
int regionZ = (arg3 + Camera.originZ) >> 6;
int regionId = (regionX << 8) + regionZ;
for (local243 = 0; local243 < local515; local243++) {
@Pc(529) Light local529 = new Light(local95);
if (local529.anInt2243 == 31) {
@Pc(541) LightType local541 = LightTypeList.get(local95.g2());
local529.method1762(local541.anInt2865, local541.anInt2873, local541.anInt2867, local541.anInt2872);
}
local529.matchesStaticLightOverride = LightingManager.matchesStaticLightOverride(regionId, local529.x, local529.z, local529.level);
local529.z += arg3 << 7;
local529.x += arg4 << 7;
local194 = local529.z >> 7;