Revert "Merge branch 'software-clownery' into 'master'"

This reverts merge request !578
This commit is contained in:
Jaime Passos 2019-12-31 23:40:17 +00:00
parent c460775cd7
commit b41cd59e51
6 changed files with 2261 additions and 2559 deletions

View File

@ -416,7 +416,9 @@ fixed_t P_SegLength(seg_t *seg)
return FixedHypot(dx, dy)<<1; return FixedHypot(dx, dy)<<1;
} }
#ifdef HWRENDER
/** Computes the length of a seg as a float. /** Computes the length of a seg as a float.
* This is needed for OpenGL.
* *
* \param seg Seg to compute length for. * \param seg Seg to compute length for.
* \return Length as a float. * \return Length as a float.
@ -431,6 +433,7 @@ static inline float P_SegLengthFloat(seg_t *seg)
return (float)hypot(dx, dy); return (float)hypot(dx, dy);
} }
#endif
/** Loads the SEGS resource from a level. /** Loads the SEGS resource from a level.
* *
@ -457,10 +460,10 @@ static void P_LoadRawSegs(UINT8 *data, size_t i)
li->v2 = &vertexes[SHORT(ml->v2)]; li->v2 = &vertexes[SHORT(ml->v2)];
li->length = P_SegLength(li); li->length = P_SegLength(li);
li->flength = P_SegLengthFloat(li);
#ifdef HWRENDER #ifdef HWRENDER
if (rendermode == render_opengl) if (rendermode == render_opengl)
{ {
li->flength = P_SegLengthFloat(li);
//Hurdler: 04/12/2000: for now, only used in hardware mode //Hurdler: 04/12/2000: for now, only used in hardware mode
li->lightmaps = NULL; // list of static lightmap for this seg li->lightmaps = NULL; // list of static lightmap for this seg
} }

View File

@ -410,7 +410,7 @@ static void R_AddLine(seg_t *line)
return; return;
// Global angle needed by segcalc. // Global angle needed by segcalc.
rw.angle1 = angle1; rw_angle1 = angle1;
angle1 -= viewangle; angle1 -= viewangle;
angle2 -= viewangle; angle2 -= viewangle;

View File

@ -582,12 +582,11 @@ typedef struct seg_s
sector_t *backsector; sector_t *backsector;
fixed_t length; // precalculated seg length fixed_t length; // precalculated seg length
float flength; // ditto but float
#ifdef HWRENDER #ifdef HWRENDER
// new pointers so that AdjustSegs doesn't mess with v1/v2 // new pointers so that AdjustSegs doesn't mess with v1/v2
void *pv1; // polyvertex_t void *pv1; // polyvertex_t
void *pv2; // polyvertex_t void *pv2; // polyvertex_t
float flength; // length of the seg, used by hardware renderer
lightmap_t *lightmaps; // for static lightmap lightmap_t *lightmaps; // for static lightmap
#endif #endif

View File

@ -366,7 +366,7 @@ angle_t R_PointToAngleEx(INT32 x2, INT32 y2, INT32 x1, INT32 y1)
// R_ScaleFromGlobalAngle // R_ScaleFromGlobalAngle
// Returns the texture mapping scale for the current line (horizontal span) // Returns the texture mapping scale for the current line (horizontal span)
// at the given angle. // at the given angle.
// rw.distance must be calculated first. // rw_distance must be calculated first.
// //
// killough 5/2/98: reformatted, cleaned up // killough 5/2/98: reformatted, cleaned up
// //
@ -374,8 +374,8 @@ angle_t R_PointToAngleEx(INT32 x2, INT32 y2, INT32 x1, INT32 y1)
fixed_t R_ScaleFromGlobalAngle(angle_t visangle) fixed_t R_ScaleFromGlobalAngle(angle_t visangle)
{ {
angle_t anglea = ANGLE_90 + (visangle-viewangle); angle_t anglea = ANGLE_90 + (visangle-viewangle);
angle_t angleb = ANGLE_90 + (visangle-rw.normalangle); angle_t angleb = ANGLE_90 + (visangle-rw_normalangle);
fixed_t den = FixedMul(rw.distance, FINESINE(anglea>>ANGLETOFINESHIFT)); fixed_t den = FixedMul(rw_distance, FINESINE(anglea>>ANGLETOFINESHIFT));
// proff 11/06/98: Changed for high-res // proff 11/06/98: Changed for high-res
fixed_t num = FixedMul(projectiony, FINESINE(angleb>>ANGLETOFINESHIFT)); fixed_t num = FixedMul(projectiony, FINESINE(angleb>>ANGLETOFINESHIFT));

File diff suppressed because it is too large Load Diff

View File

@ -93,41 +93,10 @@ extern angle_t doubleclipangle;
extern INT32 viewangletox[FINEANGLES/2]; extern INT32 viewangletox[FINEANGLES/2];
extern angle_t xtoviewangle[MAXVIDWIDTH+1]; extern angle_t xtoviewangle[MAXVIDWIDTH+1];
// Wall rendering extern fixed_t rw_distance;
typedef struct extern angle_t rw_normalangle;
{
INT32 x, stopx;
angle_t centerangle;
fixed_t offset;
fixed_t offset2; // for splats
fixed_t scale, scalestep;
fixed_t midtexturemid, toptexturemid, bottomtexturemid;
#ifdef ESLOPE
fixed_t toptextureslide, midtextureslide, bottomtextureslide; // Defines how to adjust Y offsets along the wall for slopes
fixed_t midtextureback, midtexturebackslide; // Values for masked midtexture height calculation
#endif
fixed_t distance;
angle_t normalangle;
angle_t angle1; // angle to line origin
// for masked segs and thick sides // angle to line origin
INT32 texnum; extern angle_t rw_angle1;
void (*colfunc_2s) (column_t *);
INT32 column2s_length; // column->length : for multi-patch on 2sided wall = texture->height
// masked segs
INT32 maskedrepeat;
// thick sides
ffloor_t *pfloor;
#ifdef ESLOPE
// Render FOF sides kinda like normal sides, with the frac and step and everything
// NOTE: INT64 instead of fixed_t because overflow concerns
INT64 top_frac, top_step, bottom_frac, bottom_step;
fixed_t ffloortextureslide;
fixed_t left_top, left_bottom; // needed here for slope skewing
#endif
} renderwall_t;
extern renderwall_t rw;
#endif #endif