Merge branch 'horizonclimb' into 'master'

Horizonclimb (resolves #323)

Closes #323

See merge request STJr/SRB2Internal!516
This commit is contained in:
MascaraSnake 2019-11-23 17:51:17 -05:00
commit 9b8b463791
4 changed files with 6 additions and 4 deletions

View file

@ -1973,7 +1973,7 @@ static void HWR_StoreWallRange(double startfrac, double endfrac)
{ {
// Single sided line... Deal only with the middletexture (if one exists) // Single sided line... Deal only with the middletexture (if one exists)
gr_midtexture = R_GetTextureNum(gr_sidedef->midtexture); gr_midtexture = R_GetTextureNum(gr_sidedef->midtexture);
if (gr_midtexture && gr_linedef->special != 41) // Ignore horizon line for OGL if (gr_midtexture && gr_linedef->special != HORIZONSPECIAL) // Ignore horizon line for OGL
{ {
{ {
fixed_t texturevpeg; fixed_t texturevpeg;

View file

@ -3471,7 +3471,7 @@ isblocking:
} }
// see about climbing on the wall // see about climbing on the wall
if (!(checkline->flags & ML_NOCLIMB)) if (!(checkline->flags & ML_NOCLIMB) && checkline->special != HORIZONSPECIAL)
{ {
boolean canclimb; boolean canclimb;
angle_t climbangle, climbline; angle_t climbangle, climbline;

View file

@ -410,6 +410,8 @@ typedef enum
ST_NEGATIVE ST_NEGATIVE
} slopetype_t; } slopetype_t;
#define HORIZONSPECIAL 41
typedef struct line_s typedef struct line_s
{ {
// Vertices, from v1 to v2. // Vertices, from v1 to v2.

View file

@ -2694,7 +2694,7 @@ void R_StoreWallRange(INT32 start, INT32 stop)
worldbottomslope >>= 4; worldbottomslope >>= 4;
#endif #endif
if (linedef->special == 41) { // HORIZON LINES if (linedef->special == HORIZONSPECIAL) { // HORIZON LINES
topstep = bottomstep = 0; topstep = bottomstep = 0;
topfrac = bottomfrac = (centeryfrac>>4); topfrac = bottomfrac = (centeryfrac>>4);
topfrac++; // Prevent 1px HOM topfrac++; // Prevent 1px HOM
@ -2825,7 +2825,7 @@ void R_StoreWallRange(INT32 start, INT32 stop)
#ifdef ESLOPE #ifdef ESLOPE
ffloor[i].f_pos_slope >>= 4; ffloor[i].f_pos_slope >>= 4;
#endif #endif
if (linedef->special == 41) // Horizon lines extend FOFs in contact with them too. if (linedef->special == HORIZONSPECIAL) // Horizon lines extend FOFs in contact with them too.
{ {
ffloor[i].f_step = 0; ffloor[i].f_step = 0;
ffloor[i].f_frac = (centeryfrac>>4); ffloor[i].f_frac = (centeryfrac>>4);