mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Merge branch 'legacyglfixes' into 'master'
Add support for terrain floorClip and RF_ALWAYSONTOP in legacyGL See merge request kart-krew-dev/ring-racers!8
This commit is contained in:
commit
898f69c2bd
2 changed files with 20 additions and 2 deletions
|
|
@ -3415,6 +3415,11 @@ static void HWR_SplitSprite(gl_vissprite_t *spr)
|
||||||
return; // cap
|
return; // cap
|
||||||
|
|
||||||
blend = HWR_SurfaceBlend(blendmode, trans, &Surf);
|
blend = HWR_SurfaceBlend(blendmode, trans, &Surf);
|
||||||
|
|
||||||
|
// if sprite has PF_ALWAYSONTOP, draw on top of everything.
|
||||||
|
if (cv_debugrender_spriteclip.value || spr->mobj->renderflags & RF_ALWAYSONTOP)
|
||||||
|
blend |= PF_NoDepthTest;
|
||||||
|
|
||||||
if (!trans && !blendmode)
|
if (!trans && !blendmode)
|
||||||
{
|
{
|
||||||
// BP: i agree that is little better in environement but it don't
|
// BP: i agree that is little better in environement but it don't
|
||||||
|
|
@ -3896,6 +3901,11 @@ static void HWR_DrawSprite(gl_vissprite_t *spr)
|
||||||
return; // cap
|
return; // cap
|
||||||
|
|
||||||
blend = HWR_SurfaceBlend(blendmode, trans, &Surf);
|
blend = HWR_SurfaceBlend(blendmode, trans, &Surf);
|
||||||
|
|
||||||
|
// if sprite has PF_ALWAYSONTOP, draw on top of everything.
|
||||||
|
if (cv_debugrender_spriteclip.value || spr->mobj->renderflags & RF_ALWAYSONTOP)
|
||||||
|
blend |= PF_NoDepthTest;
|
||||||
|
|
||||||
if (!trans && !blendmode)
|
if (!trans && !blendmode)
|
||||||
{
|
{
|
||||||
// BP: i agree that is little better in environement but it don't
|
// BP: i agree that is little better in environement but it don't
|
||||||
|
|
@ -3921,7 +3931,10 @@ static void HWR_DrawSprite(gl_vissprite_t *spr)
|
||||||
|
|
||||||
if (HWR_UseShader())
|
if (HWR_UseShader())
|
||||||
{
|
{
|
||||||
shader = (R_ThingIsPaperSprite(spr->mobj) || R_ThingIsFloorSprite(spr->mobj)) ? SHADER_SPRITE : SHADER_SPRITECLIPHACK;;
|
shader = (R_ThingIsPaperSprite(spr->mobj)
|
||||||
|
|| R_ThingIsFloorSprite(spr->mobj)
|
||||||
|
|| (spr->mobj->terrain && spr->mobj->terrain->floorClip)
|
||||||
|
) ? SHADER_SPRITE : SHADER_SPRITECLIPHACK;
|
||||||
blend |= PF_ColorMapped;
|
blend |= PF_ColorMapped;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5007,6 +5020,9 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
||||||
x1 = tr_x + x1 * rightcos;
|
x1 = tr_x + x1 * rightcos;
|
||||||
x2 = tr_x - x2 * rightcos;
|
x2 = tr_x - x2 * rightcos;
|
||||||
|
|
||||||
|
if (thing->terrain && thing->terrain->floorClip)
|
||||||
|
spr_topoffset -= thing->terrain->floorClip;
|
||||||
|
|
||||||
if (vflip)
|
if (vflip)
|
||||||
{
|
{
|
||||||
gz = FIXED_TO_FLOAT(interp.z + thing->height) - (FIXED_TO_FLOAT(spr_topoffset) * this_yscale);
|
gz = FIXED_TO_FLOAT(interp.z + thing->height) - (FIXED_TO_FLOAT(spr_topoffset) * this_yscale);
|
||||||
|
|
|
||||||
|
|
@ -1723,6 +1723,8 @@ boolean HWR_DrawModel(gl_vissprite_t *spr)
|
||||||
HWD.pfnSetShader(SHADER_MODEL); // model shader
|
HWD.pfnSetShader(SHADER_MODEL); // model shader
|
||||||
{
|
{
|
||||||
float this_scale = FIXED_TO_FLOAT(spr->mobj->scale);
|
float this_scale = FIXED_TO_FLOAT(spr->mobj->scale);
|
||||||
|
fixed_t floorClip = spr->mobj->terrain ? spr->mobj->terrain->floorClip : 0;
|
||||||
|
float finalfloorClip = FIXED_TO_FLOAT(FixedMul(floorClip, mapobjectscale)*P_MobjFlip(spr->mobj));
|
||||||
|
|
||||||
float xs = this_scale * FIXED_TO_FLOAT(spr->mobj->spritexscale);
|
float xs = this_scale * FIXED_TO_FLOAT(spr->mobj->spritexscale);
|
||||||
float ys = this_scale * FIXED_TO_FLOAT(spr->mobj->spriteyscale);
|
float ys = this_scale * FIXED_TO_FLOAT(spr->mobj->spriteyscale);
|
||||||
|
|
@ -1733,7 +1735,7 @@ boolean HWR_DrawModel(gl_vissprite_t *spr)
|
||||||
// offset perpendicular to the camera angle
|
// offset perpendicular to the camera angle
|
||||||
p.x -= ox * gl_viewsin;
|
p.x -= ox * gl_viewsin;
|
||||||
p.y += ox * gl_viewcos;
|
p.y += ox * gl_viewcos;
|
||||||
p.z += oy;
|
p.z += oy - finalfloorClip;
|
||||||
|
|
||||||
if (R_ThingIsUsingBakedOffsets(spr->mobj))
|
if (R_ThingIsUsingBakedOffsets(spr->mobj))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue