by Major Cooke » Thu Aug 15, 2019 10:30 pm
Fixed the interpolation. My suspicions were correct. Even standard player movement had been slightly impacted, at least a little bit, until I moved the main chunk of code I had set up in CalcView to R_SetupFrame().
Nash wrote:Great, always felt dirty that to do camera effects (weapon kickback, tilting, etc), the player's angles had to be physically manipulated and sent across the wire. For those kinds of use cases - like in other engines - they should be render-only, which I hope is what this PR is supposed to do.
Correct. There's five new properties available for PlayerPawn and PlayerInfo, each one pretty much acting as an offset. Included is five flags for manipulating these as well.
- ViewHeightAbsolute (+up/-down) (too many things modify the viewheight and viewz, so better to be safe and give it a variable of its own)
- ViewForward (+forward/-backward)
- ViewSide (+right/-left)
- ViewAngle (+left/-right)
- ViewPitch (+down/-up)
- ViewRoll (+clockwise/-counter clockwise)
All of those are relative offsets. The flags to modify that behavior are:
- ViewAbsPos - ViewForward, ViewSide and ViewHeightAbsolute become your position XYZ coordinates instead of an offset. Furthermore, ViewHeight will be allowed to go above ceilings and below floors in this mode. Good for cinematic cutscenes... If it doesn't cause any issues. I don't see any reason why it would though. Quakes go through floors and ceilings all the time.
- ViewAbsOffset - Angle is not accounted for (not relative).
- ViewAbsAngle - Absolute angle.
- ViewAbsPitch - ^ pitch.
- ViewAbsRoll - You get the point...
So yes. This means bye bye A_SpawnProjectile hacks and doing crazy offset shit at last. And I know what you mean by dirty. I had to disable D4D's angle and pitch adjusting on some of the demon morphs because they made the player run with the angle changes.
Fixed the interpolation. My suspicions were correct. Even standard player movement had been slightly impacted, at least a little bit, until I moved the main chunk of code I had set up in CalcView to R_SetupFrame().
[quote="Nash"]Great, always felt dirty that to do camera effects (weapon kickback, tilting, etc), the player's angles had to be physically manipulated and sent across the wire. For those kinds of use cases - like in other engines - they should be render-only, which I hope is what this PR is supposed to do.[/quote]
Correct. There's five new properties available for PlayerPawn and PlayerInfo, each one pretty much acting as an offset. Included is five flags for manipulating these as well.
[list][*]ViewHeightAbsolute (+up/-down) (too many things modify the viewheight and viewz, so better to be safe and give it a variable of its own)
[*]ViewForward (+forward/-backward)
[*]ViewSide (+right/-left)
[*]ViewAngle (+left/-right)
[*]ViewPitch (+down/-up)
[*]ViewRoll (+clockwise/-counter clockwise)[/list]
All of those are relative offsets. The flags to modify that behavior are:
[list][*]ViewAbsPos - ViewForward, ViewSide and ViewHeightAbsolute become your position XYZ coordinates instead of an offset. Furthermore, ViewHeight will be allowed to go above ceilings and below floors in this mode. Good for cinematic cutscenes... If it doesn't cause any issues. I don't see any reason why it would though. Quakes go through floors and ceilings all the time.
[*]ViewAbsOffset - Angle is not accounted for (not relative).
[*]ViewAbsAngle - Absolute angle.
[*]ViewAbsPitch - ^ pitch.
[*]ViewAbsRoll - You get the point...[/list]
So yes. This means bye bye A_SpawnProjectile hacks and doing crazy offset shit at last. And I know what you mean by dirty. I had to disable D4D's angle and pitch adjusting on some of the demon morphs because they made the player run with the angle changes.