Commit Graph
119 Commits
Author SHA1 Message Date
Jonas Volman 5148c16105 Recover recursive UI visibility exactly 2026-08-30 04:34:35 -07:00
Jonas Volman f4d9197dc4 Recover UI widget nth child exactly 2026-08-30 04:26:27 -07:00
Jonas Volman 1c6f96dc08 Recover ARGB UI white getter exactly 2026-08-30 04:08:28 -07:00
Jonas Volman 34996e506f Recover UI white color getter exactly 2026-08-30 03:59:19 -07:00
Jonas Volman 3611665329 Match HUD custom state enable 2026-08-30 03:27:33 -07:00
Jonas Volman ef51cab6de Match HUD state message icon 2026-08-30 03:14:54 -07:00
Jonas Volman 2a3b0a0052 Match HUD state message text 2026-08-30 02:52:43 -07:00
Jonas Volman 9b14bd75a9 Match deferred dashboard error 2026-08-30 02:06:39 -07:00
Jonas Volman 1149e980ab Match deferred main menu error 2026-08-30 02:01:23 -07:00
Jonas Volman c47f725463 Match UI widget reallocation 2026-08-30 00:57:48 -07:00
Jonas Volman 0203a5223f Recover exact HUD time code start 2026-08-30 00:21:37 -07:00
Jonas Volman f807c5d063 Recover exact HUD time code visibility 2026-08-30 00:17:25 -07:00
Jonas Volman 0d659baacd Match HUD unit new-map initialization 2026-08-29 23:26:04 -07:00
Jonas Volman fb3fe09198 Match HUD weapon new-map reset 2026-08-29 19:55:35 -07:00
Jonas Volman 397c7cb278 Match HUD weapon interface initialization 2026-08-29 19:51:44 -07:00
Jonas Volman a955ee0e7c Match HUD unit interface initialization 2026-08-29 19:40:20 -07:00
Jonas Volman 8d4cb15d17 Recover interface fullscreen overlays 2026-08-29 07:37:09 -07:00
Jonas Volman fdb3194a62 Match UI plasma color setter 2026-08-28 23:31:43 -07:00
Jonas Volman 76d6fe894f Match HUD path-name leaf 2026-08-28 22:13:58 -07:00
Jonas Volman f97d6afa7e Match scripted HUD pause timer exactly 2026-08-28 20:40:35 -07:00
Jonas Volman 83883cc2e9 Advance effects, queues, and first-person wrappers 2026-08-28 18:08:22 -07:00
Jonas Volman 770f1c7113 Advance five objects with exact public leaves 2026-08-28 17:01:33 -07:00
Jonas Volman d77b090a37 Match game engine public leaves 2026-08-28 15:54:13 -07:00
Jonas Volman a3d6bf9020 Match HUD messaging scripted leaves 2026-08-27 10:40:48 -07:00
Jonas Volman 0ccd7a1462 Match scripted HUD unit flags 2026-08-27 10:18:03 -07:00
Jonas Volman 526798189a Match HUD pickup message wrappers 2026-08-27 10:04:16 -07:00
Jonas Volman 8e689ec00f Match D3DX matrix identity 2026-08-27 08:44:40 -07:00
Jonas Volman e8d423604a Match HUD nav point update switch 2026-08-27 06:24:45 -07:00
Jonas Volman d9a5951a39 Match UI controller widget compatibility 2026-08-26 07:51:45 -07:00
Jonas Volman 576085eeff Match UI widget free 2026-08-26 06:24:23 -07:00
Jonas Volman 87222a56db Match UI widget state leaves 2026-08-26 05:15:26 -07:00
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