Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions prboom2/src/p_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
#include <zlib.h>

#include "doomstat.h"
#include "doomtype.h"
#include "m_bbox.h"
#include "g_game.h"
#include "w_wad.h"
Expand Down Expand Up @@ -3288,6 +3289,18 @@ static void P_RemoveSlimeTrails(void) // killough 10/98
Z_Free(hit);
}

// [crispy] fix long wall wobble
static angle_t anglediff(angle_t a, angle_t b)
{
if (b > a)
return anglediff(b, a);

if (a - b < ANG180)
return a - b;
else // [crispy] wrap around
return b - a;
}

static void R_CalcSegsLength(void)
{
int i;
Expand All @@ -3301,6 +3314,12 @@ static void R_CalcSegsLength(void)
li->halflength = (uint32_t)(length / 2.0);
// [crispy] re-calculate angle used for rendering
li->pangle = R_PointToAngleEx2(li->v1->px, li->v1->py, li->v2->px, li->v2->py);
// [crispy] more than just a little adjustment?
// back to the original angle then
if (anglediff(li->pangle, li->angle) > ANG60/2)
{
li->pangle = li->angle;
}
}
}

Expand Down
4 changes: 2 additions & 2 deletions prboom2/src/r_segs.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,8 @@ void R_FixWiggle(sector_t *sec)

static fixed_t R_ScaleFromGlobalAngle(angle_t visangle)
{
int anglea = ANG90 + (visangle - viewangle);
int angleb = ANG90 + (visangle - rw_normalangle);
angle_t anglea = ANG90 + (visangle - viewangle);
angle_t angleb = ANG90 + (visangle - rw_normalangle);
int den = FixedMul(rw_distance, finesine[anglea >> ANGLETOFINESHIFT]);
// proff 11/06/98: Changed for high-res
fixed_t num = FixedMul(projectiony, finesine[angleb >> ANGLETOFINESHIFT]);
Expand Down
Loading