Adds basic support for Rundown 7. It also adds the timer and subtitles to the world UI.
After playing A1 and B1, everything seems to work about as well as it did for Rundown 6.0 and 6.5.
Changes
Fixed things that were broken:
Breaking changes to VRRendering copy-pasted from decompiled code.
Arms not being hidden fixed by also patching PlayerFPSBody.SetVisible() with the same logic already used in the two existing hooks in InjectFPRendering. This is called with false then true every time you swap weapons, so only does work when true.
Some weapons were rendering with only their sights visible. Fixed by disabling the FPS_RENDERING_ALLOWED shader keyword globally in VRRendering.
R7 tries to move player directly infront of terminal so the third-person typing animation looks right. It assumes the camera will be facing straight forward, which is obviously not the case in VR, causing the player to slide forward and to the sides. PLOC_OnTerminal.FixedUpdate() does the math then calls PlayerCharacterController.MoveTo(). Since the former may include addtional logic at some point, MoveTo() was instead patched to do nothing while on the terminal. MoveTo() respects geometry collisions so it probably isn't used for teleportation.
Added timer ( used for countdowns in R6C3 ) and subtitles ( used for story time ) to the world UI. Basically just copy-pasted what was being done for the existing elements, with tweaked size/position values. The timer is destroyed when you change expeditions and thus vanishes, so that needs to be fixed once we find an R7 expedition with a timer. It is prudent to restart the game between expeditions anyway.
What does this PR do?
Adds basic support for Rundown 7. It also adds the timer and subtitles to the world UI. After playing A1 and B1, everything seems to work about as well as it did for Rundown 6.0 and 6.5.
Changes
Fixed things that were broken:
VRRendering
copy-pasted from decompiled code.PlayerFPSBody.SetVisible()
with the same logic already used in the two existing hooks inInjectFPRendering
. This is called with false then true every time you swap weapons, so only does work when true.FPS_RENDERING_ALLOWED
shader keyword globally inVRRendering
.PLOC_OnTerminal.FixedUpdate()
does the math then callsPlayerCharacterController.MoveTo()
. Since the former may include addtional logic at some point,MoveTo()
was instead patched to do nothing while on the terminal. MoveTo() respects geometry collisions so it probably isn't used for teleportation.PlayerGuiLayer.UpdateObjectives()
andPUI_GameObjectives.SetMainSubObjective()
patches crash the game when invoked, even if there is no logic added to the patches. Commented out for now.Additions