- Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
- Added RF_ZDOOMADD - renamed r_canontrans to r_vanillatrans - this developer's insanity level has increased by 231%.
This commit is contained in:
parent
c252b5d753
commit
89b372cb01
8 changed files with 46 additions and 23 deletions
|
|
@ -75,7 +75,7 @@ CUSTOM_CVAR(Int, gl_fuzztype, 0, CVAR_ARCHIVE)
|
|||
}
|
||||
|
||||
EXTERN_CVAR (Float, transsouls)
|
||||
EXTERN_CVAR (Bool, r_canontrans)
|
||||
EXTERN_CVAR (Bool, r_vanillatrans)
|
||||
|
||||
extern TArray<spritedef_t> sprites;
|
||||
extern TArray<spriteframe_t> SpriteFrames;
|
||||
|
|
@ -801,7 +801,7 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal)
|
|||
sprangle = 0.;
|
||||
rot = 0;
|
||||
}
|
||||
patch = sprites[spritenum].GetSpriteFrame(thing->frame, rot, sprangle, &mirror, !!(thing->flags7 & MF7_SPRITEFLIP));
|
||||
patch = sprites[spritenum].GetSpriteFrame(thing->frame, rot, sprangle, &mirror, !!(thing->renderflags & RF_SPRITEFLIP));
|
||||
}
|
||||
|
||||
if (!patch.isValid()) return;
|
||||
|
|
@ -817,7 +817,7 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal)
|
|||
gltexture->GetSpriteRect(&r);
|
||||
|
||||
// [SP] SpriteFlip
|
||||
if (thing->flags7 & MF7_SPRITEFLIP)
|
||||
if (thing->renderflags & RF_SPRITEFLIP)
|
||||
thing->renderflags ^= RF_XFLIP;
|
||||
|
||||
if (mirror ^ !!(thing->renderflags & RF_XFLIP))
|
||||
|
|
@ -832,7 +832,7 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal)
|
|||
ur = gltexture->GetSpriteUL();
|
||||
}
|
||||
|
||||
if (thing->flags7 & MF7_SPRITEFLIP) // [SP] Flip back
|
||||
if (thing->renderflags & RF_SPRITEFLIP) // [SP] Flip back
|
||||
thing->renderflags ^= RF_XFLIP;
|
||||
|
||||
r.Scale(sprscale.X, sprscale.Y);
|
||||
|
|
@ -993,14 +993,25 @@ void GLSprite::Process(AActor* thing, sector_t * sector, int thruportal)
|
|||
{
|
||||
trans = 1.f;
|
||||
}
|
||||
if ((thing->flags8 & MF8_ZDOOMTRANS) && r_canontrans)
|
||||
{ // [SP] "canonical transparency" - with the flip of a CVar, disable transparency for Doom objects
|
||||
trans = 1.f;
|
||||
RenderStyle.BlendOp = STYLEOP_Add;
|
||||
RenderStyle.SrcAlpha = STYLEALPHA_One;
|
||||
RenderStyle.DestAlpha = STYLEALPHA_Zero;
|
||||
}
|
||||
if (r_vanillatrans)
|
||||
{
|
||||
// [SP] "canonical transparency" - with the flip of a CVar, disable transparency for Doom objects,
|
||||
// and disable 'additive' translucency for certain objects from other games.
|
||||
if (thing->renderflags & RF_ZDOOMTRANS)
|
||||
{
|
||||
trans = 1.f;
|
||||
RenderStyle.BlendOp = STYLEOP_Add;
|
||||
RenderStyle.SrcAlpha = STYLEALPHA_One;
|
||||
RenderStyle.DestAlpha = STYLEALPHA_Zero;
|
||||
}
|
||||
if (thing->renderflags & RF_ZDOOMADD)
|
||||
{
|
||||
RenderStyle.BlendOp = STYLEOP_Add;
|
||||
RenderStyle.SrcAlpha = STYLEALPHA_Src;
|
||||
RenderStyle.DestAlpha = STYLEALPHA_InvSrc;
|
||||
}
|
||||
|
||||
}
|
||||
if (trans >= 1.f - FLT_EPSILON && RenderStyle.BlendOp != STYLEOP_Shadow && (
|
||||
(RenderStyle.SrcAlpha == STYLEALPHA_One && RenderStyle.DestAlpha == STYLEALPHA_Zero) ||
|
||||
(RenderStyle.SrcAlpha == STYLEALPHA_Src && RenderStyle.DestAlpha == STYLEALPHA_InvSrc)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue