Skip to content

Commit

Permalink
Freecam fixes
Browse files Browse the repository at this point in the history
- Fixed freecam angle being reset to face east when letting go of a mobj
- Fixed chasecam being forcefully enabled when locked onto a mobj while the player were dead and the death camera were enabled
  • Loading branch information
MrAlaux committed Jan 10, 2025
1 parent 52113e5 commit 3e78983
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
12 changes: 7 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@

## Bug Fixes

- Broken movement in systems assuming `char`s to be unsigned
- `comp_lsamnesia` inversely affecting collision with entities (i.e. lost souls would remember their target)
- Weapon sprites being raised/lowered excessively when using switch interruption
- **Broken movement in systems assuming `char`s to be unsigned**
- **`comp_lsamnesia` inversely affecting collision with entities** (i.e. lost souls would remember their target)
- **Weapon sprites being raised/lowered excessively when using switch interruption**
with certain bobbing styles and/or reduced weapon bobbing amplitude
- _Flip Levels_ setting not working for side screens in three-screen mode
- Message grouping only checking as many characters as the last message had,
- **_Flip Levels_ setting not working for side screens in three-screen mode**
- **Message grouping only checking as many characters as the last message had**,
causing incorrect grouping (e.g. new message "TEST" being grouped with last message "TES")
- **Fixed freecam angle being reset to face east when letting go of a mobj**
- **Fixed chasecam being forcefully enabled when locked onto a mobj while the player were dead and the _Death Camera_ were enabled**
7 changes: 5 additions & 2 deletions src/r_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,7 @@ void R_UpdateFreecam(fixed_t x, fixed_t y, fixed_t z, angle_t angle,
if (lock)
{
if (freecam.mobj) {
freecam.angle += freecam.mobj->angle;
R_UpdateFreecamMobj(NULL);
}
else {
Expand Down Expand Up @@ -1144,8 +1145,10 @@ void R_SetupFrame (player_t *player)
{
// [Nugget]
chasecam_on = gamestate == GS_LEVEL
&& STRICTMODE(chasecam_mode || (death_camera && player->mo->health <= 0 && player->playerstate == PST_DEAD))
&& !(freecam_on && !freecam.mobj);
&& !(freecam_on && !freecam.mobj)
&& STRICTMODE(chasecam_mode || (death_camera && player->mo->health <= 0
&& player->playerstate == PST_DEAD
&& !freecam_on));

// [Nugget] Freecam
if (freecam_on && gamestate == GS_LEVEL)
Expand Down

0 comments on commit 3e78983

Please sign in to comment.