HUD Input Consumer Boundary Review

0x0200 ESC/X edge bit의 주요 소비자는 메뉴 최초 opener가 아니라 active descriptor stack을 되감는 cancel/back 경계다. 0x0040c6cc는 bit clear, active cursor scan, focus in/out 호출만 수행하며 addDescriptor/top-menu sequence 근거가 없다. 0x0041d61b도 이미 열린 메뉴 내부 selector dispatcher로 분류된다.

statusinput-consumers-grounded-opener-still-unproven
input funcs13
cancel handler0x0040c6cc
cancel bit0x0200
open promotedFalse

Key Functions

functionclassificationrefscalls0x0200 evidence
0x0040c6cc
0x0200 cancel/back consumer
cancel/back-active-descriptor-unwind
Consumes and clears edge input bit 0x0200, rewrites object+0x40 to the stream continuation, decrements/scans active descriptor cursor 0x0059e33e, and calls focus routines 0x00422093/0x004226e9. It has no call to addDescriptor and no top-menu sequence reference.
{"input.edgeActionMask": ["0x0040c746", "0x0040c757", "0x0040c762"], "descriptor.activeCount": ["0x0040c86c", "0x0040c8b8"], "descriptor.activeCursor": ["0x0040c6eb", "0x0040c778", "0x0040c78c", "0x0040c79a", "0x0040c7a1", "0x0040c7c7", "0x0040c7e4", "0x0040c81c", "0x0040c839", "0x0040c875", "0x0040c883", "0x0040c89d", "0x0040c8a9", "0x0040c8b0", "0x0040c8c7", "0x0040c8e4"], "descriptor.slotPointers": ["0x0040c6f2", "0x0040c7a8", "0x0040c7ce", "0x0040c7eb", "0x0040c823", "0x0040c840", "0x0040c8ce", "0x0040c8eb"]}{"focusOut": ["0x0040c7f3", "0x0040c8f3"], "focusIn": ["0x0040c848"]}0x0040c744
clear: 0x0040c755
0x0041d61b
menu-internal selector dispatcher
already-open-menu-dispatcher
Uses 0x0200 only inside an object payload dispatcher after menu state exists. It calls 0x0042af73, writes 0x0059dd6c, marks object+0xa8[...] = 0xff, clears the bit, and advances object+0xb0.
{"input.edgeActionMask": ["0x0041d6ff", "0x0041d70a", "0x0041d712", "0x0041d71b", "0x0041d723", "0x0041d797", "0x0041d7b2", "0x0041d807", "0x0041d812", "0x0041d82e", "0x0041d851", "0x0041d85c"], "descriptor.tempState": ["0x0041d7e4", "0x0041d849"]}{"menuResult": ["0x0041d7da", "0x0041d83f"], "menuCursorApply": ["0x0041d7a6"]}0x0041d7b0
clear: 0x0041d805
0x0040b13b
direction edge selector
direction-navigation-only
Consumes direction edge bits 0x1/0x2/0x4/0x8 and calls 0x00410570 with direction indexes. It does not test 0x0200 and does not add descriptors.
{"input.edgeActionMask": ["0x0040b167", "0x0040b189", "0x0040b1b3", "0x0040b1d5", "0x0040b1ff", "0x0040b221", "0x0040b246", "0x0040b26b"]}{"cursorMove": ["0x0040b17d", "0x0040b1a2", "0x0040b1c9", "0x0040b1ee", "0x0040b215", "0x0040b23a", "0x0040b25f", "0x0040b284"]}-
clear: -

Input Consumer Inventory

functionedge refscurrent refscalls addDescriptortop-menu ref
0x004042b6
input consumer
0x004042dd, 0x00404340-FalseFalse
0x004063fc
input consumer
-0x0040640bFalseFalse
0x0040b13b
direction selector
0x0040b167, 0x0040b189, 0x0040b1b3, 0x0040b1d5, 0x0040b1ff, 0x0040b221, 0x0040b246, 0x0040b26b-FalseFalse
0x0040c6cc
cancel/back consumer
0x0040c746, 0x0040c757, 0x0040c762-FalseFalse
0x00410570
input consumer
-0x004106a8FalseFalse
0x0041b82a
input consumer
0x0041b84c-FalseFalse
0x0041b8ee
input consumer
0x0041b907, 0x0041b924-FalseFalse
0x0041d61b
menu-internal dispatcher
0x0041d6ff, 0x0041d70a, 0x0041d712, 0x0041d71b, 0x0041d723, 0x0041d797, 0x0041d7b2, 0x0041d807, 0x0041d812, 0x0041d82e, 0x0041d851, 0x0041d85c-FalseFalse
0x0041d89d
input consumer
-0x0041d8c5FalseFalse
0x0041f073
input consumer
0x0041f092, 0x0041f0c6-FalseFalse
0x00422d74
input poll driver
0x00422d8b, 0x00422daf, 0x00422dc00x00422d9b, 0x00422da1FalseFalse
0x00423127
input consumer
-0x004232a5, 0x004232dcFalseFalse
0x0043022d
field movement/collision controller
-0x0043038e, 0x0043039e, 0x004303ae, 0x004303b7, 0x004303bf, 0x004303c8, 0x004303d0, 0x004303e0, 0x004303f0, 0x004303f9, 0x00430401, 0x0043040a, 0x00430412, 0x00430429, 0x00430440, 0x00430457, 0x004304df, 0x004304fe, 0x00430660, 0x0043067f, 0x00430806, 0x00430825, 0x004309c8, 0x004309e7FalseFalse

Next Frontier

Raw JSON