mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +00:00
Clamp tilted ripple spans to viewheight
Mitigates against KartKrew/Kart#658 crash but only in release builds.
This commit is contained in:
parent
70207076c1
commit
f3cb5cdaba
1 changed files with 5 additions and 7 deletions
|
|
@ -236,7 +236,7 @@ static void R_MapPlane(INT32 y, INT32 x1, INT32 x2)
|
||||||
static void R_MapTiltedPlane(INT32 y, INT32 x1, INT32 x2)
|
static void R_MapTiltedPlane(INT32 y, INT32 x1, INT32 x2)
|
||||||
{
|
{
|
||||||
#ifdef RANGECHECK
|
#ifdef RANGECHECK
|
||||||
if (x2 < x1 || x1 < 0 || x2 >= viewwidth || y > viewheight)
|
if (x2 < x1 || x1 < 0 || x2 >= viewwidth || y >= viewheight || y < 0)
|
||||||
I_Error("R_MapTiltedPlane: %d, %d at %d", x1, x2, y);
|
I_Error("R_MapTiltedPlane: %d, %d at %d", x1, x2, y);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -248,9 +248,7 @@ static void R_MapTiltedPlane(INT32 y, INT32 x1, INT32 x2)
|
||||||
{
|
{
|
||||||
ds_bgofs = R_CalculateRippleOffset(y);
|
ds_bgofs = R_CalculateRippleOffset(y);
|
||||||
|
|
||||||
ds_sup = &ds_su[y];
|
R_SetTiltedSpan(std::clamp(y, 0, viewheight));
|
||||||
ds_svp = &ds_sv[y];
|
|
||||||
ds_szp = &ds_sz[y];
|
|
||||||
|
|
||||||
ds_bgofs >>= FRACBITS;
|
ds_bgofs >>= FRACBITS;
|
||||||
|
|
||||||
|
|
@ -791,11 +789,11 @@ d->z = (v1.x * v2.y) - (v1.y * v2.x)
|
||||||
void R_SetTiltedSpan(INT32 span)
|
void R_SetTiltedSpan(INT32 span)
|
||||||
{
|
{
|
||||||
if (ds_su == NULL)
|
if (ds_su == NULL)
|
||||||
ds_su = static_cast<floatv3_t*>(Z_Malloc(sizeof(*ds_su) * vid.height, PU_STATIC, NULL));
|
ds_su = static_cast<floatv3_t*>(Z_Calloc(sizeof(*ds_su) * vid.height, PU_STATIC, NULL));
|
||||||
if (ds_sv == NULL)
|
if (ds_sv == NULL)
|
||||||
ds_sv = static_cast<floatv3_t*>(Z_Malloc(sizeof(*ds_sv) * vid.height, PU_STATIC, NULL));
|
ds_sv = static_cast<floatv3_t*>(Z_Calloc(sizeof(*ds_sv) * vid.height, PU_STATIC, NULL));
|
||||||
if (ds_sz == NULL)
|
if (ds_sz == NULL)
|
||||||
ds_sz = static_cast<floatv3_t*>(Z_Malloc(sizeof(*ds_sz) * vid.height, PU_STATIC, NULL));
|
ds_sz = static_cast<floatv3_t*>(Z_Calloc(sizeof(*ds_sz) * vid.height, PU_STATIC, NULL));
|
||||||
|
|
||||||
ds_sup = &ds_su[span];
|
ds_sup = &ds_su[span];
|
||||||
ds_svp = &ds_sv[span];
|
ds_svp = &ds_sv[span];
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue