Files
Cesarus85--mjolnir-vr/source
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
..
2026-08-13 04:48:12 -07:00
2026-06-08 02:44:47 +01:00
2026-08-13 05:30:26 -07:00
2026-08-13 04:59:17 -07:00
2026-07-16 19:34:57 -07:00
2026-06-08 02:44:47 +01:00
2025-11-28 00:16:20 +00:00
2026-08-13 05:54:40 -07:00
2026-08-20 12:41:41 -07:00
2026-08-20 09:54:33 -07:00
2026-07-15 10:43:08 -07:00
2026-07-25 19:37:14 -07:00
2026-08-20 11:21:56 -07:00
2026-08-20 12:40:28 -07:00
2026-08-13 07:43:18 -07:00
2026-08-20 10:35:00 -07:00
2026-08-13 07:43:18 -07:00
2026-08-13 05:05:20 -07:00
2026-08-13 06:03:44 -07:00
2026-08-13 05:20:30 -07:00
2026-07-14 21:25:03 -07:00
2026-08-20 11:05:26 -07:00
2026-07-16 22:50:14 -07:00
2026-08-20 12:28:06 -07:00
2026-06-08 02:47:21 +01:00