Further refinements to Simple controls
I don't think anything here's URGENT urgent, but would be worth patching in the future. I'm writing out this issue mostly because I feel responsible for maintaining Simple and this holds me accountable. This can be my personal checklist or it can be an invitation for interested parties to fix, whatever y'all feel like. In no particular order.
- ENHANCEMENT: Camera direction snapping isn't very responsive in netgames, I believe primarily because it always uses the player's current angle which is delayed. If directional input is applied at the time of direction snapping, use that instead of the player angle to make it more responsive in netgames.
- FEATURE: Provide an option to disable the direction-snapping aspect of Center View by simply snapping to the current camera angle.
- BUG/ENHANCEMENT: If the camera can't move to its desired location (collision with level geometry), the player's movement angle will not reflect the offset camera angle. This is a problem with standard controls too. My proposal would be drawing the camera in for every case of this instead of letting it slide off, but simply using the resulting camera angle as the input angle would be an acceptable fix too.
- BUG: Mid-level control style "changes" (toggling first-person, using camera reset) in record attack can cause desyncs because the state changes aren't saved. This will require changes to the replay format, but this may be doable in a fully backwards-compatible way if there's a free ziptic flag. If not, demoversion would need incremented and compatibility-handling code put in place.
- FEATURE: A possible
ShouldStayLockedOnhook pair for the aim assist feature. Would receive the player, lock-on angle, and selected aim assist flags as arguments. I think the current logic is fine, but some people may disagree.