KB: document the HorizTwoPartBar tiled-pattern fix
context/gauges-hud.md: new section on the TEMP/STATUS bar's three-zone tiled
render (@004c4340) and the port bug where Execute solid-filled from warnPix and
ignored the tile image. Commit 4d4436e.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4d4436ed03
commit
2e9c1c7c0d
@@ -192,6 +192,24 @@ the base non-virtual `DrawWarningLamp` existed, so the count stayed green-on-bla
|
||||
dark box in the green dot. Fix: made `DrawWarningLamp` virtual + added the ballistic override.
|
||||
Energy weapons (`EnergyWeaponCluster`, no ammo count) use the base only — unaffected.
|
||||
|
||||
## TEMP/STATUS bar (HorizTwoPartBar) tiles a striped pattern from x=0 (2026-07-21) [T1 decomp + render-verified]
|
||||
The per-weapon TEMP/STATUS bar is a `HorizTwoPartBar` (@004c4170, Execute @004c4340). It renders
|
||||
**three zones along X** from the interned `tileImage` + two colours (`fillColor`, `backgroundColor`):
|
||||
- `[0, warnPix)` — `DrawTiledBitmap(tileImage)` (@004c2ff8): the striped/dotted TILE pattern. The
|
||||
`color` arg is ignored — the tile is blitted with its own pixels (vtbl+0x58) tiled across the zone.
|
||||
- `[warnPix, valPix)` — `backgroundColor` solid (only when `value > low`; binary keeps the current
|
||||
colour, still `backgroundColor` from zone 1 — no SetColor).
|
||||
- `[valPix, width)` — `fillColor` solid.
|
||||
`warnPix = round(width*low/high)`, `valPix = round(width*value/high)` (value=CurrentTemperature,
|
||||
low=DegradationTemperature, high=FailureTemperature). **Port bug (fixed):** the Execute had been
|
||||
rewritten with `DrawFilledRectangle` starting at `warnPix` and NEVER used `tileImage` — so the bar
|
||||
read as a solid block "starting in the middle", not striped. The sibling `VertTwoPartBar`
|
||||
(@004c4724, eng-page vertical temp bars) was already correct (uses `DrawTiledBitmap`). Fix mirrored
|
||||
the tiled three-zone render into `HorizTwoPartBar::Execute`; matches the DOSBox reference (hatched
|
||||
fill block on the left + dotted tick scale). NOTE the horizontal/vertical bars use DIFFERENT zone
|
||||
colours (Horiz: zone2=bg, zone3=fill, 2 colours; Vert: zone2=fill, zone3=extra, 3 colours) — do not
|
||||
assume they are pure mirrors.
|
||||
|
||||
## The secondary screen's THREE views (Damage / Critical / Heat) — mode-gated [T0/T1/T2]
|
||||
The `sec` port stacks three mode-gated mech-schematic layers at offset (50,0) over the
|
||||
always-on radar/heading/speed/messageBoard (`Secondary1`): **Damage** (`ModeSecondaryDamage`,
|
||||
|
||||
Reference in New Issue
Block a user