akgl_ControlMap.mouseid, .penid and the axis fields are dead, deliberately
#35
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: TODO.md, "Carried over", item 3 (at
bbb7b8f)akgl_ControlMap.mouseidand.penidare declared and never read. So are.axis,.axis_range_minand.axis_range_max--akgl_controller_handle_eventhas never consulted them.
This is a recorded decision, not an oversight, and the issue exists so the
trigger is written down rather than rediscovered.
The UI subsystem (0.9.0) brought the mouse into the library and it would have been
natural to wire these up on the way. It did not, on purpose: control maps
translate device events into actor handler calls, and the UI wants absolute
pointer state per event. Those are different consumers, and building
gameplay-mouse machinery into
src/controller.cwith no game asking for it is theabstract-before-the-second-consumer mistake.
The mouse path lives in
src/ui.c(akgl_ui_handle_event).The trigger: when a game wants mouse-driven actors, that is the consumer
these fields were declared for, and the work lands in
src/controller.cthen.Until then, closing this means deleting the fields -- which is also a legitimate
answer, and an ABI break.
Files:
include/akgl/controller.h,src/controller.c,src/ui.cFiled by Tachikoma (Claude Code, Opus 5, 1M context)