Commit Graph
88 Commits
Author SHA1 Message Date
Jonas Volman 79dc341332 Recover interface color helpers 2026-08-21 13:29:16 -07:00
Jonas Volman d9a1e4363d Recover UI widget child count 2026-08-21 13:22:59 -07:00
Jonas Volman 94d8db3ed0 Match first person weapon allocation and node matrix 2026-08-21 07:59:41 -07:00
Jonas Volman fc1e362e6b Recover exact HUD messaging leaves 2026-08-21 02:50:27 -07:00
Jonas Volman 17c544767c Match HUD initialization and update 2026-08-21 02:49:31 -07:00
Jonas Volman 69df1391f9 Recover HUD lifecycle and visibility leaves 2026-08-21 02:31:59 -07:00
Jonas Volman f318796875 Recover interface lifecycle leaves 2026-08-20 23:21:20 -07:00
Jonas Volman 2ba1c02d32 Recover eleven typed leaf functions 2026-08-20 20:49:05 -07:00
Jonas Volman 963a4ca878 Recover exact widget null callback 2026-08-20 18:20:14 -07:00
Jonas Volman c4e439d02a Recover seven exact runtime leaves 2026-08-20 17:36:31 -07:00
Jonas Volman f6a5e7d716 Recover UI widget no-op helpers 2026-08-20 16:19:22 -07:00
Jonas Volman 472fe0e0b2 Type player UI edit profiles 2026-08-20 15:11:07 -07:00
Jonas Volman cc7b74b732 Recover player UI exact sections 2026-08-20 14:21:36 -07:00
Jonas Volman 9265756109 Own event manager global state 2026-08-20 13:05:06 -07:00
Jonas VolmanandClaude Fable 5 aec8a8bb8f event_manager complete: reconstruct code_000cb850 and event_manager_update, object 8/8 exact
event_manager_update (272 B) gated exact on first compile. code_000cb850
(768 B) needed three stacked levers: (1) the no-post arm is a NEGATED
else-if -- 'else if (!(crossed || crossed || repeat)) post = FALSE; else
{ post body }' -- which lays both xor-post blocks inline as fallthrough
stubs and keeps them un-cross-jumped, fixing the 16-byte size gap;
(2) 'boolean post = TRUE;' at declaration, so the live range crosses
system_milliseconds and post colors into BL, denying EBX to the time
local (January homes time in [ebp-4] and reloads at every use);
(3) one shared 'if (post) { insert }' tail instead of per-arm early
returns -- the type-0/3 paths constant-fold the test away, matching
January's straight jump into the insert.

Struct recoveries: event_record.data is a union (point2d stick /
{index,value} button), second field controller_index attested by
ui_widget_event_handler_functions' private copy; event_manager_globals
__unknown108 resolved as stick_event_times[2][4] +
previous_stick_axes[2][2][4] (0x108..0x167). Stick deadzone 29490
(0x7332), repeat window 250 ms, clamp writes via chained assignment
'x = event->data.stick.x = 32767' selected by a switch on
'x >= 0 ? 1 : -1'.

Inert alternatives measured: post declared before time (no move);
post = FALSE init at top (memory-homes post, restructures prologue);
guard-inverted arms without the negation (720 B collapse).

