Skip to content

Overhauled Angle-based Camera system #648

Open
AL2009man wants to merge 19 commits intofgsfdsfgs:portfrom
AL2009man:PerfectQuakeDark3
Open

Overhauled Angle-based Camera system #648
AL2009man wants to merge 19 commits intofgsfdsfgs:portfrom
AL2009man:PerfectQuakeDark3

Conversation

@AL2009man
Copy link
Copy Markdown

@AL2009man AL2009man commented Aug 23, 2025

This is a two-part PR, the Overhauled Camera System, and the Decoupled Crosshair Mouse sensitivity. Originally planned to make it separate, but due to issues specific to Crosshair Camera, this PR merged both into one.


To prepare for Flick Stick support: I went ahead and basically overhaul the entire camera system to be based on 360-degree rotational/angle system, this should improve general camera controlling system when using Mouse and be more friendly towards custom Reset Camera macros like SteamInput. It also prepares for future Input devices like Gyro Aiming (#644) and Flick Stick

This also features improvements to Crosshair Aiming, to make it more preciser-- even closer to raw movement!

This PR overhauls the entire Camera system to better allow for future input methods like Gyro and Flick Stick, alongside decoupling Mouse Crosshair Speed out of Mouse Camera Speed, making the Crosshair Mouse be independent.
to equalize the swiveling between Horts/Verts crosshair swivel for mouse input: the swivel has been reduced to 20%
moved the input-specific layer over to bmove directly, this means the original function has been removed
moved the original scaling from bmove over to input.c, while addressing issues with CamSpy and Hoverbike sensitivity. the latter now has customized scaling solution specific

the `inputMouseGetScaledDeltaCrosshair` has been restored due to a specific bug with overall camera scaling after fixing CamSpy and Hoverbike, but itt'll be temporary, depending on the next commit fix?
redid the migration, now it should work without any conflictions
@AL2009man AL2009man requested a review from fgsfdsfgs August 29, 2025 18:13
@AL2009man
Copy link
Copy Markdown
Author

AL2009man commented Aug 29, 2025

as requested: I already went thru a initial phase of testing. Right now: the SpyCam and Hoverbike bug should be fixed.

As a reminder: the overhauled camera system only applies to Mouse Camera (since it's used as a basis), Classic Joystick should remained the same as before.

however: a few things that might need advanced testings, the first two is where i can't directly test it myself.

  • Port-net
  • demo
  • in-game cutscene (most notable with Mission 1 Cour 3)

revised the entire crosshair swivel system to be closer to the original setup. This also fixes a problem with the crosshair not working as intended.
…d swaying at high sensitivity

fixed a regression where the clamped swaying was missing, while restoring mixed input-based crosshair sway
cleaned up AngleCamera to make it a bit easier to manage and easily add or remove Camera-related inputs.

also, a experimental fix to netplay/demo compatibility-- but it's hasn't really been tested outside of initial gameplay-based cutscenes
…rdless of Joystick Crosshair state

Noticed some parts of the code was removed by accident, but that should be restored to how it originally was.

Additionally: inorder to retain the sensitivity-tied fix: movedata.freelookdx/y has been replaced with `inputMouseGetRawDelta`'s equiavlent, although: that one's a workaround for the time being
Inorder to make PR reviewing easier, the crosshair decouple has been removed. To compensate: there's now a internal negative multiplayer for crosshair to compensate
@AL2009man AL2009man changed the title Overhauled Camera system + Decoupled Mouse Crosshair Speed from Mouse Speed Overhauled Angle-based Camera system Dec 4, 2025
@AL2009man
Copy link
Copy Markdown
Author

AL2009man commented Dec 4, 2025

as per request: the Crosshair Aim portion has been moved to #676, as I finally managed to solve a specific issue.

now, there's a "negative multiplier" on the Mouse Crosshair Aiming as a workaround until that PR gets merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants