Local multiplayer controls (native evidence)¶
This note consolidates the controls/multiplayer evidence used by the rewrite.
Config storage and player blocks¶
crimson.cfgis fixed-size0x480bytes and rewritten as a whole struct.- Ref:
docs/formats/crimson-cfg.md - Keybind blocks:
- P1: offset
0x1c8,13 dwords + 3 dwords padding - P2: offset
0x208,13 dwords + 3 dwords padding - Reserved extension region starts at
0x248(0x200bytes), suitable for extra player blocks. - Ref:
docs/formats/crimson-cfg.md
Control mode IDs and labels¶
- Aim-scheme labels come from
input_configure_for_label(0x00447c90): 0 Mouse,1 Keyboard,2 Joystick,3 Mouse relative,4 Dual Action Pad,5 Computer- Move-scheme labels come from
input_scheme_label(0x00447cf0): 1 Relative,2 Static,3 Dual Action Pad,4 Mouse point click,5 Computer- Ref:
docs/crimsonland-exe/ui.md
Per-scheme semantics (evidence anchors)¶
- Player struct carries explicit per-player bindings:
- aim keys (
+0x324/+0x328) - aim axes (
+0x32c/+0x330) - move axes (
+0x334/+0x338) - Explicit branch evidence:
- movement scheme
== 3reads move axes - aim scheme
== 4reads aim axes - Ref:
docs/structs/player.md
Controls menu + rebind runtime¶
- Controls dropdown list widgets:
controls_move_method_list(0x004d7638)controls_player_profile_list(0x004d7660)controls_aim_method_list(0x004d76a8)- Rebind table + menu items:
controls_rebind_items(0x004d7898)controls_key_pick_perk_item(0x004d7968)controls_key_reload_item(0x004d7978)- Axis-capture peaks + threshold path:
controls_rebind_axis_peak_abs_*(0x004d79e4..0x004d79f8)- compared against
0.5assignment threshold. - Ref:
docs/crimsonland-exe/ui.md