Turns out, P_ResetCamera
, which is supposed to set camera->reset
and cause the camera interpolation to reset, actually never resets the camera interpolation. That's because the camera interpolation reset code is inside R_ViewpointHasChasecam
, which is only ever called when the game needs to check for if it should apply OGL Shearing when it's set to Third Person Only.
This merge request fixes that by calling R_ViewpointHasChasecam
in R_SetupFrame
as well. Thus R_ViewpointHasChasecam
will be called every frame, and thus the camera will always reset properly when it needs to.
I also refactored R_ViewpointHasChasecam
slightly, so that it will always reset the camera upon camera->chasedcam
being reset.
Edited by SMS Alfredo