Board: 179/619 objects, 3,609 fns, 486,407 bytes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-20 13:05:06 -07:00
Jonas Volman 780f170fd5 Advance hud_nav_points reconstruction 2026-08-20 10:05:33 -07:00
Jonas Volman 1bf72e846d Match UI widget event handler functions object 2026-08-13 05:40:42 -07:00
Jonas Volman b9b0b9733b Match UI scenario tag loading 2026-07-18 16:31:01 -07:00
Jonas Volman d941151fdd Match small player UI state helpers 2026-07-17 00:02:37 -07:00
Jonas Volman a58b7edb41 Match main BSP and precache helpers 2026-07-16 13:42:05 -07:00
Jonas Volman f314457922 Match event manager queue leaves 2026-07-16 08:34:01 -07:00
Jonas Volman a76292ab44 Match HUD unit no-op leaves 2026-07-15 17:31:36 -07:00
Jonas Volman 69e6ef3019 Match UI safe-to-load callback 2026-07-15 17:29:21 -07:00
Jonas Volman fe65f68d00 Match virtual keyboard lifecycle 2026-07-15 14:23:00 -07:00
Jonas Volman cae129464d Match virtual keyboard key character helpers 2026-07-15 13:38:41 -07:00
Jonas Volman 41fd28f1fb Match virtual keyboard close helper 2026-07-15 13:07:12 -07:00
Jonas Volman 4b997e9a20 Match virtual keyboard navigation helpers 2026-07-15 12:55:04 -07:00
Jonas Volman 486c665118 Match virtual keyboard delete helper 2026-07-15 12:41:05 -07:00
Jonas Volman 997abfe31c Match virtual keyboard buffer capacity helper 2026-07-15 12:39:42 -07:00
Jonas Volman 13621a1024 Match virtual keyboard process wrappers 2026-07-15 12:38:14 -07:00
Jonas Volman d6b1ac8380 Match virtual keyboard state leaves 2026-07-15 12:36:51 -07:00
Jonas Volman d7782f0ff0 Match progress bar screen projection 2026-07-15 11:51:28 -07:00
Jonas Volman a2b3acd168 Match progress bar TGA loading 2026-07-15 11:37:24 -07:00
Jonas Volman 8039b7434a Match progress bar texture coordinates 2026-07-15 11:22:49 -07:00
Jonas Volman c6bc35c537 Match progress bar display 2026-07-15 11:16:49 -07:00
Jonas Volman fb806015d4 Match progress bar initialization 2026-07-15 11:15:21 -07:00
Jonas Volman 5696844da4 Match progress bar texture helpers 2026-07-15 11:10:43 -07:00
Jonas Volman dc97b258a2 Match progress bar lifecycle controls 2026-07-15 11:07:30 -07:00
Jonas Volman b30b1235a6 Match progress bar active state 2026-07-15 11:04:08 -07:00
Jonas Volman dc03f89c3e Reconnect particles to structure BSP 2026-07-15 08:28:08 -07:00
Jonas Volman 6a526b4e4e Match progress bar disposal 2026-07-15 08:21:58 -07:00
Jonas Volman 0851c3dd2d Match weapon HUD disposal lifecycle 2026-07-15 08:20:52 -07:00
Jonas Volman caed30accc Match unit HUD disposal lifecycle 2026-07-15 08:16:29 -07:00
Jonas Volman 47be2c9be2 Match HUD messaging disposal lifecycle 2026-07-15 08:14:30 -07:00
Jonas Volman 05c6a0a6fb Match first person weapon disposal lifecycle 2026-07-15 08:11:40 -07:00
Jonas Volman c079fc90fc Reconstruct motion sensor map initialization 2026-07-14 21:34:27 -07:00
Jonas Volman 5df7ba9b15 Match terminal global BSS linkage 2026-07-14 19:08:43 -07:00
Jonas Volman a917110d9d Fix terminal tab stops linkage: rename to _rdata_002712d0 with external scope
Change static const short terminal_tab_stops[] to const short
rdata_002712d0[] so the symbol is external (storage 0x2) and
matches the target COFF's symbol name and linkage. The 6-byte
tab-stops array was previously reported as a .rdata mismatch
(96.36% of 176 bytes matching). All 13 code functions remain
unchanged and verified EQUAL via the hardened comparator.
2026-07-14 19:03:37 -07:00
Jonas Volman 73d92be2b9 Match HUD anchor names 2026-07-14 18:21:47 -07:00
Jonas Volman b450404cb7 Match UI text replacement data 2026-07-14 16:50:55 -07:00