-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support cutscenes and demos in the photo mode #1678
Conversation
I found 2 issues:
|
The actors seem to reset at the end of the cutscene back to the first frame if you've used photo mode. I think the animations will just loop by default, so it could be a desync problem? Similarly if you use it in the Vilcabamba demo, there seems to be desync as the remainder will play out differently (in my test a wolf remained alive). |
2c4514b
to
ae854ff
Compare
ae854ff
to
35cfd6b
Compare
@aredfan @lahm86 I've addressed both issues. Additionally, I've adjusted the Q/E/W/S inputs to align perpendicularly to the current vertical axis. In other words, the sideways and height-wise camera movements should now feel more intuitive when the player is looking directly at the ceiling or floor. |
Cutscenes look fantastic, everything looks great there. The Vilcabamba demo still desyncs for me unfortunately. Tapping briefly in and out of photo mode is enough to cause it. I wonder if there is something calling Re the change in controls, the fix for the A/D issue when facing vertically looks great. I do however feel that overall movement is a bit more restrictive than before. I think this is because the previous implementation allowed any combination of QEWASD e.g. previously you could hold WA and the camera would move diagonally, but now A takes precedence and the W input is lost until you release A. You could also previously hold Q/E together with WASD to combine that movement. The rotation behaviour remains flexible e.g. I can rotate up and right or down and left at the same time. This is perhaps just my preference - I appreciate that you can still get to where you need to go, but I do prefer the previous support that we had. |
ed5a8d2
to
1effad9
Compare
@lahm86 Thanks. It turns out the demo desync was caused by restoring user preferences too early – I had most of the enhancements disabled, which is why I couldn't replicate the issue. I've also resolved the ghosting issue with inputs – sorry for the regression there. |
Not a problem, after I posted the above I wondered if it was maybe not possible with the A/D vertical fix. Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks fantastic, thank you 😄
@rr- I can confirm the issues mentioned above are fixed, thank you. I've noticed a new issue. In photo mode, if I hold down left then the camera will stop turning once it faces a specific direction. This doesn't happen when I hold down right. |
|
||
if (g_Input.left) { | ||
g_Camera.target_angle -= (int16_t)CAM_ROT_SHIFT; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't reproduce this – can you link a save? |
1effad9
to
7ff57ed
Compare
Just checking if you saw my comment about the cast (tested this on the current PR code and it resolves it). It happens in this save, so just enter photo mode and hold left. It stops at 180. diff --git a/src/tr1/game/camera.c b/src/tr1/game/camera.c
index 45977ccf..9ec552a2 100644
--- a/src/tr1/game/camera.c
+++ b/src/tr1/game/camera.c
@@ -377,11 +377,11 @@ static void M_UpdatePhotoMode(void)
if (g_Input.left) {
M_PhotoModeRotate(
- g_Camera.target_angle - CAM_ROT_SHIFT,
+ g_Camera.target_angle - (int16_t)CAM_ROT_SHIFT,
g_Camera.target_elevation);
} else if (g_Input.right) {
M_PhotoModeRotate(
- g_Camera.target_angle + CAM_ROT_SHIFT,
+ g_Camera.target_angle + (int16_t)CAM_ROT_SHIFT,
g_Camera.target_elevation);
}
} |
Resolves #1672.
Makes left / right / up / down camera movements perpendicular to the current vertical axis. Roll remains unaccounted for.
838a792
to
42a98f9
Compare
Removes forceful FOV resets upon config writes.
42a98f9
to
d3e7968
Compare
@lahm86 @aredfan with Lahm's help I've established that this bug only occurs on Windows, whereas on Linux it worked fine. I've fixed this, and additionally I've refactored the photo mode code a bit in preparation for adding this feature to TR2:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. The separation makes a lot of sense, thank you for doing this.
Checklist
Description
Resolves #1672.