Zero exact credit. The previously unwritten private renderer lands as a
complete January-bytes reconstruction at 1584/95 against 1616/95, with the
44-entry keyboard_rect data owner now matching January's .data bytes.
Residual: January pins edi=-1 across the draw calls and keeps three
separate sticky-bitmap switch arms; its loop bound is a csplit relocation
alias (_item_update_section == _keyboard_rect+352), so strict exactness is
not reachable from C. font_character is TU-local with disclosure, matching
the identical copies in draw_string.c and rasterizer_text.c. The parked
_virtual_keyboard_select is unchanged. virtual_keyboard: 18 exact / 2 residual.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
+2 strict exact functions / 3,168 padded / 3,116 meaningful bytes (both were
unwritten). hud_draw_meter clamps alpha with MAX/PIN over fast_ftol_C and
follows January's branch order; hud_draw_numbers uses January's assert text
operand order, abs() and digit-before-leading-zero ordering, and a 16-bit
point2d pen. Prototypes were already owned by hud_draw.h. The hud number,
number element, meter-flag and meter-parameter definitions are TU-local with
a disclosure comment: identical copies already exist in hud_messaging.c,
hud_nav_points.c, hud_weapon.c (active lane) and rasterizer_xbox_dynavobgeom.c,
so header consolidation is queued until hud_weapon.c is free.
The asm-only pixel32 converters and fast_ftol_C remain unwritten (owner
decision). hud_draw: 13 exact / 7 residual / 3 unwritten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
+4 strict exact functions / 1,072 padded bytes:
_widget_instance_reload_recursive and _ui_widget_reload_by_tag (the January
static no-op COMDATs, HCEA signatures, called from event_handler_dispatch
under their reload flags), _widget_instance_initialize (header stores in
struct field order) and _ui_widget_load_by_name_or_tag (single exit; the
controller switch writes the parameter home as January's 0x14 frame proves).
ui_widget: 89 exact / 13 residual.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>