mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-10 18:12:46 +00:00
Merge branch 'correctly-fix-sprite-scaling' into 'master'
Actually fix papersprites near camera crash See merge request KartKrew/Kart!1457
This commit is contained in:
commit
3230cdbade
1 changed files with 11 additions and 2 deletions
|
|
@ -890,6 +890,15 @@ static void R_DrawVisSprite(vissprite_t *vis)
|
|||
if ((UINT64)overflow_test&0xFFFFFFFF80000000ULL) return; // ditto
|
||||
}
|
||||
|
||||
// TODO This check should not be necessary. But Papersprites near to the camera will sometimes create invalid values
|
||||
// for the vissprite's startfrac. This happens because they are not depth culled like other sprites.
|
||||
// Someone who is more familiar with papersprites pls check and try to fix <3
|
||||
if (vis->startfrac < 0 || vis->startfrac > (patch->width << FRACBITS))
|
||||
{
|
||||
// never draw vissprites with startfrac out of patch range
|
||||
return;
|
||||
}
|
||||
|
||||
// Prevent an out of bounds error
|
||||
if (bmpatch && (bmpatch->width != patch->width ||
|
||||
bmpatch->height != patch->height))
|
||||
|
|
@ -2408,7 +2417,7 @@ static void R_ProjectSprite(mobj_t *thing)
|
|||
|
||||
vis->xscale = FixedMul(spritexscale, xscale); //SoM: 4/17/2000
|
||||
vis->scale = FixedMul(spriteyscale, yscale); //<<detailshift;
|
||||
vis->thingscale = this_scale;
|
||||
vis->thingscale = interp.scale;
|
||||
|
||||
vis->spritexscale = spritexscale;
|
||||
vis->spriteyscale = spriteyscale;
|
||||
|
|
@ -2649,7 +2658,7 @@ static void R_ProjectPrecipitationSprite(precipmobj_t *thing)
|
|||
vis = R_NewVisSprite();
|
||||
vis->scale = FixedMul(yscale, this_scale);
|
||||
vis->sortscale = yscale; //<<detailshift;
|
||||
vis->thingscale = this_scale;
|
||||
vis->thingscale = interp.scale;
|
||||
vis->dispoffset = 0; // Monster Iestyn: 23/11/15
|
||||
vis->gx = interp.x;
|
||||
vis->gy = interp.y;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue