fix(combat): restore retail power bar layers

Preserve the authored gray track, trained-Recklessness range, live bright charge meter, and independent desired-power thumb while keeping Speed and Power over gray side regions. Correct retail text justification value 2 to left alignment and retain direct RenderSurface decoding in the texture inspection tool used to verify the assets.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-12 21:14:14 +02:00
parent 0f2d98c501
commit 256c1930bd
18 changed files with 200 additions and 32 deletions

View file

@ -44,7 +44,8 @@ foreach (var id in ids)
RenderSurface? rs = null;
uint lookupId = id;
if (dats.TryGet<Surface>(id, out var surface) && surface is not null)
if ((id & 0xFF000000u) == 0x08000000u
&& dats.TryGet<Surface>(id, out var surface) && surface is not null)
{
lookupId = (uint)surface.OrigTextureId;
var color = surface.ColorValue is null
@ -54,7 +55,8 @@ foreach (var id in ids)
}
// SurfaceTexture wrapper (0x05xxxxxx) → first inner RenderSurface (0x06xxxxxx).
if (dats.TryGet<SurfaceTexture>(lookupId, out var st) && st is not null && st.Textures.Count > 0)
if ((lookupId & 0xFF000000u) == 0x05000000u
&& dats.TryGet<SurfaceTexture>(lookupId, out var st) && st is not null && st.Textures.Count > 0)
{
uint rsid = (uint)st.Textures[0];
Console.WriteLine($" SurfaceTexture wrapper, {st.Textures.Count} mip(s), first = 0x{rsid:X8}");